AnyShare-AnyShare 7.0.3.2 升级 7.0.3.3 修改容器的 peer-url 时报错 cat:/var/lib/etcd/data/member_id:No such fil
关键字
member_id、peer
适用产品
- AnyShare Enterprise 7.0.x.x
- AnyShare Express 7.0.x.x
问题描
在执行命令:etcdctl --cacert=/var/etcd/client/ca.crt --cert=/var/etcd/client/peer.crt --key=/var/etcd/client/peer.key member update$(cat "$ETCD_DATA_DIR/member_id") --peer-urls="https://${HOSTNAME}.proton-etcd-headless.resource.svc.cluster.local:2380" 时报错:
cat:/var/lib/etcd/data/member_id:No such file or directory
Error:member ID is not provided

问题影响
更新 peer-url 发值失败,导致后面的 pod 起不来,不能正常运行相关服务,影响服务正常功能。
问题原因
之前的升级中漏掉了步骤或 member_id 被删除。
解决方案
1.在宿主机上输入:
kubectl exec -it -n resource proton-etcd-0 bash -- etcdctl --cacert=/var/etcd/client/ca.crt --cert=/var/etcd/client/peer.crt --key=/var/etcd/client/peer.key member list -wtable

2.进入容器
kubectl exec -it -n resource proton-etcd-0 bash

3.进入目录
cd /var/lib/etcd/data

4.将步骤一中的 ID 输入到 member_id 中
echo "ff100cf8046f22af" > member_id
cat member_id

5.更改文件属组
chown 1001:1001 member_id
ls -l

6.再执行
etcdctl --cacert=/var/etcd/client/ca.crt --cert=/var/etcd/client/peer.crt --key=/var/etcd/client/peer.key member update $(cat "$ETCD_DATA_DIR/member_id") --peer-urls="https://${HOSTNAME}.proton-etcd-headless.resource.svc.cluster.local:2380"

更多信息
client certificate 用于通过服务器验证客户端。例如 etcdctl,etcd proxy,fleetctl 或 docker 客户端。
server certificate 由服务器使用,并由客户端验证服务器身份。例如 docker 服务器或 kube-apiserver。
peer certificate 由 etcd 集群成员使用,供它们彼此之间通信使用。