ZBLOG

k8s集群,kubeadm部署的etcd,手工选择Leader

如果您使用 kubeadm 部署了 etcd,在 Kubernetes 集群中手动选择 etcd Leader 的步骤与先前描述的步骤略有不同。下面是手动选择 etcd Leader 的步骤:

  1. 确定当前的 etcd Leader:您可以使用 kubectl 命令和一个特殊的 Pod,称为 etcd-leader-0,来查看当前的 Leader 节点。首先,您需要获取 Pod 的名称:
kubectl get pods -n kube-system | grep etcd-leader

该命令将输出类似于以下内容的行:

etcd-leader-0                        1/1     Running   0          6d
  1. 获取当前的 Leader IP 地址:通过运行以下命令,您可以获取当前 Leader 的 IP 地址:
kubectl exec -n kube-system etcd-leader-0 -- sh -c "ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt endpoint status" | grep "is leader"

该命令将输出类似于以下内容的行:

fcf74043f88248a7 is leader

其中 fcf74043f88248a7 是当前 etcd Leader 节点的 ID。

  1. 暂停当前的 Leader:在手动更改 etcd Leader 之前,您需要暂停当前的 Leader。此步骤可能因您要执行的任务而异。

  2. 更改 etcd 配置:在更改 etcd Leader 之前,您需要更改 etcd 的配置以指定新的 Leader 节点。在 Kubernetes 中,etcd 配置存储在 ConfigMap 中,并称为 etcd-config。您可以使用以下命令获取该 ConfigMap:

kubectl get cm -n kube-system etcd-config -o yaml
  1. 更新 ConfigMap:在 ConfigMap 中,找到名为 initial-cluster-state 的行,并将其值更改为 existing。然后查找名为 initial-cluster 的行并将其更新为包含所有 etcd 节点的列表,其中新的 Leader 节点在第一个位置。例如:
initial-cluster: etcd-0=https://10.240.0.2:2380,etcd-1=https://10.240.0.3:2380,etcd-2=https://10.240.0.4:2380
  1. 保存更改:使用以下命令将更新后的 ConfigMap 保存回 Kubernetes 中:
kubectl apply -f <updated-etcd-config.yaml>
  1. 手动选择新的 Leader:现在您可以手动选择新的 etcd Leader。首先,您需要使用 kubectl 命令和新的 Leader IP 地址启动一个新的 Pod。例如:
kubectl run --rm -it --restart=Never --image=quay.io/coreos/etcd:v3.3.13 etcd-manager \
-- /bin/sh -c "ETCDCTL_API=3 etcdctl --endpoints=https://<new-leader-ip>:2379 \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt elect <new-leader-name>"

其中,<new-leader-ip> 是您要选择的新 Leader 节点的 IP 地址,<new-leader-name> 是您选择的新 Leader 的名称。

  1. 恢复 Kubernetes 集群:一旦您手动更改了 etcd Leader,您应该再次启动之前暂停的服务,并确保所有组件都正在正常运行。

请注意,手动更改 etcd Leader 可能会破坏您的 Kubernetes 集群状态,并导致不可预测的行为。因此,这种方法应该只在必要时使用,并且应该谨慎使用。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2463

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?