In diesem Beispiel finden Sie Informationen zur Bereitstellung eines TKGS-Clusters mit einem oder mehreren vollqualifizierten Domänennamen (FQDN).
Unterstützung für FQDN
Sie können die v1beta1-API verwenden, um einen TKG-Cluster mit einem vollqualifizierten Domänennamen (FQDN) bereitzustellen. Die v1beta1-API des Clusters enthält eine Variable mit dem Namen kubeAPIServerFQDNs
und mindestens einer FQDN-Zeichenfolge, die im TLS-Zertifikat für den Kubernetes-API-Server erzeugt werden muss.
Wenn der Befehl kubectl vsphere login
für einen Cluster mit konfiguriertem FQDN ausgegeben wird, wählt der Authentifizierungsdienst den ersten FQDN-Eintrag in der Liste aus und fügt ihn der kubeconfig-Datei als bevorzugte Option für die Interaktion mit dem Cluster hinzu. Es wird davon ausgegangen, dass der erste FQDN in der Liste aufgelöst werden kann. Änderungen an der Clusteranmeldung sind nicht erforderlich.
Das erzeugte Kubernetes-API-Zertifikat enthält alle FQDNs, die Sie in der Variable kubeAPIServerFQDNs
angegeben haben. Das System verwendet nur den ersten FQDN in der Liste. Das System versucht nicht, den FQDN aufzulösen. Wenn Sie einen anderen FQDN in der Liste verwenden möchten, können Sie die erzeugte kubeconfig-Datei manuell bearbeiten und den gewünschten FQDN hinzufügen.
Anforderungen an den FQDN
Die Verwendung eines FQDN ist optional. Wenn Sie keinen FQDN verwenden, hat dies keine Auswirkungen auf die Funktionen. Die hier beschriebenen Funktionen sind für TKG-Arbeitslastcluster spezifisch. Informationen zur Verwendung eines FQDN mit Supervisor finden Sie in diesem Thema in der Dokumentation zu Supervisor.
- Umgebungen mit vSphere 8.0 U2 P03 und höher
- Supervisor wurde auf die aktuelle Patch-Version aktualisiert
- Nur v1beta1-API-Cluster werden unterstützt. v1alpha3-API-Cluster werden nicht unterstützt
- DNS ist zur Auflösung des ausgewählten FQDN in eine gültige IP-Adresse konfiguriert
FQDN-Beispiel
Verwenden Sie die v1beta1-API des Clusters, um einen Cluster mit einem FQDN zu erstellen.
Das Feld spec.topology.variables.kupeAPIServerFQDNs
ist ein Array von FQDNs.
demo.fqdn.com
lautet.
#cluster-example-fqdn.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: tkg-cluster-fqdn namespace: tkg-ns spec: clusterNetwork: services: cidrBlocks: ["198.52.100.0/12"] pods: cidrBlocks: ["192.101.2.0/16"] serviceDomain: "cluster.local" topology: class: tanzukubernetescluster version: v1.26.5+vmware.2-fips.1-tkg.1 controlPlane: replicas: 3 workers: machineDeployments: - class: node-pool name: node-pool-01 replicas: 3 variables: - name: vmClass value: guaranteed-medium - name: storageClass value: tkgs-storage-class - name: defaultStorageClass value: tkg-storage-class - name: kubeAPIServerFQDNs value: - demo.fqdn.com - explore.fqdn.com
FQDN-Überprüfung
kubeconfig
enthalten ist und dass sich alle FQDNs in der Variablenliste im TLS-Zertifikat für den Kubernetes-API-Server befinden.
- Melden Sie sich über Kubectl beim TKG-Cluster an.
kubectl vsphere login --server=SVCP IP or FQDN --vsphere-username USERNAME --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace VSPHERE-NS
- So zeigen Sie den FQDN in der Datei
kubeconfig
an.cat ~/.kube/config
- Stellen Sie sicher, dass die erste FQDN-Variable in der Liste in der Datei
kubeconfig
enthalten ist.Beispiel:apiVersion: v1 clusters: - cluster: insecure-skip-tls-verify: false server: https://10.199.155.77:6443 name: 10.199.155.77 - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJ...DQWRLZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXc ... CkdiL1pua09rOVVjT3BwSStCTE9ZZDR0RGd2eHo...QUp0SUUKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= server: https://demo.fqdn.com:6443 name: demo.fqdn.com
- Rufen Sie mithilfe des vSphere Client die IP-Adresse für den TKGS-Cluster unter ab.
- Erstellen Sie einen manuellen DNS-Eintrag in der lokalen
/etc/hosts
-Datei mit der IP-Adresse und dem FQDN.Beispiel:sudo vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 ubuntu-client-vm 10.199.155.77 demo.fqdn.com ...
- Verwenden Sie den Befehl
openssl s_client
, um das TLS-Zertifikat anzuzeigen.echo | openssl s_client -servername hostname -connect FQDN:PORT 2>/dev/null | openssl x509 -text
Hierbei ist
FQDN
der erste FQDN in der VariablenlistekubeAPIServerFQDNs
.Beispiel:echo | openssl s_client -servername hostname -connect demo.fqdn.com:6443 2>/dev/null | openssl x509 -text
- Im Feld
Subject Alternative Name
sind alle FQDNs enthalten.X509v3 Subject Alternative Name: DNS:demo.fqdn.com, DNS:explore.fqdn.com, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.def
Da das TLS-Zertifikat für den Kubernetes-API-Server alle FQDNs in der Liste
kubeAPIServerFQDNs
enthält, können Sie die Dateikubeconfig
manuell aktualisieren, um den zweiten (oder dritten usw.) FQDN in der Liste zu verwenden. Diese Vorgehensweise funktioniert unter der Voraussetzung, dass der FQDN aufgelöst werden kann.