
Я установил кластер kubernetes с помощью kubeadm, на самих серверах все нормально, главный и рабочий узел видны
--apiserver-cert-extra-sans=*.*.201.87
Я подключаюсь из другой сети с локального ПК, предварительно скопировав admin.conf в ~/.kube. Получаю ошибку
E0125 13:47:12.606617 794306 proxy_server.go:147] Error while proxying request: x509: cannot validate certificate for *.*.201.87 because it doesn't contain any IP SANs
мы попытались запросить сертификаты еще раз, но это не сработало
решение1
Если вы буквально используете *.*.201.87
, то это неправильно, и вам следует использовать правильный IP-адрес или DNS-имя.
Если в этом примере вы замаскировали фактический IP-адрес *
, проверьте сертификат, предоставленный во время установления связи TLS:
openssl s_client -connect <host>:<port>
# save cert in cert.pem
openssl x509 -text -noout -in cert.pem
Проверьте, какие записи перечислены в разделе X509v3 Subject Alternative Name
.
решение2
Ошибка, которую вы разместили
x509: cannot validate certificate for ..201.87 because it doesn't contain any IP SANs
указывает на то, что сертификат, представленный сервером API Kubernetes, не содержит необходимых IP-адресов SAN, соответствующих IP-адресу, который вы используете для доступа к кластеру.
Попробуйте повторно сгенерировать сертификаты для сервера Kubernetes API с соответствующими IP SAN. Вы можете использовать команду, kubeadm alpha phase certs all --apiserver-advertise-address=<your-IP\>
чтобы добиться этого. См. этосвязь
Убедитесь также, чтоКУБЕКОНФИГпеременная окружения правильно установлена на место вашегоadmin.confФайл. Этот файл должен содержать необходимые данные сертификата и ключа для аутентификации на сервере API Kubernetes.
решение3
в моем случае
export no_proxy=$no_proxy,11.62.201.87