Verwalten der Kubernetes Ingress-Konfiguration in Citrix ADM

Kubernetes (K8s) ist eine Open-Source-Container-Orchestrierungs-Engine, mit der Sie die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisieren können.

Kubernetes verwendet die Ingress-Funktion, über die der Client-Datenverkehr auf die Microservices einer Anwendung zugreift. Die Citrix ADC Instanzen können als Ingress für die Anwendungen fungieren, die in einem Kubernetes-Cluster ausgeführt werden. Die Citrix ADC Instanzen werden zu Load Balancer und Proxy für den (Nord-Süd) Datenverkehr von den Clients zu den Microservices innerhalb des Kubernetes-Clusters. Und die Instanzen aktualisieren Sie die Endpunkte für die Microservices, sobald sie sich in der Kubernetes-Umgebung ändern.

Hinweis

  • Citrix ADM unterstützt die Ingress-Funktion in den Clustern mit Kubernetes-Version 1.14.
  • Citrix ADM unterstützt Citrix ADC VPX- und MPX-Appliances als Ingress-Geräte.
  • In der Kubernetes-Umgebung gleicht die Citrix ADC Instanz nur den Diensttyp NodePort aus.

Sie können mehrere ADC-Instanzen so konfigurieren, dass sie als Ingress fungieren, und jeden ADC basierend auf der Ingress-Richtlinie verschiedenen Anwendungen zuweisen. Geben Sie Folgendes an, um eine Ingress-Konfiguration bereitzustellen:

  • Cluster — Ein Kubernetes-Cluster, in dem Sie eine Ingress-Konfiguration bereitstellen möchten. Geben Sie beim Hinzufügen eines Clusters in Citrix ADM die Kubernetes-API-Serverinformationen an. Wählen Sie einen Agenten aus, von dem Sie die Ingress-Konfigurationen verwalten möchten.

  • Richtlinien — Die Richtlinien entscheiden, dass die ADC-Instanz, der Cluster und der Namespace eine Ingress-Konfiguration bereitstellen. Geben Sie die Cluster-, Standort- und Instanzinformationen an, um eine Richtlinie hinzuzufügen.

  • Eingangskonfiguration — Diese Konfiguration umfasst die Regeln für den Inhaltswechsel und die entsprechenden URL-Pfade der Microservices und ihrer Ports. Sie können die SSL/TLS-Zertifikate auch mithilfe eines Kubernetes-Geheimnisses angeben, um HTTPS-Datenverkehr auf der ADC-Instanz zu entlasten.

Citrix ADM ordnet automatisch die Ingress-Konfigurationen und ADC-Instanzen zu. Citrix ADM wählt die ADC-Instanz aus und hostet je nach den angegebenen Ingress-Richtlinien eine Ingress-Konfiguration.

Für jede erfolgreiche Ingress-Konfiguration generiert Citrix ADM ein StyleBooks ConfigPack. Das ConfigPack stellt die ADC-Konfiguration dar, die auf die ADC-Instanz angewendet wird, die der Ingress-Konfiguration entspricht. Um das Configpack anzuzeigen, navigieren Sie zu Anwendungen > StyleBooks > Konfigurationen.

Bevor Sie beginnen

Um Citrix ADC Instanzen auf dem Kubernetes-Cluster zu orchestrieren, stellen Sie sicher, dass Sie Folgendes haben:

  • Kubernetes-Cluster.

  • Citrix ADM-Agent installiert und konfiguriert, um die Kommunikation zwischen Citrix ADM und Kubernetes-Cluster oder verwalteten Instances in Ihrem Rechenzentrum oder in der Cloud zu ermöglichen.

  • Der Kubernetes-Cluster wurde auf Citrix ADM hinzugefügt.

Konfigurieren des Citrix ADM Agenten für die Registrierung beim Kubernetes-Cluster

