系列链接
Kubernetes系列之一:在Ubuntu上快速搭建一个集群Demo
Kubernetes系列之二:将Slave节点加入集群
Kubernetes系列之三:部署你的第一个应用程序到k8s集群
Kubernetes系列之四:使用yaml文件创建deployment来部署一个应用程序到k8s集群
Kubernetes系列之五:使用yaml文件创建service向外暴露服务
Kubernetes系列之六:安装k8s通用的Web UI(Dashboard)
Kubernetes系列之N:使用K8s遇到的问题
将Slave节点加入集群
创建另一台虚拟机,本文这里机器名称为kube-slave-3。你需要用root账户登录,执行su,输入root的密码,切换到root账户下
1
2 1su
2
增加新的Node节点到你的集群的命令如下:
1
2 1kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
2
-
<master-ip>:<master-port> ,本文这里对应得是192.168.29.137:6443
-
token,一般token两天就过期了,如果过期了你需要重新创建(查看token命令是kubeadm token list,创建token命令是kubeadm token create),如下:
1
2
3
4
5
6
7
8
9 1root@ubuntu:/home/cong# kubeadm token list
2TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
3u2oywj.j0hwpq6lgv41roic <invalid> 2018-08-03T02:56:16-07:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
4
5
6root@ubuntu:/home/cong# kubeadm token create
75w6qwh.8n0ektfrjdct3ib4
8
9
-
–discovery-token-ca-cert-hash,通过如下命令就可以得到
1
2
3 1root@ubuntu:/home/cong# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
2af9e070ea723dd2281c2ae2414c932832a012d40bc55dc9c747bb00e68602388
3
最后得到的join 命令如下:
1
2 1kubeadm join 192.168.29.137:6443 --token 5w6qwh.8n0ektfrjdct3ib4 --discovery-token-ca-cert-hash sha256:af9e070ea723dd2281c2ae2414c932832a012d40bc55dc9c747bb00e68602388
2
执行它后,等待数秒,在master节点上运行kubectl get nodes就可以看到该节点被加上了。如下:
1
2
3
4
5
6
7 1root@ubuntu:/home/cong# kubectl get nodes
2NAME STATUS ROLES AGE VERSION
3kube-slave Ready <none> 3d v1.11.1
4kube-slave-3 Ready <none> 2m v1.11.1
5ubuntu-master Ready master 3d v1.11.1
6
7
至此,slave 节点就被成功加入了。但如果我想删这个节点怎么办呢?执行下面两步就可以了。
1
2
3 1kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
2kubectl delete node <node name>
3
效果如下:
1
2
3
4
5
6
7
8
9
10
11 1root@ubuntu:/home/cong# kubectl drain kube-slave-3 --delete-local-data --force --ignore-daemonsets
2node/kube-slave-3 cordoned
3WARNING: Ignoring DaemonSet-managed pods: canal-47vnh, kube-proxy-b4zds
4root@ubuntu:/home/cong# kubectl delete node kube-slave-3
5node "kube-slave-3" deleted
6root@ubuntu:/home/cong# kubectl get nodes
7NAME STATUS ROLES AGE VERSION
8kube-slave Ready <none> 3d v1.11.1
9ubuntu-master Ready master 3d v1.11.1
10
11
现在,你已经初步掌握的基本的kubenetes的用法,接下来将重点练习kubectl。