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 input
wird angezeigt, wenn Sie die Ausgabe in eine Remote-VM kopieren kubectl config view
.
Anstatt die Ausgabe in kubectl config view
Ihre Remote-VM zu kopieren, sollten Sie die gesamte config
Datei 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 --kubeconfig
beispielsweise wie folgt bereitstellen:
kubectl --kubeconfig ./admin.conf get nodes