k8s集群etcd节点故障解决方案(代码片段)

烟拢寒水 烟拢寒水     2023-04-25     262

关键词:

1 环境说明

k8s版本:v1.20

etcd节点(192.168.0.12)故障:

 报错详情:

 4月 24 22:47:13 k8s-node2 etcd[9543]: "level":"warn","ts":"2023-04-24T22:47:13.571+0800","caller":"etcdserver/server.go:2065","msg":"failed to publish local member to cluster through raft","local-member-id":"b8fffb7f5b2f26e","local-member-attributes":"Name:etcd-3 ClientURLs:[https://192.168.0.12:2379]","request-path":"/0/members/b8fffb7f5b2f26e/attributes","publish-timeout":"7s","error":"etcdserver: request timed out"

2 查看etcd集群

/opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.0.5:2379,https://192.168.0.11:2379,https://192.168.0.12:2379" member list

3 移除故障节点

/opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.0.5:2379,https://192.168.0.11:2379,https://192.168.0.12:2379" member remove b8fffb7f5b2f26e

4 删除故障节点的数据

rm -rf /var/lib/etcd/default.etcd/member/

5 修改故障节点etcd配置文件

将new改为existing

#[Member]
ETCD_NAME="etcd-3"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.0.12:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.0.12:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.0.12:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.0.12:2379"
ETCD_INITIAL_CLUSTER="etcd-1=https://192.168.0.5:2380,etcd-2=https://192.168.0.11:2380,etcd-3=https://192.168.0.12:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="existing"

6 重新加入集群

/opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.168.0.5:2379,https://192.168.0.11:2379,https://192.168.0.12:2379" member add etcd-3 --peer-urls=https://192.168.0.12:2380

 

7 重启故障节点的etcd

systemctl restart etcd

查看etcd服务状态

8 查看k8s集群健康状态

 

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

kubernetes集群之二进制安装部署(单master节点)(代码片段)

...见的K8S按照部署方式二、安装部署分析三、首先部署ETCD集群3.1ETCD介绍3.2准备CFSSL证书签发环境3.3环境部署3.3.1搭建ETCD步骤3.3.2下载准备CFSSL证书制作工具3.3.3上传etcd-cert.sh和etcd.sh到/opt/k8s/目录中3.3.4安装ETCD服务3.3.5配置ETCD集群3.3.... 查看详情

rancherrkek8s集群etcd恢复(代码片段)

背景在Rancher中基于RKE创建的K8s集群,因为服务器磁盘故障,导致3个master节点有2个节点的etcd数据文件损坏,导致整个集群不可用。etcd三个节点集群时,如果有2个节点损坏,仅剩余的一个etcd节点是不能正常通... 查看详情

linux企业运维——k8s高可用集群架构搭建详解(代码片段)

K8s高可用集群文章目录K8s高可用集群一、K8s高可用集群架构原理二、实验环境三、K8s高可用集群架构搭建3.1、负载均衡Loadbalancer部署—haproxy3.2、Docker部署3.3、K8s集群部署3.4、K8s集群添加worker节点四、集群高可用性能测试一、K8s... 查看详情

云原生|kubernetes篇自建高可用k8s集群搭建(代码片段)

文末有惊喜文章目录自建高可用k8s集群搭建一、所有节点基础环境1、环境准备与内核升级2、安装Docker二、PKI三、证书工具准备1、下载证书工具2、ca根配置3、ca签名请求4、生成证书5、k8s集群是如何使用证书的四、etcd高可用搭建... 查看详情

k8s单节点集群二进制部署(步骤详细,图文详解)(代码片段)

k8s单节点集群二进制部署(步骤详细,图文详解)一、k8s集群搭建环境准备1、etcd集群master01node01node02所有node节点部署docker引擎2、flannel网络插件3、搭建master组件4、搭建node组件(1)node1节点(2)node2节... 查看详情

基于patroni+etcd打造可自动故障转移的postgresql集群(代码片段)

...限公司得益于PostgreSQL的开源特性,越来越多的第三方集群管理软件填补了PostgreSQL在集群方面的易用性和可靠性,patroni+etcd提供了一系列的集群管理方案。etcd负责集群状态信息的存放,用来联系各个节点,patron... 查看详情

2二进制方式搭建k8s集群(代码片段)

本文介绍单/多Master的K8S集群搭建全过程。 目录1环境要求、节点规划、配置1.1环境要求1.2节点规划1.3操作系统初始化配置2ETCD集群部署2.1 准备cfssl证书生成工具2.2 生成ETCD证书2.3下载ETCD的二进制文件2.4部署ETCD集群3安装Docker4部... 查看详情

k8s高可用部署:keepalived+haproxy

参考技术A最近依照网上不少文章部署K8s高可用集群,遇到了一些麻烦,在这里记录下来。根据K8s官方文档将HA拓扑分为两种,Stackedetcdtopology(堆叠ETCD)和Externaletcdtopology(外部ETCD)。https://kubernetes.cn/docs/setup/production-environment/to... 查看详情

k8s高可用+负载均衡集群

K8s高可用集群配置高可用(HA)Kubernetes集群,有以下两种可选的etcd拓扑:集群master节点与etcd节点共存,etcd也运行在控制平面节点上使用外部etcd节点,etcd节点与master在不同节点上运行本实验使用第一种堆... 查看详情

二进制部署k8s单节点(代码片段)

Kubernetes集群部署环境规划一、ETCD数据库集群部署1.安装cfssl证书生成工具2.生成证书3.etcd部署3.1创建对应目录,拷贝相应文件3.2查看启动脚本3.3执行脚本等待节点加入3.4将文件拷贝到其他节点,并修改配置文件3.5启动etcd&#... 查看详情

k8s集群安装和迁移

参考技术A原内部测试环境K8S集群为3节点集群(一主二从),不知从哪天开始起,主节点从每两天异常停机,到后来每天异常停机,再后来每两小时异常停机,排查结果后怀疑是硬件故障,只能更换主节点。但是上面挂载了太多的... 查看详情

k8s------kubernetes单master集群二进制搭建(代码片段)

目录前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,... 查看详情

关于k8s中etcd集群备份灾难恢复的一些笔记(代码片段)

写在前面集群电源不稳定,或者节点动不动就宕机,一定要做好备份,ETCD的快照文件很容易受影响损坏。重置了很多次集群,才认识到备份的重要博文内容涉及etcd运维基础知识了解静态Pod方式etcd集群灾备与恢复Demo定... 查看详情

k8s部署etcd集群(代码片段)

1、k8s部署高可用etcd集群时遇到了一些麻烦,这个是自己其中一个etcd的配置文件例如:[Unit]Description=EtcdServerAfter=network.targetAfter=network-online.targetWants=network-online.targetDocumentation=https://github.com/coreos[Service]User 查看详情

k8s多master集群二进制部署(代码片段)

k8s多Master集群二进制部署一、k8s多Master集群高可用方案1、高可用实现方案2、多Master高可用的搭建过程二、多master节点集群搭建(master02节点部署)三、负载均衡部署四、k8s的网站管理系统(DashboardUI)1、Dashboard介... 查看详情

k8s多master集群二进制部署(代码片段)

k8s多Master集群二进制部署一、k8s多Master集群高可用方案1、高可用实现方案2、多Master高可用的搭建过程二、多master节点集群搭建(master02节点部署)三、负载均衡部署四、k8s的网站管理系统(DashboardUI)1、Dashboard介... 查看详情