4.6 注意事项与技巧 |
|
注意事项:
·实验时三台虚拟机要保持时间同步,如果你用vagrant完成实验,那么基本不会出现这种问题。
·要注意当前的操作用户,安装软件时使用的是sudo模拟root用户,在操作kubernetes集群时,使用的是vagrant普通用户。
1.Pod无法启动的排错步骤
1)查看Pod日志:
$ kubectl logs pod-name
2)查看Pod详细信息。
重点查看事件(events)信息:
$ kubectl describe pod-name
3)查看Docker日志。
通过下面的命令找到容器运行的节点:
$ kubectl get pod -o wide
登录到容器运行的节点,找到出错容器:
$ sudo docker ps -a
查看容器日志:
$ sudo docker logs container-id
4)查看Kubelet及其他组件日志:
$ sudo journalctl -u kubelet
2.创建集群失败后如何快速重来
当创建集群失败后,可以通过如下的命令快速恢复到没有初始化集群的状态,如下命令需要在master节点和已经加入集群的node节点上执行:
$ sudo kubeadm reset
3.重新获取集群的join命令
可以通过以下两种方法重新获取join命令。
获取一个有过期时间的token:
$ sudo kubeadm token create --print-join-command kubeadm join 11.11.11.111:6443 --token uhuqes.c6u9p96s0dfipj3h --discovery-token-ca-cert-hash sha256:c6290480baaef64f3f1c6b6861de8685ca74d5a4a7c2703eace18a2e2117e87d
获取一个永不过期的token:
$ sudo kubeadm token create --print-join-command --ttl=0 kubeadm join 11.11.11.111:6443 --token k6j5ic.xh3b29r8unfsbvax --discovery-token-ca-cert-hash sha256:c6290480baaef64f3f1c6b6861de8685ca74d5a4a7c2703eace18a2e2117e87d
4.让masterI不再接收负载
使用如下的命令来停止master再接收普通pod负载,但是已经调度到master节点上的pod不受影响:
$ kubectl taint nodes lab1 node-role.kubernetes.io/master=true:NoSchedule node/lab1 tainted