EtcdからKubernetes関連キーを取得する方法は? etcdのキーを一覧表示しようとしましたが、関連するキーを表示できませんでした。また、etcdctlはどこにインストールされていますか?
$ etcdctl
bash: etcdctl: command not found..
$ Sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 386/etcd
tcp 0 0 127.0.0.1:2380 0.0.0.0:* LISTEN 386/etcd
$ curl -s http://localhost:2379/v2/keys | python -m json.tool
{
"action": "get",
"node": {
"dir": true
}
}
Kubernetes 1.8.5をインストールしました。 kubeadmを使用してCentOS 7でクラスター を作成しました。 etcd 、v2 /キーがエンドポイントのようです。
通常、自分でetcdctl
を取得する必要があります。 etcdリリースページ から最新のetcdctl
アーカイブをダウンロードするだけです。
また、Kubernetesバージョン1.6以降ではetcdバージョン3を使用するため、すべてのキーのリストを取得するには次のようにします。
ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 get / --prefix --keys-only
すべてのetcdctl v3
を使用したアクション:
ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 --help
[〜#〜] edit [〜#〜](@leodotcloudに感謝):
ETCDがTLS証明書サポートで構成されている場合:
ETCDCTL_API=3 etcdctl --endpoints <etcd_ip>:2379 --cacert <ca_cert_path> --cert <cert_path> --key <cert_key_path> get / --prefix --keys-only
Dockerコンテナーにアクセスし、次のコマンドを実行します。
ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key get / --prefix --keys-only
CoreOS(Container Linux)にインストールされたetcdでetcdctlを使用する必要がありました。私の場合、以下が機能しました(CoreOSシェルプロンプトから実行):
$ Sudo ETCDCTL_API=3 etcdctl --cacert /etc/ssl/etcd/etcd/peer-ca.crt --cert /etc/ssl/etcd/etcd/peer.crt --key /etc/ssl/etcd/etcd/peer.key get --prefix / --keys-only
「エラー:open /etc/ssl/etcd/etcd/peer.crt:許可が拒否されました」という許可の問題に対する簡単な解決策として、Sudo
を使用しました。