Um die Kommunikation zwischen Kubernetes-Cluster und Citrix ADM zu aktivieren, müssen Sie einen Citrix ADM-Agent installieren und konfigurieren. Sie können einen Agenten wie folgt konfigurieren:

  • Hypervisor

  • Öffentliche Clouddienste (z. B. Microsoft Azure, AWS)

  • Integrierter Agent auf Citrix ADC Instances verfügbar (ideal für HA-Bereitstellungen).

Befolgen Sie die Prozedur, um einen Agenten zu konfigurieren.

Hinweis

Sie können auch einen vorhandenen Agenten verwenden.

Konfigurieren Sie Citrix ADM mit einem geheimen Token für die Verwaltung eines Kubernetes-Clusters

Der Kubernetes-Adapter dient zur Verwaltung der Ingress-Konfiguration für einen Kubernetes-Cluster. Dieser Adapter erfordert einen clusterweiten Zugriff auf die Kubernetes-API. Fügen Sie dazu ein Dienstkonto für Citrix ADM hinzu, und konfigurieren Sie das Dienstkonto mit den erforderlichen RBAC-Berechtigungen.

  1. Erstellen Sie ein Dienstkonto für Citrix ADM. Beispielsweise kann der Name des Dienstkontos seincitrixadm-sa. Informationen zum Erstellen eines Dienstkontos finden Sie unterMehrere Dienstkonten verwenden.

  2. Verwenden Sie diecluster-admin Rolle, um das Citrix ADM Dienstkonto zu binden. Durch diese Bindung wird einem Dienstkonto einClusterRole über den Cluster hinweg gewährt. Im Folgenden finden Sie einen Beispielbefehl zum Binden einercluster-admin Rolle an das Dienstkonto.

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    

    Nachdem das Citrix ADM Dienstkonto an diecluster-admin Rolle gebunden wurde, verfügt das Dienstkonto über den clusterweiten Zugriff. Weitere Informationen finden Sie unter kubectl create clusterrolebinding.

  3. Beziehen Sie das Token aus dem erstellten Dienstkonto.

    Führen Sie beispielsweise den folgenden Befehl aus, um das Token für dascitrixadm-sa Dienstkonto anzuzeigen:

    kubectl describe sa citrixadm-sa
    
  4. Führen Sie den folgenden Befehl aus, um die geheime Zeichenfolge des Tokens zu erhalten:

    kubectl describe secret <token-name>
    

Hinzufügen des Kubernetes-Clusters in Citrix ADM

Nachdem Sie einen Citrix ADM Agent konfiguriert und statische Routen konfiguriert haben, müssen Sie den Kubernetes-Cluster in Citrix ADM hinzufügen.

So fügen Sie den Kubernetes-Cluster hinzu:

  1. Melden Sie sich mit Administratoranmeldeinformationen bei Citrix ADM an.

  2. Navigieren Sie zu Orchestration > Kubernetes > Cluster. Die Seite Cluster wird angezeigt.

  3. Klicken Sie auf Hinzufügen.

  4. Geben Sie auf der Seite Cluster hinzufügen die folgenden Parameter an:

    1. Name - Geben Sie einen Namen Ihrer Wahl an.

    2. API-Server-URL - Sie können die API-Server-URL-Details vom Kubernetes-Master-Knoten abrufen.

      1. Führen Sie den Befehl auf dem Kubernetes-Master-Knoten aus kubectl cluster-info.

        API-Server-URL

      2. Geben Sie die URL ein, die für Kubernetes master is running at angezeigt wird.

    3. Authentifizierungstoken - Geben Sie das Authentifizierungstoken an. Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen dem Kubernetes-Cluster und Citrix ADM zu validieren. So generieren Sie ein Authentifizierungstoken:

      1. Führen Sie auf dem Kubernetes-Master-Knoten die folgenden Befehle aus:

        kubectl get secrets | grep ^default

        kubectl describe secret <SECRET_NAME>

        Hinweis

        Sie können auch RBAC-Rollen- und Dienstkonto-YAMLs für Ihren Kubernetes-Cluster erstellen und ein Authentifizierungstoken für den Admin-Benutzer erstellen.

      2. Kopieren Sie das erzeugte Token.

        Weitere Informationen finden Sie in der Kubernetes-Dokumentation.

    4. Wählen Sie den Agenten aus der Liste aus.

    5. Klicken Sie auf Erstellen.

      Cluster hinzufügen

      Sie können die Ingress-Konfiguration bereitstellen, nachdem Sie die automatisch ausgewählten virtuellen Server für die Lizenzierung aktiviert haben.

