Kubernetes v1.21集群命令无响应问题排查求助
Kubernetes v1.21集群无响应问题调试与定位方案
一、先开启kubectl命令级调试
执行操作时添加-v参数输出详细日志,比如扩缩容命令:
kubectl scale deployment <你的Deployment名称> --replicas=3 -v=6
通过日志可以确认:请求是否发送到API Server、API Server的返回结果、认证授权环节是否有异常。
二、排查控制平面组件的实际运行日志
虽然进程状态显示正常,但组件可能因通信或认证问题无法正常工作:
- 查看kube-apiserver日志(核心入口,证书问题大概率在此暴露):
重点关注x509证书验证失败、证书过期、SAN字段不匹配、客户端认证拒绝类报错。journalctl -u kube-apiserver -f - 查看kube-controller-manager日志:
确认是否能正常连接API Server,是否有认证失败、leader选举异常的日志。journalctl -u kube-controller-manager -f - 查看kube-scheduler日志:
检查与API Server的通信状态,以及leader选举是否正常。journalctl -u kube-scheduler -f
三、重点排查证书问题(近期更新过证书)
验证控制平面证书有效性
检查/etc/kubernetes/pki下的核心证书,比如apiserver.crt:openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout确认:
- 证书未过期(Not Before/Not After字段)
- SAN字段包含集群所需的所有域名/IP(比如master节点IP、kubernetes.default.svc、kubernetes.default等)
检查kubeconfig文件关联的证书
查看controller-manager、scheduler、kubelet使用的kubeconfig文件:- /etc/kubernetes/controller-manager.conf
- /etc/kubernetes/scheduler.conf
- /etc/kubernetes/kubelet.conf
确认文件中client-certificate指向的证书文件有效,或者client-certificate-data对应的证书未过期。
确认证书更新后组件是否重启
证书更新后,kube-apiserver、controller-manager、scheduler、kubelet都需要重启才能加载新证书,执行:systemctl restart kube-apiserver kube-controller-manager kube-scheduler kubelet
四、检查依赖组件状态
etcd集群健康检查
API Server依赖etcd存储数据,检查etcd状态:etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint health同时查看etcd日志:
journalctl -u etcd -f确认无数据损坏、连接异常。
Leader选举状态验证
检查controller-manager和scheduler的leader是否正常:kubectl get endpoints kube-controller-manager -n kube-system kubectl get endpoints kube-scheduler -n kube-system若ENDPOINTS字段为空,说明leader选举失败,大概率是认证或网络问题导致。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

