web-dev-qa-db-fra.com

Comment accéder aux clés Kubernetes dans etcd

Question

Comment obtenir les clés liées à Kubernetes depuis etcd? J'ai essayé de répertorier les clés dans etcd mais je n'ai pas pu voir les clés associées. Où est également installé 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
    }
}

Contexte

Installé Kubernetes 1.8.5 en suivant tilisation de kubeadm pour créer un cluster sur CentOS 7. Quand j'ai regardé Pour commencer avec etcd , v2/keys semble être le point final.

8
mon

En général, vous devez obtenir etcdctl par vous-même. Téléchargez simplement la dernière archive etcdctl depuis page des versions etcd .

De plus, à partir de Kubernetes version 1.6, il utilise etcd version 3, donc pour obtenir une liste de toutes les clés, c'est:

ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 get / --prefix --keys-only

Vous pouvez trouver tous les etcdctl v3 actions utilisant:

ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 --help

[~ # ~] éditez [~ # ~] (merci à @leodotcloud):

Dans le cas où ETCD est configuré avec la prise en charge des certificats 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

Accédez au conteneur Docker et exécutez la commande suivante:

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

J'avais besoin d'utiliser etcdctl avec etcd installé sur CoreOS (Container Linux). Dans mon cas, les éléments suivants ont fonctionné (exécutés à partir de CoreOS Shell Prompt):

$ 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

J'ai utilisé Sudo comme solution rapide au problème d'autorisation "Erreur: ouvrez /etc/ssl/etcd/etcd/peer.crt: autorisation refusée".

0
Attila123