Mit benutzerdefinierten Subject Alternative Names (SANs) können Sie die Abdeckung des API-Serverzertifikats auf zusätzliche Domains, Subdomains und IP-Adressen erweitern. In einem Google Distributed Cloud-Cluster enthalten die Standard-SANs nur die IP- und VIP-Adressen von Knoten der Steuerungsebene und Standard-Kubernetes-DNS-Namen. Sie können benutzerdefinierte SANs mit dem änderbaren Feld controlPlane.apiServerCertExtraSANs in Ihrer Clusterkonfigurationsdatei konfigurieren, entweder während der Clustererstellung oder jederzeit danach.
Domains bei der Clustererstellung hinzufügen
Wenn Sie beim Erstellen eines Clusters zusätzliche SANs hinzufügen, enthält das Kubernetes API-Serverzertifikat die zusätzlichen angegebenen Domains und IP-Adressen, wenn der Cluster verfügbar wird.
Das folgende Beispiel zeigt das Feld apiServerCertExtraSANs in einer Clusterkonfigurationsdatei:
...
kind: Cluster
metadata:
name: sample001
namespace: cluster-sample001
spec:
type: user
...
controlPlane:
apiServerCertExtraSANs:
- "demo-dns.example.com"
- "sample-dns.com"
nodePoolSpec:
nodes:
- address: 10.200.0.20
clusterNetwork:
...
Domains für einen vorhandenen Cluster hinzufügen oder aktualisieren
Da das Feld apiServerCertExtraSANs änderbar ist, können Sie es jederzeit für vorhandene Cluster hinzufügen oder aktualisieren. Wenn Sie das Feld apiServerCertExtraSANs im Cluster ändern, werden die folgenden Aktivitäten ausgelöst:
Die Google Distributed Cloud-Cluster-Controller generieren das API-Serverzertifikat neu, um die geänderten zusätzlichen Domains einzuschließen.
Die Cluster-Controller starten den API-Server neu, um das neue Zertifikat zu laden.
Die neuen Werte von
apiServerCertExtraSANswerden von einem Webhook überprüft, um sicherzustellen, dass sie den RFC 1035-Domainnamenkonventionen entsprechen.Der Knotenpool der Steuerungsebene wechselt in den Abgleichstatus.
Control Plane Node Pool Status: Anthos Bare Metal Version: 1.28.0-gke.435 Anthos Bare Metal Versions: 1.28.0-gke.435: 3 Conditions: ... Last Transition Time: 2023-11-15T18:23:49Z Observed Generation: 1 Reason: Reconciling Status: True Type: ReconcilingDer Knotenpool ist bereit, nachdem die Änderung an die Kubernetes API-Server auf jedem Knoten der Steuerungsebene weitergegeben wurde.
Control Plane Node Pool Status: Anthos Bare Metal Version: 1.28.0-gke.435 Anthos Bare Metal Versions: 1.28.0-gke.435: 3 Conditions: . . . Last Transition Time: 2023-11-15T18:32:25Z Observed Generation: 1 Reason: ReconciliationCompleted Status: False Type: Reconciling
Wenn Sie das Feld „extra SANs“ des API-Serverzertifikats in einem laufenden Cluster aktualisieren, kann es zu Ausfallzeiten kommen:
In Hochverfügbarkeitsclustern werden API-Serverinstanzen nacheinander neu gestartet. Sie können während der Zertifikatsaktualisierung weiterhin mit dem Cluster interagieren, da der Load Balancer Anfragen an jeden API-Server verteilt. Möglicherweise wird jedoch eine Antwort angezeigt, die darauf hinweist, dass der API-Server heruntergefahren wird. Wenn Sie diese Antwort erhalten, wiederholen Sie die Anfrage.
In Clustern ohne Hochverfügbarkeit kann es zu einem kurzen Ausfall von etwa einer Minute kommen, während ein API-Server neu gestartet wird, um das neue Zertifikat zu laden.
Es dauert 5–20 Minuten, bis die Änderung auf alle API-Server übertragen wird. Dies hängt von der Anzahl der Knoten der Steuerungsebene im Cluster und der Last des Clusters ab.