三十一、Trouble Shooting指南

Kubernetes 集群的故障排查(Troubleshooting)是确保集群和应用稳定运行的关键任务。由于 Kubernetes 涉及多个组件和复杂的分布式系统,故障排查时需要关注的地方非常多。以下是一个详细的 Kubernetes Troubleshooting 指南,从集群层面、节点层面、应用层面到网络等各个方面进行了细分。


一、集群状态检查

1. 集群健康检查

  • kubectl cluster-info:检查集群的基本信息,确保 Kubernetes API Server、DNS 服务等都处于正常状态。
[root@k8s-master01 ~]#kubectl cluster-info
Kubernetes control plane is running at https://10.1.2.26:8443
CoreDNS is running at https://10.1.2.26:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

这会显示集群的控制平面组件地址,确认各个控制平面服务是否可达。

  • kubectl get componentstatuses:检查控制平面组件的健康状况(包括 API Server、Controller Manager、Scheduler 等)。
[root@k8s-master01 ~]#kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE   ERROR
controller-manager   Healthy   ok
scheduler            Healthy   ok
etcd-0               Healthy   ok

如果返回 Healthy 状态则正常,如果有任何服务状态为 UnhealthyUnknown,需要进一步排查。

2. 检查节点状态

  • kubectl get nodes:查看节点的状态。检查每个节点的状态(Ready、NotReady、Unknown等),并确保没有节点处于 NotReady 状态。
[root@k8s-master01 ~]#kubectl get nodes
NAME           STATUS   ROLES    AGE    VERSION
k8s-master01   Ready    <none>   187d   v1.28.0
k8s-master02   Ready    <none>   187d   v1.28.0
k8s-master03   Ready    <none>   187d   v1.28.0
k8s-node01     Ready    <none>   187d   v1.28.0
k8s-node02     Ready    <none>   187d   v1.28.0

如果有节点出现 NotReady,可以使用 kubectl describe node <node-name> 查看详细信息,找出原因。

  • kubectl describe node <node-name>:查看特定节点的详细状态,特别是节点的 ConditionsEventsKubelet 日志等。
[root@k8s-master01 ~]#kubectl describe node k8s-master01
Name:               k8s-master01
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                   beta.kubernetes.io/os=linux
                   gpu=true
                   kubernetes.io/arch=amd64
                   kubernetes.io/hostname=k8s-master01
                   kubernetes.io/os=linux
                   node.kubernetes.io/node=
                   ssd=true
Annotations:        csi.volume.kubernetes.io/nodeid: {
   
   "rook-ceph.cephfs.csi.ceph.com":"k8s-master01","rook-ceph.rbd.csi.ceph.com":"k8s-master01"}
                   node.alpha.kubernetes.io/ttl: 0
                   projectcalico.org/IPv4Address: 10.1.2.21/16
                   projectcalico.org/IPv4IPIPTunnelAddr: 172.16.32.128
                   volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sun, 25 Aug 2024 11:49:54 +0800
Taints:             <none>
Unschedulable:      false
Lease:
 HolderIdentity:  k8s-master01
 AcquireTime:     <unset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyan_Jiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值