mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
kubeadm: check whether the peer URL for the added etcd member already exists when the MemberAddAsLearner/MemberAdd fails
This commit is contained in:
parent
c75e833026
commit
f22fd52e91
@ -421,7 +421,6 @@ func (c *Client) addMember(name string, peerAddrs string, isLearner bool) ([]Mem
|
||||
var (
|
||||
lastError error
|
||||
respMembers []*etcdserverpb.Member
|
||||
learnerID uint64
|
||||
resp *clientv3.MemberAddResponse
|
||||
)
|
||||
err = wait.PollUntilContextTimeout(context.Background(), constants.EtcdAPICallRetryInterval, constants.EtcdAPICallTimeout,
|
||||
@ -429,21 +428,12 @@ func (c *Client) addMember(name string, peerAddrs string, isLearner bool) ([]Mem
|
||||
ctx, cancel := context.WithTimeout(context.Background(), etcdTimeout)
|
||||
defer cancel()
|
||||
if isLearner {
|
||||
// if learnerID is set, it means the etcd member is already added successfully.
|
||||
if learnerID == 0 {
|
||||
klog.V(1).Info("[etcd] Adding etcd member as learner")
|
||||
resp, err = cli.MemberAddAsLearner(ctx, []string{peerAddrs})
|
||||
if err != nil {
|
||||
lastError = err
|
||||
return false, nil
|
||||
}
|
||||
learnerID = resp.Member.ID
|
||||
}
|
||||
respMembers = resp.Members
|
||||
return true, nil
|
||||
klog.V(1).Infof("[etcd] Adding etcd member %q as learner", peerAddrs)
|
||||
resp, err = cli.MemberAddAsLearner(ctx, []string{peerAddrs})
|
||||
} else {
|
||||
klog.V(1).Infof("[etcd] Adding etcd member %q", peerAddrs)
|
||||
resp, err = cli.MemberAdd(ctx, []string{peerAddrs})
|
||||
}
|
||||
|
||||
resp, err = cli.MemberAdd(ctx, []string{peerAddrs})
|
||||
if err == nil {
|
||||
respMembers = resp.Members
|
||||
return true, nil
|
||||
|
Loading…
Reference in New Issue
Block a user