Etcdctl

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

etcdctl2 is an alias for the etcdctl tool that contains the proper flags to query the etcd cluster in v2 data model, as well as, etcdctl3 for v3 data model:

etcdctl -v
etcdctl version: 3.2.7
API version: 2
etcdctl2 -v
etcdctl version: 3.2.7
API version: 2

Commands

cluster-health

From the node that runs etcd, as root:

etcdctl --endpoints https://master1.openshift35.local:2379,https://master2.openshift35.local:2379,https://master3.openshift35.local:2379 \
 --ca-file /etc/origin/master/master.etcd-ca.crt \
 --cert-file /etc/origin/master/master.etcd-client.crt \
 --key-file /etc/origin/master/master.etcd-client.key \
 cluster-health


Note that -C, --peers is deprecated:

etcdctl -C https://master1.openshift35.local:2379,https://master2.openshift35.local:2379,https://master3.openshift35.local:2379 \
 --ca-file /etc/origin/master/master.etcd-ca.crt \
 --cert-file /etc/origin/master/master.etcd-client.crt \
 --key-file /etc/origin/master/master.etcd-client.key \
 cluster-health

Output sample:

member 6f4cee0c78fff8fd is healthy: got healthy result from https://172.23.0.4:2379
member a423b0b54377c79f is healthy: got healthy result from https://172.23.0.6:2379
member b5a071be696c6070 is healthy: got healthy result from https://172.23.0.5:2379

In case an error message similar to

error #0: x509: certificate is valid for master1, not master1.local

is generate, adjust the host names accordingly. As in "https://master:2379" instead of master.ocp36.local.

member

list

etcdctl -C https://master1.openshift35.local:2379,https://master2.openshift35.local:2379,https://master3.openshift35.local:2379 \
 --ca-file /etc/origin/master/master.etcd-ca.crt \
 --cert-file /etc/origin/master/master.etcd-client.crt \
 --key-file /etc/origin/master/master.etcd-client.key \
member list

Output sample:

6f4cee0c78fff8fd: name=master1.openshift35.local peerURLs=https://172.23.0.4:2380 clientURLs=https://172.23.0.4:2379 isLeader=true
a423b0b54377c79f: name=master3.openshift35.local peerURLs=https://172.23.0.6:2380 clientURLs=https://172.23.0.6:2379 isLeader=false
b5a071be696c6070: name=master2.openshift35.local peerURLs=https://172.23.0.5:2380 clientURLs=https://172.23.0.5:2379 isLeader=false

All etcd hosts should contain the master host name if the etcd cluster is co-located with master services, or all etcd instances should be visible if etcd is running separately.