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之类的错误,经测试重启节点可以解决

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务