Citrix Application Delivery Management

Verwalten der Kubernetes Ingress-Konfiguration in Citrix ADM

Kubernetes (K8s) ist eine Open Source-Container-Orchestrierungsplattform, die die Bereitstellung, Skalierung und Verwaltung von Cloud-nativen Anwendungen automatisiert.

Kubernetes bietet die Ingress-Funktion, mit der Clientdatenverkehr außerhalb des Clusters auf Microservices einer Anwendung zugreifen kann, die innerhalb des Kubernetes-Clusters ausgeführt wird. ADC-Instanzen können als Ingress zu Anwendungen dienen, die in einem Kubernetes-Cluster ausgeführt werden. ADC-Instanzen können den Lastenausgleich durchführen und den Nord-Süd-Datenverkehr von den Clients zu allen Microservices innerhalb des Kubernetes-Clusters weiterleiten.

Hinweis

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

Sie können mehrere ADC-Instanzen so konfigurieren, dass sie als Ingress-Geräte auf demselben Cluster oder auf verschiedenen Clustern oder Namespaces fungieren. Nachdem Sie die Instanzen konfiguriert haben, können Sie jede Instanz basierend auf der Ingress-Richtlinie verschiedenen Anwendungen zuweisen.

Sie können eine Ingress-Konfiguration mit Kubernetes kubectl oder APIs erstellen und bereitstellen. Sie können auch einen Ingress von Citrix ADM aus konfigurieren und bereitstellen.

Sie können die folgenden Aspekte der Kubernetes-Integration in ADM angeben:

  • Cluster — Sie können Kubernetes-Cluster registrieren oder deren Registrierung aufheben, für die ADM Ingress-Konfigurationen bereitstellen kann. Wenn Sie einen Cluster in Citrix ADM registrieren, geben Sie die Kubernetes-API-Serverinformationen an. Wählen Sie dann einen ADM-Agenten aus, der den Kubernetes-Cluster erreichen und Ingress-Konfigurationen bereitstellen kann.

  • Richtlinien — Ingress-Richtlinien werden verwendet, um die ADC-Instanz basierend auf Cluster oder Namespace auszuwählen, um eine Ingress-Konfiguration bereitzustellen. Geben Sie die Cluster-, Site- und Instanzinformationen an, wenn Sie eine Richtlinie hinzufügen.

  • Ingress-Konfiguration — Diese Konfiguration ist die Kubernetes-Ingress-Konfiguration, die die Content Switching-Regeln und die entsprechenden URL-Pfade der Microservices und ihrer Ports enthält. Sie können auch die SSL/TLS-Zertifikate angeben (um die SSL-Verarbeitung auf der ADC-Instanz auszulagern) mithilfe geheimer Kubernetes-Ressourcen.

Citrix ADM ordnet die Ingress-Konfigurationen mithilfe von Ingress-Richtlinien automatisch ADC-Instanzen zu.

Für jede erfolgreiche Ingress-Konfiguration generiert Citrix ADM ein StyleBook 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 > Configurations.

Voraussetzungen

Um Citrix ADC-Instanzen als Ingress-Geräte in Kubernetes-Clustern zu verwenden, stellen Sie sicher, dass Sie Folgendes haben:

  • Kubernetes Cluster an Ort und Stelle.

  • Kubernetes-Cluster in Citrix ADM registriert.

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

