Etcd 管理任务 ¶
etcd-manager ¶
etcd-manager 是一个 kubernetes-sigs 项目,kOps 使用它来管理 etcd。
它处理 etcd、TLS 和备份的优雅升级。如果 Kubernetes 集群需要更多冗余的控制平面,它还会负责调整 etcd 集群的大小。
备份 ¶
有关 kOps 上 etcd 的备份和恢复,请参见 etcd_backup_restore_encryption.md
直接数据访问 ¶
通常不需要使用 etcdctl 直接查看或操作 etcd 内部的數據,因为所有操作通常都通过 kubectl 命令进行。但是,它在故障排除期间或只是为了更好地理解 kubernetes 时可能会有用。以下是在 kOps 上完成此操作的步骤。
1. 确定正在运行的 etcd 版本
kops get cluster --full -o yaml
查看给定集群的 etcdCluster
配置的 version
。
2. 连接到 etcd-manager pod
CONTAINER=$(kubectl get pods -n kube-system | grep etcd-manager-main | head -n 1 | awk '{print $1}')
kubectl exec -it -n kube-system $CONTAINER -- sh
``
3. 运行 etcdctl
ETCD_VERSION=3.5.1
ETCDDIR=/opt/etcd-v$ETCD_VERSION-linux-amd64 # Replace with arm64 if you are running an arm control plane
CERTDIR=/rootfs/srv/kubernetes/kube-apiserver/
alias etcdctl="ETCDCTL_API=3 $ETCDDIR/etcdctl --cacert=$CERTDIR/etcd-ca.crt --cert=$CERTDIR/etcd-client.crt --key=$CERTDIR/etcd-client.key --endpoints=https://127.0.0.1:4001"
通过运行以下命令测试客户端
etcdctl member list
如果成功,这应该输出 etcd 集群的成员。