八、K8S初上手:部署Node节点

259 阅读2分钟
在部署之前,我们通过一个命令查看下目前的node节点
# 处于master节点上进行查看
# 我们会看到,现在整个集群,只有master这一个节点
$ kubectl get nodes -o wide
NAME          STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
kube-master   Ready    master   121m   v1.18.8   10.0.0.3      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://19.3.12
先获取集群master节点上的token
# 首先我们从master节点上输出节点所需的token
$ kubeadm token create --print-join-command
 
kubeadm join 10.0.0.3:6443 --token bj5ki2.rsf4shrzvi8p5vhg     --discovery-token-ca-cert-hash sha256:0ed36eccceb0bed637316ce54dbc1be08213050e87c6dd1bca3ece1b22297cf8
然后我们让master节点保持监听的状态
# 监听之后,这里的状态会一直进行刷新
$ watch kubectl get node -o wide
 
Every 2.0s: kubectl get node -o wide                                                                                 Tue Aug 25 20:57:06 2020
 
NAME          STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-
RUNTIME
kube-master   Ready    master   127m   v1.18.8   10.0.0.3      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://1
9.3.12
接着来到要添加的节点服务器上
# 执行前面打印的token信息
$ kubeadm join 10.0.0.3:6443 --token bj5ki2.rsf4shrzvi8p5vhg     --discovery-token-ca-cert-hash sha256:0ed36eccceb0bed637316ce54dbc1be08213050e87c6dd1bca3ece1b22297cf8
 
# 然后node节点会安装所需的服务
 
。。。。。
 
 
# 再看master监听的结果
# 会发现多出一个kube-node-1,状态是notReady,此时实际上node节点上还在初始化中
Every 2.0s: kubectl get node -o wide                                                                                 Tue Aug 25 21:00:15 2020
 
NAME          STATUS     ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINE
R-RUNTIME
kube-master   Ready      master   130m   v1.18.8   10.0.0.3      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker:/
/19.3.12
kube-node-1   NotReady   <none>   33s    v1.18.8   10.0.0.4      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker:/
/19.3.12
 
# 我们再看下操作的详情
# 会发现是flannel的服务正在部署中
# 也就是说,每个节点被加入进去之后,默认就会安装flannel网络的组件
 
Every 2.0s: kubectl get pods --all-namespaces                                                                        Tue Aug 25 21:02:33 2020
 
NAMESPACE     NAME                                  READY   STATUS     RESTARTS   AGE
kube-system   coredns-66bff467f8-9qlqm              1/1     Running    0          132m
kube-system   coredns-66bff467f8-l8ksl              1/1     Running    0          132m
kube-system   etcd-kube-master                      1/1     Running    0          132m
kube-system   kube-apiserver-kube-master            1/1     Running    0          132m
kube-system   kube-controller-manager-kube-master   1/1     Running    0          132m
kube-system   kube-flannel-ds-amd64-d5vpn           0/1     Init:0/1   0          2m51s
kube-system   kube-flannel-ds-amd64-vcmx9           1/1     Running    0          30m
kube-system   kube-proxy-p4vmz                      1/1     Running    0          2m51s
kube-system   kube-proxy-rg44d                      1/1     Running    0          132m
kube-system   kube-scheduler-kube-master            1/1     Running    0          132m
 
# 然后等他慢慢完成,我们可以继续进行下一个节点的加入
# 如果还是很慢,照着flannel安装的那一篇,在添加的节点服务器上手动拉取下flannel的镜像
# 直到都加入成功
 
 
NAME          STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-
RUNTIME
kube-master   Ready    master   153m   v1.18.8   10.0.0.3      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://1
9.3.12
kube-node-1   Ready    <none>   24m    v1.18.8   10.0.0.4      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://1
9.3.12
kube-node-2   Ready    <none>   18m    v1.18.8   10.0.0.5      <none>        CentOS Linux 7 (Core)   3.10.0-1127.18.2.el7.x86_64   docker://1
9.3.12