命令记不住

登陆

k8s 集群维护和故障排查

k8s集群维护和故障排查

1.维护某个节点或者删除节点

1、获取节点列表

#kubectl get node
NAME         STATUS   ROLES                  AGE   VERSION
cka-master   Ready    control-plane,master   24d   v1.21.7
cka-node1    Ready    <none>                 24d   v1.21.7
cka-node2    Ready    <none>                 24d   v1.21.7

2、驱逐节点上的Pod并设置不可调度(cordon)

kubectl drain <node_name> --ignore-daemonsets

3、移除节点

kubectl delete node <node_name>

4、设置可调度

kubectl uncordon <node_name> 

.

2.故障排查

1.应用部署相关

查看资源详情

kubectl describe TYPE/NAME

查看Pod日志

kubectl logs TYPE/NAME [-c CONTAINER]

进入容器终端

kubectl exec POD [-c CONTAINER] -- COMMAND [args...]
2.组件不能正常工作
管理节点组件:

• kube-apiserver

• kube-controller-manager

• kube-scheduler

工作节点组件:

• kubelet

• kube-proxy

集群架构图:

待补充

1.先区分部署方式

kubeadm除kubelet外,其他组件均采用静态Pod启动

二进制所有组件均采用systemd管理

2.常见问题:

• 网络不通

• 启动失败,一般配置文件或者依赖服务

• 操作系统,平台不兼容,版本兼容性

3.Service访问异常

Service一般是访问不通,有以下可能性:

1、Service是否关联Pod?

2、Service指定target-port端口是否正常?

3、Pod正常工作吗?

4、Service是否通过DNS工作?

5、kube-proxy正常工作吗?

6、kube-proxy是否正常写iptables规则?

7、cni网络插件是否正常工作?

推荐阅读