安装 etcd-client
1
|
$ sudo apt install -y etcd-client
|
得到元信息
利用 docker ps
找到 k8s 的 etcd 容器:
1
2
3
4
|
$ docker ps
...
72921b78c9c4 rancher/mirrored-coreos-etcd:v3.4.15-rancher1 "/usr/local/bin/etcd…" 19 months ago Up 5 months etcd
...
|
利用 docker inspect
观察这个容器的配置元信息:
1
2
3
4
5
6
7
8
9
10
11
12
|
$ docker inspect etcd
...
"Env": [
"ETCDCTL_API=3",
"ETCDCTL_CACERT=/etc/kubernetes/ssl/kube-ca.pem",
"ETCDCTL_CERT=/etc/kubernetes/ssl/kube-etcd-172-18-10-1.pem",
"ETCDCTL_KEY=/etc/kubernetes/ssl/kube-etcd-172-18-10-1-key.pem",
"ETCDCTL_ENDPOINTS=https://127.0.0.1:2379",
"ETCD_UNSUPPORTED_ARCH=x86_64",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
...
|
可以发现它使用的 V3 版本的 API,且告诉了你 CA 证书,证书,私钥的文件位置,以及端口。
命令模板
1
2
3
4
5
6
|
$ sudo ETCDCTL_API=3 etcdctl \
--endpoints 127.0.0.1:2379 \
--cacert <上面的 ETCDCTL_CACERT> \
--cert <上面的 ETCDCTL_CERT> \
--key <上面的 ETCDCTL_KEY> \
<etcd 命令>
|
常见命令
help:
1
2
|
$ ETCDCTL_API=3 etcdctl help
$ ETCDCTL_API=3 etcdctl <命令> -h
|
列出集群节点:
1
2
3
4
|
$ <模板> member list
1a51951451665d46, started, etcd-xxx, https://xxx:2380, https://xxx:2379
5611b18ab33e296b, started, etcd-yyy, https://yyy:2380, https://yyy:2379
c190e474054c0acf, started, etcd-zzz, https://zzz:2380, https://yyy:2379
|
列出所有 key:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ <模板> get --keys-only --prefix ""
/registry/apiextensions.k8s.io/customresourcedefinitions/nodedrivers.management.cattle.io
/registry/services/specs/cattle-system/rancher
/registry/services/specs/cattle-system/rancher-webhook
/registry/services/specs/default/kubernetes
/registry/services/specs/fleet-system/gitjob
...
|
得到某个 key 的值:
1
2
3
|
$ <模板> get <key>
...
|
V2 版本
如果是 V2 版本的 API,则是这样:
1
2
3
4
5
6
|
sudo etcdctl \
--endpoints http://127.0.0.1:2379 \
--ca-file <上面的 ETCDCTL_CACERT> \
--cert-file <上面的 ETCDCTL_CERT> \
--key-file <上面的 ETCDCTL_KEY> \
<etcd 命令>
|
评论