Etcd 基础维护

Etcd 基础维护,第1张

本文所有命令均在 TLS 环境下运行,如需参考,请自行更改为您的环境(节点IP,证书路径),无证书环境请删除证书相关指令

本文所有命令均在 etcdctl 默认api ,即 etcd api v2 下 *** 作,v3 指令略有改动可能不匹配,详情请查阅官方文档: https://etcd.io/docs/

查看版本

查看 Etcd 暴露出来的 prometheus 指标,在 prometheus 对其监控时可调用

查看 etcd、etcd api v2 版本

查看 etcd、etcd api v3 版本

查询节点 ID

删除节点,如删除 Eecd3

修改配置文件 etcd.conf,修改参数 ETCD_INITIAL_CLUSTER 并移除节点信息,重启etcd服务

1)在群集中删除故障节点

在任意一 etcd 节点服务器查询该节点 ID,通过ID删除故障节点, *** 作步骤如下

删除目标节点的数据

2)编辑目标节点配置文件,将 --initial-cluster-state值改为 existing (否则会生成新的ID,与原ID不匹配将无法加入集群

3)加入节点至集群,需输入目标节点的 etcd name 和 PEER_URLS

4)启动目标节点 etcd 服务

5)查看集群健康状态

停止 Etcd 服务

备份并删除当前 Etcd 数据

注意:此方法恢复数据可能不完整,仅建议极端环境下使用,常规数据恢复请使用快照

https://blog.csdn.net/ccy19910925/category_7590496.html

假设你已经通过kubeadm 安装好了K8S 和对应的etcd集群

Kubenretes1.6中使用etcd V3版本的API,使用etcdctl直接ls的话只能看到/kube-centos一个路径。需要在命令前加上ETCDCTL_API=3这个环境变量才能看到kuberentes在etcd中保存的数据。

如果是使用 kubeadm 创建的集群,在 Kubenretes 1.11 中,etcd 默认使用 tls ,这时你可以在 master 节点上使用以下命令来访问 etcd :

-w指定输出格式

将得到这样的json的结果:

使用--prefix可以看到所有的子目录,如查看集群中的namespace:

输出结果中可以看到所有的namespace。

key的值是经过base64编码,需要解码后才能看到实际值,如:

etcd中kubernetes的元数据

我们使用kubectl命令获取的kubernetes的对象状态实际上是保存在etcd中的,使用下面的脚本可以获取etcd中的所有kubernetes对象的key:

注意,我们使用了ETCD v3版本的客户端命令来访问etcd。

通过输出的结果我们可以看到kubernetes的原数据是按何种结构包括在kuberentes中的,输出结果如下所示:

我们可以看到所有的Kuberentes的所有元数据都保存在/registry目录下,下一层就是API对象类型(复数形式),再下一层是namespace,最后一层是对象的名字。

以下是etcd中存储的kubernetes所有的元数据类型:

转自


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6774737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存