故障排查


//查看Pod事件

kubectl describe TYPE NAME_PREFIX

//查看Pod日志(Failed状态下)

kubectl logs <POD_NAME> [-c Container_NAME]

//进入Pod(状态为running,但是服务没有提供)

kubectl exec –it <POD_NAME> bash

//查看集群信息

kubectl get nodes

//发现集群状态正常

kubectl cluster-info

//查看kubelet日志发现

journalctl -xefu kubelet

##对节点执行维护操作:

kubectl get nodes

//将 Node 标记为不可调度的状态,这样就不会让新创建的 Pod 在此 Node 上运行

kubectl cordon <NODE_NAME> #该node将会变为SchedulingDisabled状态

//kubectl drain 可以让 Node 节点开始释放所有 pod,并且不接收新的 pod 进程。drain 本意排水,意思是将出问题的 Node 下的 Pod 转移到其它 Node 下运行

kubectl drain <NODE_NAME> --ignore-daemonsets --delete-local-data --force

--ignore-daemonsets:无视 DaemonSet 管理下的 Pod。

--delete-local-data:如果有 mount local volume 的 pod,会强制杀掉该 pod。

--force:强制释放不是控制器管理的 Pod,例如 kube-proxy。

注:执行 drain 命令,会自动做了两件事情:

1)设定此 node 为不可调度状态(cordon)

(2)evict(驱逐)了 Pod

//kubectl uncordon 将 Node 标记为可调度的状态

kubectl uncordon <NODE_NAME>

posted @ 2023-02-22 16:35  原味苦茶  阅读(30)  评论(0编辑  收藏  举报