Ein SAN (Subject Alternative Name) ist eine Funktion von SSL-Zertifikaten, mit der Sie die Domainnamen und Subdomains definieren können, die durch ein Zertifikat geschützt werden. In einem Google Distributed Cloud-Cluster umfassen die Standard-SANs für das Kubernetes API-Serverzertifikat die IP- und VIP-Adressen der Steuerungsebenenknoten und die Kubernetes-DNS-Namen. Mit der Funktion „Zusätzliche SANs für benutzerdefinierte API-Serverzertifikate“ können Sie dem Kubernetes API-Serverzertifikat für den Cluster zusätzliche Domains, Subdomains und IP-Adressen als SANs hinzufügen.
Wenn Sie benutzerdefinierte SANs für das API-Serverzertifikat angeben möchten, verwenden Sie das Feld controlPlane.apiServerCertExtraSANs
in der Clusterkonfigurationsspezifikation. Dieses Feld nimmt eine Liste von Domainnamen und IP-Adressen auf. Dieses Feld ist optional und kann geändert werden. Sie können dieses Feld beim Erstellen eines Clusters oder jederzeit danach hinzufügen und aktualisieren.
...
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 während der Clustererstellung hinzufügen
Wenn Sie beim Erstellen eines Clusters zusätzliche SANs hinzufügen, enthält das Zertifikat des Kubernetes API-Servers die zusätzlich angegebenen Domains und IP-Adressen, sobald der Cluster verfügbar ist.
Domains für einen vorhandenen Cluster hinzufügen oder aktualisieren
Da das Feld apiServerCertExtraSANs
veränderbar ist, können Sie es bei vorhandenen Clustern jederzeit hinzufügen oder aktualisieren. Wenn Sie das Feld apiServerCertExtraSANs
im Cluster ändern, werden die folgenden Aktivitäten ausgelöst:
Die Clustercontroller von Google Distributed Cloud generieren das API-Serverzertifikat neu, um die geänderten zusätzlichen Domains aufzunehmen.
Die Clustercontroller starten den API-Server neu, um das neue Zertifikat neu zu laden.
Die neuen Werte von
apiServerCertExtraSANs
werden von einem Webhook überprüft, um sicherzustellen, dass sie den RFC 1035-Domainnamenkonventionen entsprechen.Der Knotenpool der Steuerungsebene befindet sich im 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: Reconciling
Der Knotenpool ist bereit, nachdem die Änderung auf die Kubernetes API-Server auf jedem Knoten der Steuerungsebene übertragen 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 „Zusätzliche SANs“ des API-Serverzertifikats in einem laufenden Cluster aktualisieren, kann es zu Ausfallzeiten kommen:
In Hochverfügbarkeitsclustern (HA) werden API-Serverinstanzen nacheinander neu gestartet. Während des Zertifikatsupdates können Sie 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 diese Antwort angezeigt wird, wiederholen Sie die Anfrage.
Bei Nicht-HA-Clustern kann es zu einer kurzen Unterbrechung von etwa einer Minute kommen, während ein API-Server neu gestartet wird, um das neue Zertifikat neu zu laden.
Die Änderung wird je nach Anzahl der Steuerungsebenenknoten im Cluster und der Auslastung des Clusters in 5 bis 20 Minuten auf alle API-Server übertragen.