使用 kubectl 进行故障排查
当Kubernetes集群或部署的业务出现问题时,可以通过以下 kubectl 命令完成常见的故障排查。
1 查看Kubernetes集群情况。
1. 列出集群组件总体运行情况
# kubectl get cs
注:如果etcd异常,比如IO性能不足,频繁选主,可能会影响访问apiserver速度。
2. 查看节点是否正常
# kubectl get node
# kubectl describe node node44-dmz # 节点unready异常时,可进一步查看
3. 查看kube-system命名空间中,所有系统组件的运行情况,有异常可通过describe/logs命令进一步排查
# kubectl get pod -n kube-system -o wide
2 查看业务应用部署情况
1. 指定业务应用部署的命名空间,查看容器是否正常运行。
# kubectl get pod -n kce-system
注:CrashLoopBackOff是最常见的异常情况,该状态表示容器里的进程未能正常启动,可通过查看日志进一步排查。
2. kubectl describe - 显示有关资源的详细信息,异常情况会有事件信息。
# kubectl describe pod mysql-db-mysql-3306-exporter-12-0 -n kce-system
3. kubectl logs - 输出 Pod 中的容器控制台日志。
# kubectl logs -f --tail 10 mysql-db-mysql-3306-exporter-12-0 -n kce-system
# -f 滚动输出日志,--tail 10 查看最后10行日志
4. kubectl exec - 当Pod正常运行时,可登录Pod,在 Pod 中的容器上执行命令,进行程序运行故障排查。
# kubectl exec -it prometheus-k8s-0 sh -n monitoring
3. 查看主机系统日志
当kubectl无法确认问题时,可进一步查看主机系统日志/var/log/messages。
通过messages,可以找到更多有用信息,帮助排查问题,找出原因。
使用 kubectl 进行故障排查
本文2024-09-23 01:10:55发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144294.html