Citrix Application Delivery Management-Service

Detaillierte Verfahren zum Einrichten der Service-Mesh-Topologie

Die Voraussetzungen für die Bereitstellung der Service-Mesh-Topologie finden Sie unter Dienstdiagramm einrichten.

Konfigurieren des Citrix ADM -Agents

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 mit einem Hypervisor, öffentlichen Cloud-Services (wie Microsoft Azure, AWS) oder einem integrierten Agenten konfigurieren, der auf Citrix ADC-Instanzen verfügbar ist (ideal für HA-Bereitstellungen).

Befolgen Sie die Prozedur, um einen Agenten zu konfigurieren.

Hinweis

  • Sie können auch einen vorhandenen Agenten verwenden.

  • Die Citrix ADM -Agents werden standardmäßig automatisch auf den neuesten Citrix ADM Build aktualisiert. Sie können die Agentendetails auf der Seite Netzwerke > Agents anzeigen. Sie können auch angeben, wann die Agent-Upgrades durchgeführt werden sollen. Weitere Informationen finden Sie unter Konfigurieren der Agent-Upgradeeinstellungen.

Konfigurieren statischer Routen im Citrix ADM Agent

Innerhalb des Kubernetes-Clusters verwenden alle containerisierten Pods ein Overlay-Netzwerk. Eine direkte Kommunikation über diese privaten IP-Adressen ist nicht möglich. Um die Kommunikation von Citrix ADM zum Kubernetes-Cluster zu aktivieren, müssen Sie das statische Routing in Citrix ADM Agent konfigurieren.

Beachten Sie, dass Sie die folgenden IP-Adressen für Ihren Kubernetes-Cluster haben:

  • Kubernetes-Meister — 101.xx.xx.112

  • Kubernetes Arbeiter 1 — 101.xx.xx.111

  • Kubernetes Arbeiter 2 — 101.xx.xx.110

Führen Sie auf dem Kubernetes-Master den folgenden Befehl aus, um das Pod-Netzwerk für das statische Routing zu identifizieren:

kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"

Der folgende Code ist eine Beispielausgabe nach dem Ausführen des Befehls:

Beispiel (Befehl)

Nach erfolgreicher Konfiguration eines Citrix ADM Agenten:

  1. Melden Sie sich mit einem SSH-Client an Citrix ADM Agent an

  2. Tippe shell und drücke die Eingabetaste, um zu bash

  3. Konfigurieren Sie das statische Routing mit dem Befehlroute add -net <public IP address range> <Kubernetes IP address>

    Beispiel:

    route add -net 192.168.0.0/24 101.xx.xx.112

    route add -net 192.168.1.0/24 101.xx.xx.111

    route add -net 192.168.2.0/24 101.xx.xx.110

  4. Überprüfen Sie die Konfiguration mithilfenetstat -rnvon

    statisches Routing

  5. Hängen Sie diese Routenbefehle in der /mpsconfig/svm.confDatei an.

    1. Greifen Sie im Citrix ADM-Agent mit dem folgenden Befehl auf die Datei svm.conf zu:

      vim /mpsconfig/svm.conf

    2. Fügen Sie die statischen Routen in der Datei svm.conf hinzu.

      Beispiel: route add -net 192.168.0.0/24 101.xx.xx.112.

Konfigurieren Sie die erforderlichen Parameter

Im Kubernetes-Meister:

  1. Erstellen Sie ein Geheimnis mit ADM Agent-Anmeldeinformationen in jedem Namespace, in dem CPX als Ingress-Gateway/Sidecar bereitgestellt wird.

    kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n <namespace>

  2. helm repo add citrix https://citrix.github.io/citrix-helm-charts/

  3. Bereitstellen des Citrix ADC CPX als Ingress Gateway

    helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace <namespace> --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=XX:00:X1:00:XX:0X:X0,ADMSettings.ADMIP=<xx.xx.xx.xx>, ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30

    In der folgenden Tabelle sind die konfigurierbaren Parameter im Helm-Diagramm und seine Standardwerte aufgeführt:

    Parameter Beschreibung Standard Optional/Obligatorisch (Helm)
    citrixCPX Citrix ADC CPX FALSE Obligatorisch für Citrix ADC CPX
    xDSAdaptor.image Bild des Citrix xDS-Adaptercontainers quay.io/citrix/citrix-istio-adaptor:1.2.1 Mandatory
    ADMSettings.ADMIP Citrix ADM IP-Adresse null Obligatorisch für Citrix ADC CPX
    ADMSettings.ADMFingerPrint Der Citrix ADM Fingerprint. Navigieren Sie zu Netzwerke > Agenten, wählen Sie den Agenten aus und klicken Sie auf Fingerabdruck anzeigen null Optional
    ingressGateway.EULA Allgemeine Geschäftsbedingungen für die Endbenutzer-Lizenzvereinbarung (EULA). Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN Obligatorisch für Citrix ADC CPX
    ingressGateway.image Image von Citrix ADC CPX zur Ausführung als Ingress Gateway quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 Obligatorisch für Citrix ADC CPX
  4. Stellen Sie den Citrix SideCar-Injector bereit.

    helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --version 1.2.1 --namespace <namespace> set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<xx.xx.xx.xx>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30

    In der folgenden Tabelle sind die konfigurierbaren Parameter im Helm-Diagramm und seine Standardwerte aufgeführt:

    Parameter Beschreibung Standardwert
    ADMSettings.ADMIP Die Citrix ADM IP-Adresse NIL
    cpxProxy.image Citrix ADC CPX-Image, das als Sidecar-Proxy verwendet wird quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30
    cpxProxy.imagePullPolicy Image-Pull-Richtlinie für Citrix ADC IfNotPresent
    cpxProxy.EULA Allgemeine Geschäftsbedingungen für die Endbenutzer-Lizenzvereinbarung (EULA). Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN
    cpxProxy.cpxSidecarMode Umgebungsvariable für Citrix ADC CPX. Es zeigt an, dass Citrix ADC CPX als Sidecar-Modus läuft oder nicht. JA
  5. Stellen Sie das Etikett für jeden Namespace ein, der CPX Sidecar Injection benötigt.

    kubectl label namespace <app-namespace> cpx-injection=enabled

    Nach den Schritten 3 und 5 sehen Sie, dass der Citrix ADC CPX in Citrix ADM registriert ist.

