Etcd新增节点(开启SSL证书验证情况下)

介绍

目前使用Etcd作为自建配置中心的数据存储,现需要在新机器上增加新的节点但之前集群使用自签证书,peer证书的host限定了使用机器IP,没办法复用到新机器直接使用,所以需要重新制作证书。

执行思路

经研究,无需替换旧机器节点的证书文件,只需使用相同ca,在新机器上重新制作一份peer证书给新节点即可使用。对于新机器新节点,只需复用之前ca信息(ca.pem,caconfig.json,ca-key.pem),在新机器上指定hosts,为新机器制作peer证书即可。

ETCD集群创建,证书生成可看下文,这里只记录新加节点

ETCD集群部署,启用SSL模式,自建证书

新增节点

复制ca.pem、ca-key.pem、ca-config.json到新机器,创建peer-csr.json,设置hosts为新机器IP、之前机器IP执行命令生成peer.pemcfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer peer-csr.json | cfssljson -bare peer

peer-csr.json

{
  "CN":"etcd-peer",
  "hosts":[
    "ip"
  ],
  "key":{
    "algo":"rsa",
    "size":4096
  },
  "names":[
    {
      "C":"CN",
      "L":"Beijing",
      "O":"ETCD",
      "OU":"Base",
      "ST":"Beijing"
    }
  ]
}

加入集群&启动节点

# 查看集群状态
etcdctl --endpoints=““ --user= --password= member list --write-out=table
# 删除节点,当新加节点失败时,及时剔除节点
etcdctl --endpoints=““ --user= --password= member remove memberId
# 加入节点 learner=true很有必要,learner不参与选举可以避免新节点异常,导致新加入节点扰乱集群选举
 etcdctl --endpoints=““ --user= --password= member add node-name --peer-urls=url --learner=true
 # 升级节点为选举节点 当新加入节点启动正常后,可以执行该命令,该节点会在同步到同一数据高度后自动升级到flower节点
 etcdctl -- endpoints="" --user= --password= member promote memberId

启动节点参数和创建一样,将 cluster-state=new改为existing即可

注:启动后新节点可能出现auth相关操作提示 etcdserver: invalid auth token之类的错误,经测试重启节点可以解决

全部评论

相关推荐

08-07 12:06
门头沟学院 Java
点赞 评论 收藏
分享
07-18 13:49
门头沟学院 Java
26小林不会梦到感谢...:这个点还在面暑期嘛不是马上开秋招了
点赞 评论 收藏
分享
DKS233:项目写太简单了,你用什么技术实现了什么功能,优化了多少,分了哪些模块,解决了哪些难点,最好分模块写,你写的太模糊了。精通还是少用吧,你确定问你底层你扛的住吗,最好用熟悉。具备良好**意识,这种空话不要写,技能层面,要写就写实在的,比如“熟悉常用数据结构,如,堆,栈,链表,哈希表,平衡树”这种
你的简历改到第几版了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务