添加新的etcd成员时遇到麻烦

时间:2019-05-20 14:32:12

标签: etcd

我打算将新成员添加到etcd的单个实例中,但是遇到了问题。

我使用以下命令启动了第一个etcd成员:

nohup etcd \
  --advertise-client-urls=https://192.168.22.34:2379 \
  --cert-file=/etc/kubernetes/pki/etcd/server.crt \
  --client-cert-auth=true \
  --data-dir=/var/lib/etcd \
  --initial-advertise-peer-urls=https://192.168.22.34:2380 \
  --initial-cluster=test-master-01=https://192.168.22.34:2380 \
  --key-file=/etc/kubernetes/pki/etcd/server.key \
  --listen-client-urls=https://0.0.0.0:2379 \
  --listen-peer-urls=https://192.168.22.34:2380 \
  --name=test-master-01 \
  --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt \
  --peer-client-cert-auth=true \
  --peer-key-file=/etc/kubernetes/pki/etcd/peer.key \
  --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt \
  --snapshot-count=10000 \
  --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt &

然后,我检查了群集的运行状况,发现运行状况良好:

member f13d668ae0cba84 is healthy: got healthy result from https://192.168.22.34:2379
cluster is healthy  

我还检查了成员:

f13d668ae0cba84: name=test-master-01 peerURLs=http://192.168.22.34:2380 clientURLs=https://192.168.22.34:2379 isLeader=true

然后我尝试添加第二个成员:

etcdctl \
  --endpoints=https://127.0.0.1:2379 \
  --ca-file=/etc/kubernetes/pki/etcd/ca.crt \
  --cert-file=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
  --key-file=/etc/kubernetes/pki/etcd/healthcheck-client.key \
  member add test-master-02 https://192.168.22.37:2380

Added member named test-master-02 with ID 65bec874cca265d8 to cluster ETCD_NAME="test-master-02"
ETCD_INITIAL_CLUSTER="test-master-01=http://192.168.22.34:2380,test-master-02=https://192.168.22.37:2380"
ETCD_INITIAL_CLUSTER_STATE="existing"

然后使用以下命令启动第二个etcd成员:

etcd \
  --name test-master-02 \
  --listen-client-urls https://192.168.22.37:2379 \
  --advertise-client-urls https://192.168.22.37:2379 \
  --listen-peer-urls https://192.168.22.37:2380 \
  --cert-file=/etc/kubernetes/pki/etcd/server.crt \
  --client-cert-auth=true \
  --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt \
  --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt \
  --peer-client-cert-auth=true \
  --peer-key-file=/etc/kubernetes/pki/etcd/peer.key \
  --key-file=/etc/kubernetes/pki/etcd/server.key \
  --initial-cluster-state=existing \
  --initial-cluster=test-master-01=https://192.168.22.34:2380,test-master-02=https://192.168.22.37:2380

但是我得到一个错误:

etcdmain: error validating peerURLs {ClusterID:bc8c76911939f2de Members:[&{ID:f13d668ae0cba84 RaftAttributes:{PeerURLs:[http://192.168.22.34:2380]} Attributes:{Name:test-master-01 ClientURLs:[https://192.168.22.34:2379]}} &{ID:65bec874cca265d8 RaftAttributes:{PeerURLs:[https://192.168.22.37:2380]} Attributes:{Name: ClientURLs:[]}}] RemovedMemberIDs:[]}: unmatched member while checking PeerURLs

更新 从头启动群集而不从快照还原时,我似乎没有这种问题。

1 个答案:

答案 0 :(得分:0)

发现在添加新成员之前,我需要更新我的主要etcd成员,因为代替listd配置,成员列表命令在peerurl上返回了127.0.0.1