kubeadm高可用集群意外删除一mater节点,重新加入失败
layout: "post"
title: "2020-07-23-qestion-etcd(error execution phase check-etcd)"
date: "2020-07-23 10:00:00"
category: "kubernetes"
tags: "kubernetes1.16.8 etcd check-etcd etcd 监控检查失败"
author: duiniwukenaihe
- content {:toc}
背景
昨天搭建1.18.6kubeadm ha集群的时候 xshell 没有仔细看 手贱,把老集群的master02节点给kubeadm reset了。然后master01几点重新生成token,将master02节点介入集群出现etcd检查失败的错误日志,然后发现了超级小豆丁的日志也整过类型的问题:http://www.mydlq.club/article/73/详情见大佬博客
基本过程:(直接抄写豆丁大佬的了,基本就那么操作的)
1. kubectl describe configmaps kubeadm-config -n kube-system。发现k8s-master-02节点依然存在。
2. 万恶的etcd,当剔除一个 master 节点时 etcd 集群未删除剔除的节点的 etcd 成员信息,该信息还存在 etcd 集群列表中。手工删除etcd成员信息。
kubectl get pods -n kube-system | grep etcd
etcd-k8s-master-01 1/1 Running 2 212d
etcd-k8s-master-03 1/1 Running 3 212d
kubectl exec -it etcd-k8s-master-01 sh -n kube-system
配置环境
export ETCDCTL_API=3
alias etcdctl='etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=etc/kubernetes/pki/etcd/server.key'
查看 etcd 集群成员列表
etcdctl member list
b3e5838df5f510, started, k8s-master-01, https://10.0.0.41:2380, https://10.0.0.41:2379
aab0efa6cc544b57, started, k8s-master-02, https://10.0.0.34:2380, https://10.0.0.34:2379
dd2b426e7bda1609, started, k8s-master-03, https://10.0.0.26:2380, https://10.0.0.26:2379
删除 etcd 集群成员k8s-master-02
etcdctl member remove aab0efa6cc544b57
再次查看 etcd 集群成员列表
etcdctl member list
b3e5838df5f510, started, k8s-master-01, https://10.0.0.41:2380, https://10.0.0.41:2379
dd2b426e7bda1609, started, k8s-master-03, https://10.0.0.26:2380, https://10.0.0.26:2379
exit
3 . k8s-master-02节点重新加入集群。
kubeadm reset
kubeadm join 10.0.0.37:6443 --token xzd67o.xgnzqkwkjem7kcmf --discovery-token-ca-cert-hash sha256:56ccafb865957c0692f5737cd8778553910c1049ef238a7781b7a39f5fd3a99a --control-plane
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master-01 Ready master 212d v1.16.8
k8s-master-02 Ready master 3d2h v1.16.8
k8s-master-03 Ready master 212d v1.16.8
k8s-node-01 Ready <none> 212d v1.16.8
k8s-node-02 Ready <none> 212d v1.16.8
k8s-node-03 Ready <none> 212d v1.16.8
k8s-node-04 Ready <none> 210d v1.16.8
k8s-node-05 Ready <none> 210d v1.16.8
k8s-node-06 Ready <none> 210d v1.16.8
- 移动测试 Appium源码初探
- UESTC 1599 wtmsb【优先队列+排序】
- BZOJ 1029: [JSOI2007]建筑抢修【优先队列+贪心策略】
- UVA 1030 - Image Is Everything【模拟+思维+迭代更新】
- C/C++中对链表操作的理解&&实例分析
- COGS 2482. Franky的胡子【二分,高精度】
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战02】理解gym的建模思想
- Kruscal(最小生成树)算法模版
- BZOJ 3680: 吊打XXX【模拟退火算法裸题学习,爬山算法学习】
- 区块链概况:什么是比特币
- 简化版桶排序操作模版
- BZOJ 3670: [Noi2014]动物园【KMP变形 】
- 【延迟注入】A5站长网某站存在SQL注入漏洞
- hihoCoder #1498 : Diligent Robots【数学】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 『Python动手学』Python处理.mat文件
- Swift 打开三方地图 腾讯地图、百度地图、高德地图、Apple 地图
- 初学者应该看的JavaScript Promise 完整指南
- React Advanced Topics
- try catch引发的性能优化深度思考
- 用于自动驾驶车辆视觉定位的地图存储:ORB-SLAM2的一种拓展
- c# 动态产生控件 注册动态控件事件
- leetcode 一些算法题及答案
- 得分--UVa1585
- 如何计算一个程序的运行时间
- c语言输入回车结束输入
- C# devExpress BandedGridView属性 备忘
- 结构体的应用及所有形式
- 百炼1003
- 百炼1005