标签: etcd2

为什么我需要将 ETCDCTL_API=3 放在 etcdctl 前面才能使 etcdctl 快照保存工作?

我硬着头皮做了一个定制的 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)

为什么是这样?

environment-variables etcd kubernetes etcd3 etcd2

5
推荐指数
1
解决办法
4833
查看次数

标签 统计

environment-variables ×1

etcd ×1

etcd2 ×1

etcd3 ×1

kubernetes ×1