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.
-
Erstellen Sie ein Dienstkonto für Citrix ADM. Beispielsweise kann der Name des Dienstkontos sein
citrixadm-sa
. Informationen zum Erstellen eines Dienstkontos finden Sie unter Verwenden mehrerer Dienstkonten. -
Verwenden Sie die
cluster-admin
Rolle, um das Citrix ADM Dienstkonto zu binden. Diese Bindung gewährt einem Dienstkonto eine clusterübergreifendeClusterRole
. 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 die
cluster-admin
Rolle gebunden wurde, verfügt das Dienstkonto über den clusterweiten Zugriff. Weitere Informationen finden Sie unter [kubectl
erstellenclusterrolebinding
] (https://kubernetes.io/docs/reference/access-authn-authz/rbac/#kubectl-create-clusterrolebinding). -
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-->
-
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:
-
Melden Sie sich mit Administratoranmeldeinformationen bei Citrix ADM an.
-
Navigieren Sie zu Orchestration > Kubernetes > Cluster. Die Seite “Cluster” wird angezeigt.
-
Klicken Sie auf Hinzufügen.
-
Geben Sie auf der Seite Cluster hinzufügen die folgenden Parameter an:
-
Name - Geben Sie einen Namen Ihrer Wahl an.
-
API Server URL - Sie können die API-Server-URL-Details vom Kubernetes-Hauptknoten abrufen.
-
Führen Sie auf dem Hauptknoten von Kubernetes den Befehl aus
kubectl cluster-info
. -
Geben Sie die URL ein, die für Kubernetes master is running at angezeigt wird.
-
-
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:
-
Führen Sie auf dem Hauptknoten von Kubernetes die folgenden Befehle aus:
kubectl describe secret <token-name> <!--NeedCopy-->
-
Kopieren Sie das generierte Token und fügen Sie es als Authentifizierungstoken ein
Weitere Informationen finden Sie in der Kubernetes-Dokumentation.
-
-
Wählen Sie den Agenten aus der Liste aus.
-
Klicken Sie auf Erstellen.
-
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.
-
Navigieren Sie zu Orchestrierung > Kubernetes > Richtlinie.
-
Klicken Sie auf Hinzufügen, um eine Richtlinie zu erstellen.
-
Geben Sie den Richtliniennamen an.
-
Definieren Sie Bedingungen für die Bereitstellung der Ingress-Konfiguration auf einem Kubernetes-Cluster. Diese Bedingungen basieren normalerweise auf Ingress-Cluster und Namespace.
-
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.
-
-
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.
-
Klicken Sie auf Erstellen.
-
Stellen Sie die Ingress-Konfiguration bereit
Sie können die Ingress-Konfiguration über Kubernetes mithilfe der kubectl
Kubernetes-API oder anderer Tools bereitstellen. Sie können die Ingress-Konfiguration auch direkt von Citrix ADM aus bereitstellen.
-
Navigieren Sie zu Orchestration > Kubernetes > Ingresses.
-
Klicken Sie auf Hinzufügen.
-
Geben Sie im Feld Ingress erstellen die folgenden Details an:
-
Geben Sie den Namen des Ingress an.
-
Wählen Sie in Clusterden Kubernetes-Cluster aus, auf dem Sie einen Ingress bereitstellen möchten.
-
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.
-
Wählen Sie optional Frontend-IP-Adresse automatisch zuweisen.
-
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
undtls.key
an, um das Serverzertifikat bzw. den Zertifikatsschlüssel aufzunehmen. -
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.
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.
-
-
Geben Sie optional eine Ingress-Beschreibungan.
-
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:
- Gehen Sie zu Einstellungen > Lizenzierung und Analytics-Konfiguration.
- Aktivieren Sie unter Virtueller Server-Lizenzübersichtdie Option Virtuelle Server automatisch auswählen.