kdsvrmgr无法正常工作_排查 k8s 集群 master 节点无法正常工作的问题

本文详细介绍了如何解决kdsvrmgr在kubernetes集群master节点上遇到的问题,整理了kubernetes常见故障,并探讨了使用Elastic技术栈构建Kubernetes全栈监控的方法,同时提到了利用Helm部署多个应用的实践。
摘要由CSDN通过智能技术生成
点击标题下「蓝色微信名」可快速关注 搭建的是 k8s 高可用集群,用了 3 台 master 节点,2 台 master 节点宕机后,仅剩的 1 台无法正常工作。 运行 kubectl get nodes 命令出现下面的错误
The connection to the server k8s-api:6443 was refused - did you specify the right host or port?
注:k8s-api 对应的就是这台 master 服务器的本机 IP 地址。 运行 netstat -lntp 命令发现 kube-apiserver 根本没有运行,同时发现 etcd 与 kube-proxy 也没运行。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0      0 127.0.0.1:33807         0.0.0.0:* LISTEN 602/kubelet
tcp 0      0 0.0.0.0:111             0.0.0.0:* LISTEN 572/rpcbind
tcp 0      0 127.0.0.1:10257         0.0.0.0:* LISTEN 3229/kube-controlle
tcp 0      0 127.0.0.1:10259         0.0.0.0:* LISTEN 3753/kube-scheduler
tcp 0      0 127.0.0.53:53           0.0.0.0:* LISTEN 571/systemd-resolve
tcp 0      0 0.0.0.0:22              0.0.0.0:* LISTEN 1644/sshd
tcp 0      0 127.0.0.1:10248         0.0.0.0:* LISTEN 602/kubelet
tcp6 0      0 :::111                  :::* LISTEN 572/rpcbind
tcp6 0      0 :::10250                :::* LISTEN 602/kubelet
tcp6 0      0 :::10251                :::* LISTEN 3753/kube-scheduler
tcp6 0      0 :::10252                :::* LISTEN 3229/kube-controlle
通过 docker ps 命令发现 etcd , kube-apiserver, kube-proxy 这 3 个容器都没有运行,etcd 容器在不停地启动->失败->重启->又失败......,查看容器日志发现下面的错误:
etcdserver: publish error: etcdserver: request timed out
rafthttp: health check for peer 611e58a32a3e3ebe could not connect: dial tcp 10.0.1.252:2380: i/o timeout (prober "ROUND_TRIPPER_SNAPSHOT")
rafthttp: health check for peer 611e58a32a3e3ebe could not connect: dial tcp 10.0.1.252:2380: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")
rafthttp: health check for peer cc00b4912b6442df could not connect: dial tcp 10.0.1.82:2380: i/o timeout (prober "ROUND_TRIPPER_SNAPSHOT")
rafthttp: health check for peer cc00b4912b6442df could not connect: dial tcp 10.0.1.82:2380: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE")
raft: 12637f5ec2bd02b8 is starting a new election at term 254669
etcd 启动失败是由于 etcd 在 3 节点集群模式在启动却无法连接另外 2 台 master 节点的 etcd ,要解决这个问题需要改为单节点集群模式。开始不知道如何将 etcd 改为单节点模式,后来在网上找到 2 个参数 --initial-cluster-state=new 与 --force-new-cluster ,在 /etc/kubernetes/manifests/etcd.yaml 中给 etcd 命令加上这 2 个参数,并重启服务器后,master 节点就能正常运行了。
containers:
  - command:
    - etcd
    - --advertise-client-urls=https://10.0.1.81:2379
    - --cert-file=/etc/kubernetes/pki/etcd/server.crt
    - --client-cert-auth=true
    - --data-dir=/var/lib/etcd
    - --initial-advertise-peer-urls=https://10.0.1.81:2380
    - --initial-cluster=k8s-master0=https://10.0.1.81:2380
    - --initial-cluster-state=new
    ......
master 正常运行后,需要去掉刚刚添加的这 2 个 etcd 参数。

出处:http://dwz.date/cAZE

a9d011c7e94a85cca56c47b637354932.gif最新 k8s 直播课火热招生中 扫码咨询>>> 9a62895dcd9b7f11ea0226de56bd6247.png a9d011c7e94a85cca56c47b637354932.gif 5f481ad088217f24f22003ecb9491a7f.gif

●整理 kubernetes 各种问题汇总

●使用 Elastic 技术栈构建 Kubernetes 全栈监控(完结)

●Kubernetes 与 Helm:使用同一个 Chart 部署多个应用

●云开发-web应用中使用数据库

●运维精华

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值