Bereitstellen einer Beispielanwendung

Bedenken Sie, dass Sie die folgenden Anwendungen bereitstellen möchten:

Bereitstellen von Beispielanwendungen

Führen Sie das folgende Verfahren aus, um eine Beispielanwendung bereitzustellen:

  1. kubectl create namespace citrix-system

  2. kubectl create namespace bookinfo

  3. kubectl label namespace bookinfo cpx-injection=enabled

  4. kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-system

    Hinweis

    Sie können einen Benutzernamen und ein Kennwort Ihrer Wahl angeben.

  5. kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfo

    Hinweis

    Sie können einen Benutzernamen und ein Kennwort Ihrer Wahl angeben.

  6. helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace citrix-system --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30

    Hinweis

    Sie müssen Ihren ADM-Fingerabdruck und die IP-Adresse Ihres ADM-Agenten angeben

  7. helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace citrix-system --set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30

    Hinweis

    Sie müssen Ihren ADM-Fingerabdruck und die IP-Adresse Ihres ADM-Agenten angeben

  8. helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system

Hinzufügen von Kubernetes-Cluster in Citrix ADM

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 läuft unter 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:

      Auf dem Kubernetes-Master-Knoten:

      1. Verwenden Sie die folgende YAML, um ein Dienstkonto zu erstellen:

        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
        <!--NeedCopy-->
        
      2. Führen Sie kubectl create -f <yaml file> aus.

        Das Dienstkonto wird erstellt.

      3. Führen Sie aus kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>, um die Clusterrolle an das Dienstkonto zu binden.

        Das Dienstkonto hat jetzt den clusterweiten Zugriff.

        Beim Erstellen des Dienstkontos wird automatisch ein Token generiert.

      4. Führen Sie aus kubectl describe sa <name>, um das Token anzuzeigen.

      5. Um die geheime Zeichenfolge zu erhalten, führen Sie aus kubectl describe secret <token-name>.

        Token generieren

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

      Hinweis

      Stellen Sie sicher, dass Sie denselben Agenten auswählen, den Sie im CPX YAML hinzugefügt haben.

    5. Klicken Sie auf Erstellen.

      Cluster hinzufügen

Aktivieren der automatischen Auswahl virtueller Server für die Lizenzierung

Hinweis

Stellen Sie sicher, dass Sie über ausreichende Lizenzen für virtuelle Server verfügen. Weitere Informationen finden Sie unter Lizenzierung

Nachdem Sie Kubernetes-Cluster in Citrix ADM hinzugefügt haben, müssen Sie sicherstellen, dass virtuelle Server für die Lizenzierung automatisch ausgewählt werden. Virtuelle Server müssen lizenziert sein, um Daten in Service Graph anzuzeigen. So wählen Sie virtuelle Server automatisch aus:

  1. Navigieren Sie zu Konten > Abonnements.

  2. Aktivieren Sie unter Virtual Server License Summarydie Option Automatische Auswahl virtueller Serverund Automatische Auswahl nicht adressierbarer virtueller Server.

    Virtuellen Server automatisch auswählen

Webtransaktions- und TCP-Transaktionseinstellungen aktivieren

Nachdem Sie den Kubernetes-Cluster hinzugefügt und die automatische Auswahl virtueller Server aktiviert haben, ändern Sie die Einstellungen für Webtransaktionen und TCP-Transaktionen in Alle.

  1. Navigieren Sie zu Analytics > Einstellungen.

    Die Seite Einstellungen wird angezeigt.

  2. Klicken Sie auf Features für Analytics aktivieren.

  3. Wählen Sie unter Webtransaktionseinstellungen die Option Alle aus.

    Web-Transaktionseinstellungen

  4. Wählen Sie unter TCP-Transaktionseinstellungendie Option Alleaus.

    TCP

  5. Klicken Sie auf OK.

Datenverkehr an Microservices senden

Als Nächstes müssen Sie Datenverkehr an Microservices senden, um das Dienstdiagramm in Citrix ADM zu erhalten.

  1. Bestimmen Sie die Ingress-IP und den Port

    export INGRESS_HOST=$(kubectl get pods -l app=citrix-ingressgateway -n citrix-system -o 'jsonpath={.items[0].status.hostIP}')

    export INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')

    export SECURE_INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')

  2. Greifen Sie mit curl auf die BookInfo-Frontend-Anwendung zu Der Dienst productpage muss eine Antwort von 200 OK zurückgeben.

    curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage

    curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage

  3. Besuchen Sie https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage von einem Browser aus.

    Die Bookinfo-Seite wird angezeigt.

  4. Stellen Sie sicher, dass $INGRESS_HOST und $SECURE_INGRESS_PORT durch eine IP-Adresse und einen Portwert ersetzt werden.

Nachdem Sie Traffic an Microservices gesendet haben, wird das Servicediagramm ungefähr in einer Dauer von 10 Minuten ausgefüllt.

Beispiel

Mithilfe des Servicediagramms können Sie verschiedene Servicedetails wie Metriken, Fehler usw. analysieren. Weitere Informationen finden Sie unter Service-Diagramm.