Definieren einer Ingress-Richtlinie

Die Ingress-Richtlinie entscheidet, dass die Kubernetes-Cluster- und VPX-Instanzen die Ingress-Konfiguration bereitstellen. Definieren Sie die Bedingungen in der Ingress-Richtlinie und geben Sie die Infrastrukturdetails an, um die Richtlinie auszuführen.

  1. Navigieren Sie zu Orchestrierung > Kubernetes > Richtlinie.

  2. Klicken Sie auf Hinzufügen, um eine Richtlinie zu erstellen.

    1. Geben Sie den Richtliniennamen an.

    2. Definieren Sie Bedingungen, um die Ingress-Konfiguration auf einem Kubernetes-Cluster bereitzustellen.

    3. In der Infrastruktur-Panel,

      • Site - Wählen Sie eine Website aus der Liste aus.

      • Instanz - Wählen Sie eine Instanz aus der Liste aus.

      In den Listen Site und Instance werden die Optionen basierend auf der Clusterauswahl im Bedienfeld Bedingungen aufgefüllt.

      In diesen Listen werden die Sites oder Instanzen angezeigt, die mit dem Citrix ADM Agent verknüpft sind, der mit dem Kubernetes-Cluster konfiguriert ist.

    4. Klicken Sie auf Erstellen.

Bereitstellen der Ingress-Konfiguration

Geben Sie die Details an, die für die Bereitstellung einer Ingress-Konfiguration erforderlich sind.

  1. Navigieren Sie zu Orchestration > Kubernetes > Ingress.

  2. Klicken Sie auf Hinzufügen.

  3. Geben Sie im Feld Ingress erstellen die folgenden Details an:

    1. Geben Sie den Namen des Ingress an.

    2. Wählen Sie unter Clusterden Kubernetes-Cluster aus, auf dem Sie einen Ingress bereitstellen möchten.

    3. Wählen Sie den Cluster-Namespace aus der Liste aus. Dieses Feld listet die Namespaces auf, die im angegebenen Kubernetes-Cluster vorhanden sind.

    4. Geben Sie im Feld Frontend-IP-Adresse die virtuelle IP-Adresse des Ingress-Geräts an.

    5. Wenn Sie den HTTPS-Datenverkehr im Kubernetes-Cluster verwalten möchten:

      1. Wählen Sie im Feld TLS aktivieren die Option Ja aus.

      2. Wählen Sie im Feld TLS-Schlüssel die geheimen Informationen aus der Liste aus.

      Ein HTTPS Ingress erfordert einen TLS-basierten geheimen, der auf dem Kubernetes-Cluster konfiguriert ist. Geben Sie dietls.crt Feldertls.key und an, die das Serverzertifikat bzw. den Zertifikatschlüssel enthalten sollen.

    6. Geben Sie die URL-Pfade und den Kubernetes-Dienst und -Ports an. Klicken Sie auf Hinzufügen, um weitere URL-Pfade und -Ports zur Ingress-Konfiguration hinzuzufügen.

      Nach der Bereitstellung leitet die Ingress-Konfiguration den Clientdatenverkehr an die spezifischen Dienste weiter, wenn die definierten URL-Pfade angefordert werden.

    7. Geben Sie optional eine Beschreibung des Eingangs an, und klicken Sie auf Bereitstellen.

      Wenn Sie die Konfiguration vor der Bereitstellung überprüfen möchten, klicken Sie auf Ingress Spec generieren. Die angegebene Ingress-Konfiguration wird im YAML-Format angezeigt. Klicken Sie nach der Überprüfung der Konfiguration auf Bereitstellen.