Citrix ADC Ingress Controller

Stellen Sie den Citrix Ingress Controller mit OpenShift-Router-Sharding-Unterstützung bereit

OpenShift-Router-Sharding ermöglicht die Verteilung einer Reihe von Routen auf mehrere OpenShift-Router. Standardmäßig wählt ein OpenShift-Router alle Routen aus allen Namespaces aus. Beim Router-Sharding werden Beschriftungen zu Routen oder Namespaces und Label-Selektoren zu Routern zum Filtern von Routen hinzugefügt. Jeder Router-Shard wählt nur Routen mit bestimmten Beschriftungen aus, die den Auswahlparametern der Beschriftung entsprechen.

Citrix ADC kann auf zwei Arten in OpenShift integriert werden, und beide Bereitstellungen unterstützen OpenShift-Router-Sharding.

  • Citrix ADC CPX wird als OpenShift-Router zusammen mit dem Citrix Ingress Controller im Cluster bereitgestellt
  • Citrix Ingress Controller als Router-Plug-in für Citrix ADC MPX oder VPX, das außerhalb des Clusters bereitgestellt wird

Um Router-Sharding für eine Citrix ADC-Bereitstellung auf OpenShift zu konfigurieren, ist pro Shard eine Citrix Ingress Controller-Instanz erforderlich. Die Citrix Ingress Controller-Instanz wird je nach den für das Sharding erforderlichen Kriterien mit Route- oder Namespace-Labels oder beiden als Umgebungsvariablen bereitgestellt. Wenn der Citrix Ingress Controller eine Route verarbeitet, vergleicht er die Beschriftungen der Route oder die Namespace-Labels der Route mit den darauf konfigurierten Auswahlkriterien. Wenn die Route die Kriterien erfüllt, wird die entsprechende Konfiguration auf Citrix ADC angewendet, andernfalls wird die Konfiguration nicht angewendet.

Beim Router-Sharding basiert die Auswahl einer Teilmenge von Routen aus dem gesamten Routenpool auf Auswahlausdrücken. Auswahlausdrücke sind eine Kombination aus mehreren Werten und Operationen.

Bedenken Sie beispielsweise, dass es einige Routen mit verschiedenen Bezeichnungen für Service Level Agreement (SLA), geografischer Standort (Geo), Hardwareanforderungen (HW), Abteilung (Abt), Typ und Frequenz gibt, wie in der folgenden Tabelle dargestellt.

Beschriftung Werte
sla hoch, mittel, niedrig
Geo Ost, West
hw bescheiden, stark
Abt. Finanzen, Dev, Ops
type statisch, dynamisch
Frequenz hoch, wöchentlich

Die folgende Tabelle zeigt Selektoren für Routenbeschriftungen oder Namensraumbeschriftungen und einige Beispielauswahlausdrücke, die auf Beschriftungen im Beispiel basieren. Die Routenauswahlkriterien werden auf dem Citrix Ingress Controller mithilfe der Umgebungsvariablen ROUTE_LABELS und NAMESPACE_LABLES konfiguriert.

Art des Selektors Beispiel
ODER-Betrieb ROUTE_LABELS=’dept in (dev, ops)’
UND-Betrieb ROUTE_LABELS=’hw=strong,type=dynamic,geo=west’
NICHT Betrieb ROUTE_LABELS=’dept!= finance’
Exakte Übereinstimmung NAMESPACE_LABELS=’frequency=weekly’
Exakte Übereinstimmung mit Route- und Namespace-Labels NAMESPACE_LABELS=’frequency=weekly’ ROUTE_LABELS=’sla=low’
Schlüsselbasierter Abgleich unabhängig vom Wert NAMESPACE_LABELS=’name’
NICHT Betrieb mit schlüsselbasiertem Matching unabhängig vom Wert NAMESPACE_LABELS=’!name’

Hinweis:

Die Label-Selektoren verwenden die von Kubernetes-Labels unterstützte Sprache.

Wenn Sie möchten, können Sie Route- oder Namespace-Labels ändern, indem Sie sie später bearbeiten. Sobald Sie die Labels ändern, wird der Router-Shard erneut validiert und basierend auf der Änderung aktualisiert der Citrix Ingress Controller die Konfiguration auf Citrix ADC.

Citrix ADC CPX mit OpenShift-Router-Sharding bereitstellen

