Fehler beim Verbinden mit einem externen Kubernetes-Cluster

Fehler beim Verbinden mit einem externen Kubernetes-Cluster

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

verwandte Informationen