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 input
aparece cuando copia la salida de kubectl config view
una máquina virtual remota.
Entonces, en lugar de copiar el resultado kubectl config view
a su máquina virtual remota, debe proporcionar config
el 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