Application Delivery Management

Verwalten der Kubernetes Ingress-Konfiguration in NetScaler 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

  • NetScaler ADM unterstützt die Ingress-Funktion auf den Clustern mit Kubernetes Version 1.14—1.21.
  • NetScaler ADM unterstützt NetScaler VPX- und MPX-Appliances als Ingress-Geräte.
  • In der Kubernetes-Umgebung gleicht die NetScaler-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 NetScaler 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 NetScaler 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.

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

Für jede erfolgreiche Ingress-Konfiguration generiert NetScaler 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 NetScaler-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 NetScaler ADM registriert.

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

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

  1. Erstellen Sie ein Dienstkonto für NetScaler 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 NetScaler 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 NetScaler 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 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 NetScaler ADM hinzu

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

So registrieren Sie den Kubernetes-Cluster:

  1. Melden Sie sich mit Administratoranmeldeinformationen bei NetScaler 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 kubectl cluster-info aus.

        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 NetScaler ADM für die Verwaltung eines Kubernetes Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen dem Kubernetes-Cluster und NetScaler 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 Agent aus der Liste aus.

    5. Klicken Sie auf Erstellen.

      Cluster hinzufügen

Definieren einer Ingress-Richtlinie

Die Ingress-Richtlinie entscheidet, welcher NetScaler 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 NetScaler 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 NetScaler 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.
Verwalten der Kubernetes Ingress-Konfiguration in NetScaler ADM