概述
將 slave 節(jié)點(diǎn)加入到集群中很簡(jiǎn)單争占,只需要在 slave 服務(wù)器上安裝 kubeadm素邪,kubectl妻顶,kubelet 三個(gè)工具捆等,然后使用kubeadm join
命令加入即可挺份。準(zhǔn)備工作如下:
- 修改主機(jī)名
- 配置軟件源
- 安裝三個(gè)工具
由于之前章節(jié)已經(jīng)說(shuō)明了操作步驟褒翰,此處不再贅述。
將 slave 加入到集群
kubeadm join 192.168.141.130:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:cab7c86212535adde6b8d1c7415e81847715cfc8629bb1d270b601744d662515
# 安裝成功將看到如下信息
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.14" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Activating the kubelet service
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
說(shuō)明:
- token
- 可以通過(guò)安裝 master 時(shí)的日志查看 token 信息
- 可以通過(guò)
kubeadm token list
命令打印出 token 信息 - 如果 token 過(guò)期匀泊,可以使用
kubeadm token create
命令創(chuàng)建新的 token
- discovery-token-ca-cert-hash
- 可以通過(guò)安裝 master 時(shí)的日志查看 sha256 信息
- 可以通過(guò)
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
命令查看 sha256 信息
驗(yàn)證是否成功
回到 master 服務(wù)器
kubectl get nodes
# 可以看到 slave 成功加入 master
NAME STATUS ROLES AGE VERSION
kubernetes-master NotReady master 9h v1.14.1
kubernetes-slave1 NotReady <none> 22s v1.14.1
如果 slave 節(jié)點(diǎn)加入 master 時(shí)配置有問(wèn)題可以在 slave 節(jié)點(diǎn)上使用 kubeadm reset 重置配置再使用 kubeadm join 命令重新加入即可优训。希望在 master 節(jié)點(diǎn)刪除 node ,可以使用 kubeadm delete nodes <NAME> 刪除各聘。
查看 pod 狀態(tài)
kubectl get pod -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
coredns-8686dcc4fd-gwrmb 0/1 Pending 0 9h <none> <none> <none> <none>
coredns-8686dcc4fd-j6gfk 0/1 Pending 0 9h <none> <none> <none> <none>
etcd-kubernetes-master 1/1 Running 1 9h 192.168.141.130 kubernetes-master <none> <none>
kube-apiserver-kubernetes-master 1/1 Running 1 9h 192.168.141.130 kubernetes-master <none> <none>
kube-controller-manager-kubernetes-master 1/1 Running 1 9h 192.168.141.130 kubernetes-master <none> <none>
kube-proxy-496dr 1/1 Running 0 17m 192.168.141.131 kubernetes-slave1 <none> <none>
kube-proxy-rsnb6 1/1 Running 1 9h 192.168.141.130 kubernetes-master <none> <none>
kube-scheduler-kubernetes-master 1/1 Running 1 9h 192.168.141.130 kubernetes-master <none> <none>
由此可以看出 coredns 尚未運(yùn)行揣非,此時(shí)我們還需要安裝網(wǎng)絡(luò)插件。