python操作etcd常用方法

目前的工作中会经常用到etcd,使用etcdctl命令有时感觉不是很方便的处理后续数据,所以记录下使用python操作etcd的一些常用方法使用python操作etcd获取单个key会返回data和meta两个值,如果是获取列表需要循环取出,取出的值为bytes类型,需要使用decode()进行转换下面我们来介绍下一些常见的操作1.put命令插入和更新keyimport etcd3etcd = etcd3.client('127.0.0.1', 2379, user=root,&nbs...

阅读全文

etcd集群数据备份和恢复

前面几篇笔记记录了etcd单机和集群,还有加密集群的部署方式,这篇就是etcd目前学习的最后一篇笔记,记录了etcd集群备份和恢复数据的方法,记录下来方便后面使用还是用之前TLS加密部署的集群,部署方式可以查看之前的笔记:https://sulao.cn/post/969.html首先我们写入数据etcdctl --cacert=/etc/etcd/pki/ca.pem --cert=/etc/etcd/pki/server.pem --key=/etc/etcd/pki/server-key.pem --endp...

阅读全文

centos7使用二进制部署TLS加密etcd集群

etcd支持通过TLS协议的加密通讯,在实际企业生产环境中,出于安全规范要求,建议开启TLS加密。TLS通道可以用于加密内部的集群通讯,也可以用于加密客户端请求。etcd的TLS有两对,一对是etcd和client端的TLS配置。一对是etcd之间的peer的TLS配置。有很多方式可以创建CA证书和私钥,其中比较流行的有两种opensslcfssl我们目前规划集群信息如下:192.168.1.76 etcd1192.168.1.77 etcd2192.168.1.79 etcd3官方文档推荐使用cfssl生成证书...

阅读全文

etcd集群异常节点重新加入集群

我们在使用etcd集群时会遇到某个节点异常无法启动,或者数据损坏的时候,这种情况需要将这个异常节点在etcd集群中剔除并重新加入该集群,具体操作如下。首先我们先去etcd集群找到这个异常节点并删除,假设我的异常节点为etcd3,ip地址为192.168.1.79etcdctl member list -w table#如果使用了tls加密集群需要增加证书相关参数#etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.crt" --...

阅读全文

centos7二进制部署etcd集群

一般在生产环境下单机的etcd不满足高可用的需求,所以我们需要部署高可用的etcd集群,确保集群节点数N*2+1,etcd的raft协议可以保障各个节点数据的一致性。我们目前规划集群信息如下:192.168.1.76 etcd1192.168.1.77 etcd2192.168.1.79 etcd3然后就开始部署,部署方式基本和单机一致,主要是配置文件需要增加一些配置,配置启动可以查看笔记:https://sulao.cn/post/965.html在每个节点操作wget https://github.co...

阅读全文

centos7备份和恢复单机etcd数据

前面一篇我们已经学习了etcd的单机部署,具体可以查看这个笔记https://sulao.cn/post/965.html,这篇我们介绍下etcd数据备份与恢复,我们尝试先创建几条数据,备份,然后删除创建的数据,然后再恢复备份,查询这条被删除的数据。我们先简单创建条数据etcdctl put testdata "etcd test"OKetcdctl get testdatatestdataetcd test然后我们备份数据ETCDCTL_API=3...

阅读全文

centos7二进制部署单机etcd

etcd是云原生架构中重要的基础组件,由CNCF孵化托管。etcd在微服务和Kubernates集群中不仅可以作为服务注册与发现,还可以作为key-value存储的中间件。今天我们来记录下etcd的安装部署过程首先我们下载etcd包wget https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gztar -zxf etcd-v3.5.0-linux-amd64.tar.gzmv&nbs...

阅读全文

k8s添加master节点报错提示“etcd cluster is not healthy”

原来集群中一个master节点操作系统坏掉了,所以需要重装操作系统,然后以master身份加入到原有集群。安装好docker和k8s以后,使用kubeadmJoin命令加入集群一直报错,错误信息如下:The reset process does not clean your kubeconfig files and you must remove them manually.Please, check...

阅读全文

查看ECTD中数据的方法

kubernetes的API对象的数据都保存在etcd中我们在实际环境中要管理ETCD需要使用ETCDCTL工具,所以我们需要下载相关工具下载地址是:https://github.com/etcd-io/etcd/releases目前最新版是3.5.4,我们下载解包,然后添加环境变量即可使用etcdctl工具wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gztar -zxvf etcd-v...

阅读全文

ETCD状态检查以及碎片压缩

在安装了etcd3.10版本之后,使用etcdctl和etcd交互时需要将api版本设置为3,默认,为了向后兼容etcdctl使用v2API来和etcd服务器通讯。为了让etcdctl使用v3API来和etcd通讯,API版本必须通过环境变量ETCDCTL_API设置为版本3export ETCDCTL_API=3查看ETCD版本方法etcd --version#返回etcd Version: 3.4.13Git SHA: ae9734ed2Go...

阅读全文