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.

Beachten Sie die folgenden Anforderungen für die Bereitstellung eines TKG-Clusters mit einem FQDN.
  • 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
Wichtig: Die FQDN-Funktion ist nur verfügbar, wenn Sie die v1beta1-API zur Bereitstellung eines CAPI-Clusters verwenden. Sie können keine TKC unter Verwendung der v1alpha3-API mit einem FQDN bereitstellen.

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.

Das System wählt den ersten FQDN in der Liste aus, der in diesem Beispiel auf 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

Führen Sie das folgende Verfahren aus, um sicherzustellen, dass der erste FQDN in der Variablenliste in der Datei kubeconfig enthalten ist und dass sich alle FQDNs in der Variablenliste im TLS-Zertifikat für den Kubernetes-API-Server befinden.
  1. 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
  2. So zeigen Sie den FQDN in der Datei kubeconfig an.
    cat ~/.kube/config
  3. 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
    
  4. Rufen Sie mithilfe des vSphere Client die IP-Adresse für den TKGS-Cluster unter Arbeitslastverwaltung > Namespace > Berechnen > Tanzu Kubernetes-Cluster > Adresse der Steuerungsebene ab.
  5. 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
    ...
  6. 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 Variablenliste kubeAPIServerFQDNs.

    Beispiel:
    echo | openssl s_client -servername hostname -connect demo.fqdn.com:6443 2>/dev/null | openssl x509 -text
  7. 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 Datei kubeconfig 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.