Um CPX mit OpenShift-Router-Sharding-Unterstützung bereitzustellen, führen Sie die folgenden Schritte aus:

  1. Laden Sie die Datei cpx_cic_side_car.yaml mit dem folgenden Befehl herunter:

     wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cpx_cic_side_car.yaml
    
  2. Bearbeiten Sie die Datei cpx_cic_side_car.yaml und geben Sie die Routenbezeichnungen und Namespace-Label-Selektoren als Umgebungsvariablen an.

    Das folgende Beispiel zeigt, wie ein Beispiel für eine Routenbeschriftung und eine Namensraumbezeichnung in der Datei cpx_cic_side_car.yaml angegeben werden. In diesem Beispiel werden Routen mit Label-“Name” -Werten entweder als abc oder xyz und mit der Namensraumbezeichnung als frequenz=hoch ausgewählt.

            env:    
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"       
    
  3. Stellen Sie den Citrix Ingress Controller mit dem folgenden Befehl bereit.

    oc create -f cpx_cic_side_car.yaml
    

Bereitstellen des Citrix Ingress Controller-Router-Plug-ins mit OpenShift-Router-Sharding

Führen Sie die folgenden Schritte aus, um ein Citrix Ingress Controller-Router-Plug-In mit Router-Sharding bereitzustellen

  1. Laden Sie die cic.yaml-Datei mit dem folgenden Befehl herunter:

    wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cic.yaml
    
  2. Bearbeiten Sie die cic.yaml-Datei und geben Sie die Routenbeschriftungen und Namespace-Label-Selektoren als Umgebungsvariablen an.

    Das folgende Beispiel zeigt, wie ein Beispiel für eine Routenbeschriftung und eine Namensraumbezeichnung in der Datei cic.yaml angegeben werden. In diesem Beispiel werden Routen mit Label-“Name” -Werten entweder als abc oder xyz und mit der Namensraumbezeichnung als frequenz=hoch ausgewählt.

            env:
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"
    
  3. Stellen Sie den Citrix Ingress Controller mit dem folgenden Befehl bereit.

    oc create -f cic.yaml
    

Beispiel: Erstellen Sie eine OpenShift-Route und überprüfen Sie die Routenkonfiguration auf Citrix ADC VPX

Dieses Beispiel zeigt, wie eine OpenShift-Route mit Beschriftungen erstellt und die Router-Shard-Konfiguration überprüft wird. In diesem Beispiel wird die Routenkonfiguration in einer Citrix ADC VPX-Bereitstellungüberprüft.

Führen Sie die folgenden Schritte aus, um eine Beispielroute mit Beschriftungen zu erstellen.

  1. Definieren Sie die Route in einer YAML-Datei. Es folgt ein Beispiel für eine Beispielroute mit dem Namen route.yaml.

    apiVersion: v1
    kind: Route
    metadata:
        name: web-backend-route
        namespace: default
        labels:
            sla: low
            name: abc
    spec:
        host: web-frontend.cpx-lab.org
        path: "/web-backend"
        port:
            targetPort: 80
        to:
            kind: Service
            name: web-backend
    
  2. Verwenden Sie den folgenden Befehl, um die Route bereitzustellen.

    oc create -f route.yaml
    
  3. Fügen Sie dem Namespace, in dem Sie die Route erstellen, Beschriftungen hinzu.

    oc label namespace default 'frequency=high'
    

Routenkonfiguration überprüfen

Sie können die OpenShift-Routenkonfiguration auf einem Citrix ADC VPX überprüfen, indem Sie die folgenden Schritte ausführen:

  1. Melden Sie sich bei Citrix ADC VPX an, indem Sie Folgendes ausführen:

    • Verwenden Sie einen SSH-Client wie PuTTY, um eine SSH-Verbindung zu Citrix ADC VPX zu öffnen.
    • Melden Sie sich mit Administratoranmeldeinformationen bei Citrix ADC VPX an.
  2. Prüfen Sie mit dem folgenden Befehl, ob die Dienstgruppe erstellt wurde.

    show serviceGroup 
    
  3. Überprüfen Sie die Routenkonfiguration auf Citrix ADC VPX in der show serviceGroup Befehlsausgabe.

    Es folgt ein Beispiel für eine Routenkonfiguration aus der show serviceGroup Befehlsausgabe.

    > show serviceGroup
    k8s-web-backend-route_default_80_k8s-web-backend_default_80_svc - HTTP
    State: ENABLED  Effective State: DOWN Monitor Threshold : 0
    Max Conn: 0     Max Req: 0 Max Bandwidth: 0 kbits
    Use Source IP: NO    
    Client Keepalive(CKA): NO
    TCP Buffering(TCPB): NO
    HTTP Compression(CMP): NO
    Idle timeout: Client: 180 sec    Server: 360 sec
    Client IP: DISABLED 
    Cacheable: NO
    SC: OFF
    SP: OFF
    Down state flush: ENABLED
    Monitor Connection Close : NONE
    Appflow logging: ENABLED
    ContentInspection profile name: ???
    Process Local: DISABLED
    Traffic Domain: 0
    
Stellen Sie den Citrix Ingress Controller mit OpenShift-Router-Sharding-Unterstützung bereit