web-dev-qa-db-ja.com

etcdでkubernetesキーにアクセスする方法

質問

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 /キーがエンドポイントのようです。

8
mon

通常、自分で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
16
Nickolay

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

6
vdboor

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を使用しました。

0
Attila123