排查 k8s 集群 master 节点无法正常工作的问题
搭建的是 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 参数。
排查 k8s 集群 master 节点无法正常工作的问题的更多相关文章
- k8s集群master节点上的flannel总是不定期重启的原因分析
这个问题,困绕了团队一段时间, 因为暂时没有用到master的外网网络, 没有引起重视,但总归要解决. 上周五,刚好有点小空,就深入调查了一下. 最后,定位到了问题点:k8s master节点的fla ...
- 使用Kubeadm创建k8s集群之节点部署(三十一)
前言 本篇部署教程将讲述k8s集群的节点(master和工作节点)部署,请先按照上一篇教程完成节点的准备.本篇教程中的操作全部使用脚本完成,并且对于某些情况(比如镜像拉取问题)还提供了多种解决方案.不 ...
- K8S集群Master高可用实践
K8S集群Master高可用实践 https://blog.51cto.com/ylw6006/2164981 本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以 ...
- k8s集群新增节点
节点为centos7.4 一.node节点基本环境配置 1.配置主机名 2.配置hosts文件(master和node相互解析) 3.时间同步 ntpdate pool.ntp.org date ec ...
- ES集群Master节点配置问题
ES集群的主节点发现机制采用单播形式,主要配置有三行,如下: discovery.zen.minimum_master_nodes: discovery.zen.ping.multicast.enab ...
- k8s集群node节点一直NotReady, 且node节点(并非master)的kubelet报错:Unable to update cni config: No networks found in /etc/cni/net.d
若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11401031.html 问题: 集群搭建的过程中,master节点初始化成功,但 ...
- 一键安装基于dns的高可用k8s集群(3节点,etcd https)
在公司,使用dns切换,可能会比keepalived+haproxy,更精简的易维护. 毕竟,高可用只是偶尔切换,不是时时切换. 且dns解析在自己可控时,更不会影响k8s线上使用了. (部分代码,由 ...
- k8s集群———etcd-三节点部署
etcd集群部署 ,创建etcd可执行文件,配置文件,证书文件存放目录 mkdir /opt/etcd/{bin,cfg,ssl} -p ,创建包文件存放目录 mkdir /soft -p ,解压et ...
- k8s集群-node节点设置不可调度或者删除node节点
在master 执行1, 不可调度 kubectl cordon k8s-node- kubectl uncordon k8s-node- #取消 2,驱逐已经运行的业务容器 kubectl drai ...
随机推荐
- python:利用smtplib发送邮件详解
本文转自:https://www.cnblogs.com/insane-Mr-Li/p/9121619.html 自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用 ...
- VSCode常用插件之open in browser使用
更多VSCode插件使用请访问:VSCode常用插件汇总 open in browser安装完这个插件就可以在编辑器菜单右键html,在默认浏览器打开了,高级使用暂未了解,请自行其它文章学习
- PP: Robust Anomaly Detection for Multivariate Time Series through Stochastic Recurrent Neural Network
PROBLEM: OmniAnomaly multivariate time series anomaly detection + unsupervised 主体思想: input: multivar ...
- QQ群985135948入群密码
QQ群985135948入群密码:键盘第三排从左往右依次按过去,就是密码 点下面这个键应该可以进群哦!
- gulp安装报错Local version: Unknown
解决方法 使用国内的淘宝镜像安装: cnpm install -g gulp 一开始只执行了上面命令,没执行下面,gulp -v 之后显示Local version: Unknowncnpm inst ...
- AntDesign(React)学习-4 登录页面提交数据简单实现
github代码:https://github.com/zhaogaojian/jgdemo 全国肺炎,过节期间没地方去在家学习antd. 一.感觉antd pro项目太庞大了,可以学习下结构和代码风 ...
- jQuery实现隔行变色、悬停变色 ( CSS3伪类选择器:nth-child() )
<title>实现隔行变色</title> <script src="Js/jquery-1.8.0.min.js" type="text/ ...
- C 库函数 - strncpy()
描述 C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符.当 src ...
- JMeter概念
1. Test Plan 测试计划 Test Plan也就是测试计划,概念有点类似eclipse里面的project(项目.工程). 一个JMeter测试计划有很多种测试元素组成.一般至少包含一个T ...
- 最近手机价格全线暴跌真的只是因为5G要来了吗?
等等党,是一群数量颇大的消费群体.他们的消费习性是绝不买刚上市的新品,而是一直等.等到他们认为产品的价格已经跌无可跌,或者性价比十足的时候再出手.不得不说,与早买早享受的尝鲜消费群体相比,等等党代表了 ...