web-dev-qa-db-fra.com

Certificat x509 non valide pour le maître kubernetes

J'essaie d'atteindre mon maître K8 depuis mon poste de travail. Je peux accéder au maître à partir du réseau local, mais pas à partir de mon poste de travail. Le message d'erreur est:

% kubectl --context=employee-context get pods
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.161.233.80, not 114.215.201.87

Comment puis-je ajouter 114.215.201.87 au certificat? Dois-je supprimer mon ancien cluster ca.crt, le recréer, redémarrer tout le cluster, puis renoncer au certificat client? J'ai déployé mon cluster avec kubeadm et je ne suis pas sûr de savoir comment effectuer ces étapes manuellement.

13
user1208081

Une option consiste à indiquer à kubectl que vous ne souhaitez pas que le certificat soit validé. Évidemment, cela soulève des problèmes de sécurité, mais je suppose que vous ne faites que tester, alors voilà:

kubectl --insecure-skip-tls-verify --context=employee-context get pods

La meilleure option consiste à réparer le certificat. Le plus simple est de réinitialiser le cluster en exécutant kubeadm reset sur tous les nœuds, y compris le maître, puis

kubeadm init --apiserver-cert-extra-sans=114.215.201.87

Il est également possible de réparer ce certificat sans tout effacer, mais c'est un peu plus compliqué. Exécutez quelque chose comme ceci sur le maître en tant que root:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs selfsign --apiserver-advertise-address=0.0.0.0 --cert-altnames=10.161.233.80 --cert-altnames=114.215.201.87
docker rm `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
22
Janos Lenart

Cette commande pour les nouveaux kubernetes> = 1.8:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=10.161.233.80,114.215.201.87
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet

Il serait également préférable d’ajouter le nom DNS dans --apiserver-cert-extra-sans afin d’éviter de tels problèmes à l’avenir.

14
kvaps

Cause du problème: Vos configurations à $ HOME/.kube/sont présentes avec votre ancienne adresse IP.

Essayez de courir,

rm $HOME/.kube/* -rf
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
4
Sarath kumar S

Pour kubeadm v1.13.3

rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=114.215.201.87
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
0
Marcin Król

Pour Kubernetes 1.12.2/CentOS 7.4, la séquence est la suivante:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=51.158.75.136
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
0
zjor

Utilisez la commande suivante: 

kubeadm init phase certs all
0
KlSoft