Conexión a un clúster k8s privado: no se pudo encontrar ningún PEM

Conexión a un clúster k8s privado: no se pudo encontrar ningún PEM

Tengo un clúster de Kubernetes que se ejecuta en una nube privada. Quiero ejecutar algunos comandos desde otra VM pero recibo esto:

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

Mi cluster-local.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

¿Tiene alguna idea de dónde debo especificar este certificado PEM y cómo puedo generarlo?

Respuesta1

El mensaje error: tls: failed to find any PEM data in certificate inputaparece cuando copia la salida de kubectl config viewuna máquina virtual remota.

Entonces, en lugar de copiar el resultado kubectl config viewa su máquina virtual remota, debe proporcionar configel archivo completo que generalmente está presente en formato $HOME/.kube/config.

Puede hacerlo ejecutando scp root@<control-plane-host>:/etc/kubernetes/admin.conf .y luego proporcionando este archivo como --kubeconfig, por ejemplo:

kubectl --kubeconfig ./admin.conf get nodes

información relacionada