Verbindung zu einem privaten K8S-Cluster: Es konnte kein PEM gefunden werden

Verbindung zu einem privaten K8S-Cluster: Es konnte kein PEM gefunden werden

Ich habe einen Kubernetes-Cluster, der in einer privaten Cloud ausgeführt wird. Ich möchte einige Befehle von einer anderen VM aus ausführen, erhalte jedoch Folgendes:

[root@runner-tmp ~]# kubectl get pods --kubeconfig local-cluster.yaml
error: tls: failed to find any PEM data in certificate input

Meine local-cluster.yaml:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://x.x.x.x:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    namespace: FSM
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

Haben Sie eine Idee, wo ich dieses PEM-Zertifikat angeben muss und wie ich es generieren kann?

Antwort1

Die Meldung error: tls: failed to find any PEM data in certificate inputwird angezeigt, wenn Sie die Ausgabe in eine Remote-VM kopieren kubectl config view.

Anstatt die Ausgabe in kubectl config viewIhre Remote-VM zu kopieren, sollten Sie die gesamte configDatei bereitstellen, die normalerweise in vorhanden ist $HOME/.kube/config.

Sie können dies tun, indem Sie scp root@<control-plane-host>:/etc/kubernetes/admin.conf .diese Datei ausführen und dann --kubeconfigbeispielsweise wie folgt bereitstellen:

kubectl --kubeconfig ./admin.conf get nodes

verwandte Informationen