ubuntu加入k8s
一、安装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状态