ubuntu加入k8s

175 阅读1分钟
  • 一、安装docker所需的工具(安装最新版即可)

  •   apt-get update
      apt-get install docker.io -y
    
  • 设置开机启动并启动docker

  •   sudo systemctl start docker
      sudo systemctl enable docker
    
  • cgroup使用systemd

  •   {
      "exec-opts": ["native.cgroupdriver=systemd"]
      }
    
  • 重启docker

    systemctl restart docker

  • 二、禁用交换分区

  • (在旧版的 k8s 中 kubelet 都要求关闭 swapoff ,但最新版的 kubelet 其实已经支持 swap ,因此这一步其实可以不做。)

  • swapoff -a

  • 永久禁用,打开/etc/fstab注释掉swap那一行。

    sudo vim /etc/fstab

  • 三、修改内核参数

  • (首先确认你的系统已经加载了 br_netfilter 模块,默认是没有该模块的,需要你先安装 bridge-utils)

  •   apt-get install -y bridge-utils
      modprobe br_netfilter
      lsmod | grep br_netfilter
    
  • 如果报错找不到包,需要先更新 apt-get update -y

  • 四、hostnamectl修改命名

      sudo hostnamectl set-hostname <newhostname>
    
  • 五、安装与配置k8s

    安装 kubelet kubeadm kubectl(master上执行)

  • 安装基础环境

  •   apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
      curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
    
  • 执行配置k8s阿里云源

    vim /etc/apt/sources.list.d/kubernetes.list

  •   #加入以下内容
      deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    
  • 执行更新

    apt-get update -y

  • 安装kubeadm、kubectl、kubelet

    apt-get install -y kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00

  • 阻止自动更新(apt upgrade时忽略)。所以更新的时候先unhold,更新完再hold。

    apt-mark hold kubelet kubeadm kubectl

  •   kubeadm join 172.31.186.200:6443 --token fmty0x.5v15q0m9nzwd8lcy     --discovery-token-ca-cert-hash sha256:604205e4fd92840baa05977e1770cefcd45ebae251761d94144572f66b1f4e1d
    
  • 六、部署网络插件(master机器上)

  • kubectl apply -f https://docs.projectcalico.org/v3.21/manifests/calico.yaml

  • 安装完成后需要等待k8s重新拉起节点

  • 七、完成

  • kubectl get nodes

  • 稍等片刻,即可看到节点已为Ready状态