У меня есть кластер Kubernetes, работающий в частном облаке. Я хочу запустить некоторые команды из другой виртуальной машины, но получаю это:
[root@runner-tmp ~]# kubectl get pods --kubeconfig local-cluster.yaml
error: tls: failed to find any PEM data in certificate input
Мой 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
Есть ли у вас какие-либо идеи, где мне следует указать этот сертификат PEM и как его сгенерировать?
решение1
Сообщение error: tls: failed to find any PEM data in certificate input
появляется при копировании вывода kubectl config view
на удаленную виртуальную машину.
Поэтому вместо копирования выходных данных kubectl config view
на удаленную виртуальную машину вам следует предоставить весь config
файл, который обычно присутствует в $HOME/.kube/config
.
Это можно сделать, запустив scp root@<control-plane-host>:/etc/kubernetes/admin.conf .
и указав этот файл --kubeconfig
, например:
kubectl --kubeconfig ./admin.conf get nodes