Kubernetes 学习环境搭建

安装 kubernetes必要软件

  • debian/ubuntu

    apt-get update && apt-get install -y apt-transport-https
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF
    apt-get update
    apt-get install -y kubelet kubeadm kubectl
  • CentOS / RHEL / Fedora

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    setenforce 0
    yum install -y kubelet kubeadm kubectl
    systemctl enable kubelet && systemctl start kubelet
  • 安装docker-ce

     curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
  • 关闭swap与selinux

    #临时关闭swap
    sudo swapoff -a
    sudo sysctl -w vm.swappiness=0
    sudo setenforce 0 #临时关闭selinux
    sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config #永久关闭selinux

    编辑/etc/fstab 注释掉swap一行,如图:

    关闭swap

初始化Master节点

  1. 测试主机与 gcr.io 的连接

    sudo kubeadm config images pull
  2. 初始化Master节点

    sudo kubeadm init --pod-network-cidr=10.1.0.0/16

    注:

    (1) --pod-network-cider=指定的ip地址要与下面pod网络yaml配置文件中的地址段一致

    (2)请备份好 kubeadm init 输出中的 kubeadm join 命令,因为需要这个命令来给集群添加节点,如图:

    忘记join命令可以用以下命令获取:

    kubeadm token create --print-join-command
  3. 使普通用户可以运行kubectl

    #如果是非root用户执行以下命令
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    #如果是root用户执行以下命令
    export KUBECONFIG=/etc/kubernetes/admin.conf
  4. 在master节点上部署Pod网络

    sudo kubectl apply -f https://cdn.jsdelivr.net/gh/coreos/flannel@master/Documentation/kube-flannel.yml

将worker node加入到master

  1. 在node主机上执行master主机中kubeadm init后得到的命令,类似如下命令:

    kubeadm join 192.168.81.132:6443 --token w0nzz9.gu0jqu040lklfv9v \
        --discovery-token-ca-cert-hash sha256:ce11b7e4df720dc678261a4daf94184147acc1e1e6db003401e57be9df9a73f7 
  1. 在master主机上执行如下命令查看节点状态:

    kubectl get nodes