Недопустимый сертификат x509 для Kubernetes master
Я пытаюсь связаться с моим мастером k8s с моей рабочей станции. Я могу получить доступ к мастеру из локальной сети, но не с моей рабочей станции. Сообщение об ошибке:
% 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
Как я могу добавить 114.215.201.87 в сертификат? Нужно ли удалять старый кластерный центр сертификации.crt, воссоздать его, перезапустить весь кластер, а затем отказаться от сертификата клиента? Я развернул свой кластер с kubeadm, и я не уверен, как сделать эти шаги вручную.
3 ответов
один из вариантов-сказать kubectl
что вы не хотите, чтобы сертификат был проверен. Очевидно, это вызывает проблемы безопасности, но я думаю, что вы только тестируете, поэтому здесь вы идете:
kubectl --insecure-skip-tls-verify --context=employee-context get pods
лучший вариант-исправить сертификат. Проще всего, если вы повторно инициализируете кластер, запустив kubeadm reset
на всех узлах, включая master, а затем do
kubeadm init --apiserver-cert-extra-sans=114.215.201.87
также можно исправить этот сертификат, не вытирая все, но это немного сложнее. Выполнять что-то вроде этого на мастере как корень:
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
эта команда для новых 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
также было бы лучше добавить dns-имя в --apiserver-cert-extra-sans
для избежания таких проблем в следующий раз.
причина проблема: Ваши конфигурации в $HOME/.kube / присутствуют с вашим старым IP-адресом.
попробуйте запустить,
rm $HOME/.kube/* -rf
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config