kubectl命令执行失败排查方案

  原理, 问题信息收集
内容纲要

概要描述


在TDH集群中,kubectl命令执行时请求流转为kubectl–>haproxy–>apiserver–>etcd; haproxy在这里起到代理作用,将请求分发给后面的apiserver,具体可看haproxy配置;etcd则可以理解为TOS的“元数据库”;

详细说明


1.检查TOS是否正常

需要确定kubelet服务是正常的
file

要注意其配置文件必须是/usr/lib/systemd/system/kubelet.service,以及其内容未被篡改

2.检查kubectl命令的详细信息

使用which kubectl查看kubectl命令的详细信息;

TDH环境指定了别名,全称是:

alias kubectl=’kubectl -s https://127.0.0.1:6443 –certificate-authority=/srv/kubernetes/ca.pem –client-certificate=/srv/kubernetes/admin.pem –client-key=/srv/kubernetes/admin-key.pem’
/usr/bin/kubectl

如果没有别名、别名中使用到的配置文件丢失等都会导致kubectl命令无法使用

3.指定apiserver

尝试指定apiserver的方式执行命令,示例如下:(如果指定apiserver可以执行,那么大概率是haproxy代理转发出了问题)

kubectl –server=https://172.16.158.15:8553 get pod ##其中server为apiserver的地址

file

4.检查haproxy服务

查看haproxy服务是否正常,端口是否在监听,配置文件是否包含apiserver地址;

systemctl status haproxy
netstat -anp | grep 6443
less /etc/tos/conf/haproxy.cfg

故障修复可以参考:
https://nj.transwarp.cn:8180/?p=3592

5.检查etcd

所有etcd必须全部健康,可以参考:
https://nj.transwarp.cn:8180/?p=5572

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。