Damit Citrix ADM Ereignisse von Kubernetes empfangen kann, müssen Sie ein Dienstkonto in Kubernetes für Citrix ADM erstellen. Konfigurieren Sie das Dienstkonto mit den erforderlichen RBAC-Berechtigungen im Cluster.

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

  2. Verwenden Sie diecluster-admin Rolle, um das Citrix ADM Dienstkonto zu binden. Diese Bindung gewährt einem Dienstkonto eine clusterübergreifende ClusterRole. Im Folgenden finden Sie einen Beispielbefehl zum Binden einer cluster-admin-Rolle an das Dienstkonto.

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    <!--NeedCopy-->
    

    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 erstellen clusterrolebinding] (https://kubernetes.io/docs/reference/access-authn-authz/rbac/#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 das Dienstkonto citrixadm-sa anzuzeigen:

    kubectl describe sa citrixadm-sa
    <!--NeedCopy-->
    
  4. Führen Sie den folgenden Befehl aus, um die geheime Zeichenfolge des Tokens abzurufen:

    kubectl describe secret <token-name>
    <!--NeedCopy-->
    

Fügen Sie den Kubernetes-Cluster in Citrix ADM hinzu

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

So registrieren Sie den Kubernetes-Cluster:

  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-Hauptknoten abrufen.

      1. Führen Sie auf dem Hauptknoten von Kubernetes den Befehl 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 die Authentifizierungstoken-Zeichenfolge an , die Sie erhalten, während Sie Citrix ADM für die Verwaltung eines Kubernetes Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen dem Kubernetes-Cluster und Citrix ADM zu überprüfen. So generieren Sie ein Authentifizierungstoken:

      1. Führen Sie auf dem Hauptknoten von Kubernetes die folgenden Befehle aus:

        kubectl describe secret <token-name>
        <!--NeedCopy-->
        
      2. Kopieren Sie das generierte Token und fügen Sie es als Authentifizierungstoken ein

        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

Definieren einer Ingress-Richtlinie

Die Ingress-Richtlinie entscheidet, welcher Citrix ADC zum Bereitstellen einer Ingress-Konfiguration verwendet wird, basierend auf dem Ingress-Cluster oder Namespace.

  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 für die Bereitstellung der Ingress-Konfiguration auf einem Kubernetes-Cluster. Diese Bedingungen basieren normalerweise auf Ingress-Cluster und Namespace.

    3. Im Infrastruktur-Panel

      • Standort — Wählen Sie eine Website aus der Liste aus.

      • Instanz — Wählen Sie die ADC-Instanz aus der Liste aus.

      Die Site - und Instanz-Listen füllen die Optionen basierend auf der Cluster-Auswahl im Bereich “ Bedingungen “ auf.

      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. Wählen Sie unter Netzwerkauswählen das Netzwerk aus, von dem ADM die virtuellen IP-Adressen automatisch einer Ingress-Konfiguration zuweist.

      In dieser Liste werden die in Infrastruktur > IPAMerstellten Netzwerke angezeigt.

    5. Klicken Sie auf Erstellen.

Stellen Sie die Ingress-Konfiguration bereit

Sie können die Ingress-Konfiguration über Kubernetes mithilfe der kubectlKubernetes-API oder anderer Tools bereitstellen. Sie können die Ingress-Konfiguration auch direkt von Citrix ADM aus bereitstellen.

  1. Navigieren Sie zu Orchestration > Kubernetes > Ingresses.

  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 in Clusterden Kubernetes-Cluster aus, auf dem Sie einen Ingress bereitstellen möchten.

    3. Wählen Sie den Cluster-Namespace aus der Liste aus. In diesem Feld werden die Namespaces aufgeführt, die im angegebenen Kubernetes-Cluster vorhanden sind.

    4. Wählen Sie optional Frontend-IP-Adresse automatisch zuweisen.

    5. Wählen Sie in der Liste Ingress Protocol aus. Wenn Sie HTTPSauswählen, geben Sie den TLS-Schlüssel an.

      Dieses Geheimnis bettet die geheime Kubernetes-Ressource ein, die das HTTPS-Zertifikat und den privaten Schlüssel einbettet.

      Ein HTTPS-Ingress erfordert ein TLS-basiertes Secret, das auf dem Kubernetes-Cluster konfiguriert ist. Geben Sie die Felder tls.crt und tls.key an, um das Serverzertifikat bzw. den Zertifikatsschlüssel aufzunehmen.

    6. Geben Sie für das Weiterleiten von Inhalten die folgenden Details an:

      • URL-Pfade — Geben Sie den Pfad an, der mit dem Kubernetes-Dienst und Port verknüpft ist.

      • Kubernetes-Dienst — Geben Sie den gewünschten Dienst an.

      • Port — Geben Sie den Dienst-Port an.

      • LB-Methode — Wählen Sie die bevorzugte Lastausgleichsmethode für den ausgewählten Kubernetes-Dienst aus.

        Bei der ausgewählten Methode wird die Ingress-Spezifikation mit einer entsprechenden Anmerkung aktualisiert. Wenn Sie beispielsweise die ROUNDROBIN-Methode auswählen, wird die Citrix Anmerkung wie folgt angezeigt:

         "lbmethod":"ROUNDROBIN"
         <!--NeedCopy-->
        
      • Persistenztyp — Wählen Sie den bevorzugten Persistenztyp für den Lastausgleich für den ausgewählten Kubernetes-Dienst aus.

        Der ausgewählte Persistenztyp aktualisiert die Ingress-Spezifikation mit einer entsprechenden Anmerkung. Wenn Sie beispielsweise COOKIEINSERTauswählen, wird die Citrix Anmerkung wie folgt angezeigt:

         "persistenceType":"COOKIEINSERT"
         <!--NeedCopy-->
        

      Klicken Sie auf Hinzufügen, um weitere URL-Pfade und Ports zur Ingress-Konfiguration hinzuzufügen.

      Regeln für das Inhaltsrouting hinzufügen

      Nach der Bereitstellung leitet die Ingress-Konfiguration den Clientdatenverkehr basierend auf den folgenden Angaben zu einem bestimmten Dienst um:

      • Der angeforderte URL-Pfad und Port.
      • Die definierte LB-Methode und der Persistenztyp.

      Hinweis:

      Es wird erwartet, dass die in einer Ingress-Konfiguration verwendeten Kubernetes-Dienste vom Typ NodePort sind.

    7. Geben Sie optional eine Ingress-Beschreibungan.

    8. klicken Sie auf Bereitstellen.

      Wenn Sie die Konfiguration vor der Bereitstellung überprüfen möchten, klicken Sie auf Ingress-Spezifikation generieren. Die angegebene Ingress-Konfiguration wird im YAML-Format angezeigt. Nachdem Sie die Konfiguration überprüft haben, klicken Sie auf Bereitstellen.

Hinweis Wenden Sie Lizenzen auf die virtuellen Server an, die mit Ingress-Konfigurationen erstellt wurden. Führen Sie die folgenden Schritte aus, um die Lizenz anzuwenden:

  1. Gehen Sie zu Einstellungen > Lizenzierung und Analytics-Konfiguration.
  2. Aktivieren Sie unter Virtueller Server-Lizenzübersichtdie Option Virtuelle Server automatisch auswählen.