背景:kubernetes master节点kubeadm init完毕,并且在master节点上启动flannel完成,使用kubectl get nodes 发现master节点处于Ready状态。现在开始执行将node节点加入到集群中的工作,本次操作针对kubernetes:v1.14.1版本,系统centos7

1、设置docker yum源和kubernetes源,推荐使用阿里云的

2、如果系统中有安装过docker或者kubernetes,删除干净,否则安装报错

3、yum install -y docker-ce kubeadm kubelet

4、修改配置文件,对swap错误不报错

vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"

5、设置docker、kubelet开机自启动,同时启动docker,不启动kubelet!!!!!要不会报错

systemctl enable docker kubelet
systemctl start docker

6、执行kubeadm joinxxxxxx(这个命令就是在master中执行kubeadm init之后最后显示出来的命令)

注意:在后面加上对于swap错误不报错!!!!!!  --ignore-preflight-errors=Swap

(如果不小心忘了的话,可以在master节点上执行kubeadm token create --print-join-command,这样会生成一个新的token,同时返回新的命令,记得把旧的token删除,kubeadm token delete xxxxx)

7、此时会显示成功加入集群。

8、但此时在master节点上查看kubectl get nodes,发现node1节点没有处于ready状态,说明还没有成功启动,这是因为在node节点上也需要运行flannel,否则不会正常工作

9、由于某种神秘力量,没办法在k8s.gcr.io中下载镜像,因此可以在dockerhub上下载别人上传的镜像,然后改标签,运行

docker pull yamanda/pause:3.1
docker pull yamanda/kube-proxy:v1.14.1
docker pull quay.io/coreos/flannel:v0.11.0-amd64

docker tag yamanda/pause:3.1 k8s.gcr.io/pause:3.1
docker tag yamanda/kube-proxy:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1

docker run -d k8s.gcr.io/pause:3.1

10、再次查看master,kubectl get nodes,发现node处于ready状态

Logo

开源、云原生的融合云平台

更多推荐