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 cloudnativer Anwendungen automatisiert.

Kubernetes bietet die Ingress-Funktion, mit der Clientverkehr außerhalb des Clusters auf Microservices einer Anwendung zugreifen kann, die innerhalb des Kubernetes-Clusters ausgeführt wird. ADC-Instanzen können als Ingress für Anwendungen fungieren, die in einem Kubernetes-Cluster ausgeführt werden. ADC-Instanzen können Lastenausgleich und Content den Nord-Süd-Datenverkehr von den Clients an alle Microservices innerhalb des Kubernetes-Clusters weiterleiten.

Hinweis

  • Citrix ADM unterstützt die Ingress-Funktion auf den Clustern mit Kubernetes Version 1.14 und höher.
  • 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 auf der Grundlage der Ingress-Richtlinie verschiedenen Anwendungen zuweisen.

Sie können eine Ingress-Konfiguration mit Kubernetes kubectloder APIs erstellen und bereitstellen. Sie können auch ein Ingress von Citrix ADM konfigurieren und bereitstellen.

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

  • Cluster — Sie können Kubernetes-Cluster registrieren oder die Registrierung aufheben, für die ADM Ingress-Konfigurationen bereitstellen kann. Wenn Sie einen Cluster in Citrix ADM registrieren, geben Sie die Informationen zum Kubernetes API-Server an. Wählen Sie dann einen ADM-Agent 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 beim Hinzufügen einer Richtlinie die Cluster-, Standort- und Instanzinformationen an.

  • 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 zu verlagern), indem Sie geheime Kubernetes-Ressourcen verwenden.

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. 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
    <!--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 dascitrixadm-sa Dienstkonto anzuzeigen:

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

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

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 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 verwendet wird, um eine Ingress-Konfiguration bereitzustellen, 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, um die Ingress-Konfiguration auf einem Kubernetes-Cluster bereitzustellen. Diese Bedingungen basieren in der Regel auf Ingress Cluster und Namespace.

    3. In der Infrastruktur-Panel,

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

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

      In den Listen Site und Instanz 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. 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 Netzwerke angezeigt, die unter Netzwerke > IPAMerstellt wurden.

    5. Klicken Sie auf Erstellen.

Bereitstellen der Ingress-Konfiguration

Sie können die Ingress-Konfiguration von Kubernetes mithilfe von Kubernetes kubectl, Kubernetes API oder anderen Tools bereitstellen. Sie können die Ingress-Konfiguration auch direkt von Citrix ADM aus bereitstellen.

  1. Navigieren Sie zu Orchestrierung > 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 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. Optional: Wählen Sie Frontend-IP-Adresse automatisch zuweisen.

    5. Wählen Sie in der Liste die Option Eindringprotokoll aus. Wenn Sie HTTPSauswählen, geben Sie TLS-Schlüsselan.

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

      Ein HTTPS-Ingress erfordert einen TLS-basierten Schlüssel, 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 für das Content-Routing die folgenden Details an:

      • URL-Pfade - Geben Sie den Pfad an, der dem Kubernetes-Dienst und Port zugeordnet ist.

      • Kubernetes Service - Geben Sie den gewünschten Service an.

      • Port - Geben Sie den Dienstport an.

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

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

         "lbmethod":"ROUNDROBIN"
         <!--NeedCopy-->
        
      • Persistenz-Typ - Wählen Sie den bevorzugten Load-Balancing-Persistenztyp 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 Annotation wie folgt angezeigt:

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

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

      Content-Routing-Regeln hinzufügen

      Nach der Bereitstellung leitet die Ingress-Konfiguration den Clientverkehr auf einen bestimmten Dienst basierend auf den folgenden Informationen um:

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

      Hinweis:

      Kubernetes Services, die in einer Ingress-Konfiguration verwendet werden, müssen vom Typ NodePort sein.

    7. Optional, geben Sie eine Ingress-Beschreibungan.

    8. Klicken Sie auf Bereitstellen.

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

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

  1. Wechseln Sie zu System > Lizenzierung und Analyse.
  2. Aktivieren Sie unter Virtueller Server-Lizenzübersichtdie Option Virtuelle Server automatisch auswählen.