1.安装sealos

# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
    chmod +x sealos && mv sealos /usr/bin 

# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz

2.使用ntpdate同步各个服务器时间

ntpdate time.windows.com

3.在各个服务器host中添加

IP1       worker-1.mservice       worker-1
IP2       master-1.mservice       master-1

4.运行命令

# 安装一个三master的kubernetes集群
sealos init --passwd 'your_passwordt' \
	--master IP2  \
	--node IP1 \
	--pkg-url /root/kube1.22.0.tar.gz \
	--version v1.22.0

使用Sealos join节点后,发现一直报节点Not Ready,于是journalctl -f -u kubelet.service查看具体的报错信息,报错信息如下:

E0323 08:55:24.182953  150344 kubelet.go:2332] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized"

经过各种网络上尝试都未果,get nodes状态一直显示NotReady

最终的解决方案如下:

重启一下那个节点的containerd或者docker,这里我的是containerd,所以重启containerd即可

systemctl restart containerd

重启之后再重启kubelet,再次查看节点状态,发现变为Ready状态

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