我硬着头皮做了一个定制的 Kubernetes 安装,并成功地将它安装在 Hyper V 的一个 2 节点集群上(1 个主 1 个工人),一切正常,但是这件事让我摸不着头脑,我想知道是否有人可以给我关于它为什么发生的洞察力。
etcdctl --help
Run Code Online (Sandbox Code Playgroud)
给了我 etcd v2 版本的帮助,它还给了我以下警告。
警告:环境变量 ETCDCTL_API 未设置;默认为 etcdctl v2。设置环境变量 ETCDCTL_API=3 以使用 v3 API 或 ETCDCTL_API=2 以使用 v2 API。
如果我设置环境变量并再次运行命令,它会被忽略:
ETCDCTL_API=3
etcdctl --help
Run Code Online (Sandbox Code Playgroud)
但如果我这样做
ETCDCTL_API=3 etcdctl --help
Run Code Online (Sandbox Code Playgroud)
然后它给了我 etcd v3 版本的帮助,我还需要将 ETCDCTL_API=3 放在 etcdctl snapshot save 前面,以便将其识别为有效命令。
ETCDCTL_API=3 etcdctl snapshot save ~/etcd.backup \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/etcd/ca.pem \
--cert=/etc/etcd/kubernetes.pem \
--key=/etc/etcd/kubernetes-key.pem
Run Code Online (Sandbox Code Playgroud)
为什么是这样?