Eu tenho um cluster Kubernetes que está sendo executado em uma nuvem privada. Quero executar alguns comandos de outra VM, mas recebo isto:
[root@runner-tmp ~]# kubectl get pods --kubeconfig local-cluster.yaml
error: tls: failed to find any PEM data in certificate input
Meu 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
Você tem alguma ideia de onde devo especificar este certificado PEM e como posso gerá-lo?
Responder1
A mensagem error: tls: failed to find any PEM data in certificate input
aparece quando você copia a saída kubectl config view
para uma VM remota.
Portanto, em vez de copiar a saída kubectl config view
para sua VM remota, você deve fornecer config
o arquivo inteiro que geralmente está presente em $HOME/.kube/config
.
Você pode fazer isso executando scp root@<control-plane-host>:/etc/kubernetes/admin.conf .
e fornecendo este arquivo como --kubeconfig
, por exemplo:
kubectl --kubeconfig ./admin.conf get nodes