
Ich habe den Kubernetes-Cluster mit kubeadm installiert, auf den Servern selbst ist alles in Ordnung, der Master- und der Worker-Knoten sind sichtbar
--apiserver-cert-extra-sans=*.*.201.87
Ich stelle eine Verbindung von einem anderen Netzwerk von einem lokalen PC her, nachdem ich zuvor admin.conf nach ~/.kube kopiert habe. Ich erhalte eine Fehlermeldung
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
Wir haben versucht, erneut Zertifikate anzufordern, aber es funktioniert nicht
Antwort1
Wenn Sie wörtlich verwenden *.*.201.87
, ist dies falsch und Sie sollten eine richtige IP-Adresse oder einen richtigen DNS-Namen verwenden.
Wenn Sie *
in diesem Beispiel die tatsächliche IP-Adresse maskiert haben, überprüfen Sie das während des TLS-Handshakes bereitgestellte Zertifikat:
openssl s_client -connect <host>:<port>
# save cert in cert.pem
openssl x509 -text -noout -in cert.pem
Prüfen Sie, welche Einträge unter aufgeführt sind X509v3 Subject Alternative Name
.
Antwort2
Der Fehler, den Sie gepostet haben
x509: cannot validate certificate for ..201.87 because it doesn't contain any IP SANs
zeigt an, dass das vom Kubernetes-API-Server vorgelegte Zertifikat nicht die erforderlichen IP-SANs enthält, um mit der IP-Adresse übereinzustimmen, die Sie für den Zugriff auf den Cluster verwenden.
Versuchen Sie, die Zertifikate für den Kubernetes-API-Server mit den entsprechenden IP-SANs neu zu generieren. Sie können kubeadm alpha phase certs all --apiserver-advertise-address=<your-IP\>
dazu den Befehl verwenden. Siehe diesVerknüpfung
Stellen Sie außerdem sicher, dass dieKUBECONFIGdie Umgebungsvariable ist korrekt auf den Speicherort IhresDatei admin.confDatei. Diese Datei sollte das erforderliche Zertifikat und die Schlüsseldaten zur Authentifizierung beim Kubernetes-API-Server enthalten.
Antwort3
in meinem Fall
export no_proxy=$no_proxy,11.62.201.87