Conexão com um cluster k8s privado: falha ao encontrar nenhum PEM

Conexão com um cluster k8s privado: falha ao encontrar nenhum PEM

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 inputaparece quando você copia a saída kubectl config viewpara uma VM remota.

Portanto, em vez de copiar a saída kubectl config viewpara sua VM remota, você deve fornecer configo 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

informação relacionada