Citrix ADC Ingress Controller

Konfigurieren der statischen Route auf Ingress Citrix ADC VPX oder MPX

In einem Kubernetes-Cluster werden Pods in einem Overlay-Netzwerk ausgeführt. Das Overlay-Netzwerk kann Flanell, Calico, Weave usw. sein. Den Pods im Cluster wird eine IP-Adresse aus dem Overlay-Netzwerk zugewiesen, die sich vom Host-Netzwerk unterscheidet.

Der Ingress Citrix ADC VPX oder MPX außerhalb des Kubernetes-Clusters empfängt den gesamten Ingress-Datenverkehr zu den Microservices, die im Kubernetes-Cluster bereitgestellt werden. Sie müssen Netzwerkkonnektivität zwischen der Ingress Citrix ADC-Instanz und den Pods herstellen, damit der eingehende Datenverkehr die Microservices erreichen kann.

Eine Möglichkeit, Netzwerkkonnektivität zwischen Pods und Citrix ADC VPX- oder MPX-Instanz außerhalb des Kubernetes-Clusters zu erreichen, besteht darin, Routen auf der Citrix ADC-Instanz zum Overlay-Netzwerk zu konfigurieren.

Sie können dies entweder manuell tun oder der Citrix Ingress Controller bietet eine Option zur automatischen Konfiguration des Netzwerks.

Hinweis:

Stellen Sie sicher, dass für die Citrix ADC-Instanz (MPX oder VPX) SNIP im Host-Netzwerk konfiguriert ist. Das Host-Netzwerk ist das Netzwerk, in dem die Kubernetes-Knoten miteinander kommunizieren.

Konfigurieren Sie die Route auf der Citrix ADC-Instanz manuell

Führen Sie folgende Schritte aus:

  1. Rufen Sie auf dem Masterknoten im Kubernetes-Cluster den podCIDR mit dem folgenden Befehl ab:

    # kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
    
      podNetwork: 10.244.0.0/24    gateway: 10.106.162.108
      podNetwork: 10.244.2.0/24    gateway: 10.106.162.109
      podNetwork: 10.244.1.0/24    gateway: 10.106.162.106
    

    Wenn Sie Calico CNI verwenden, verwenden Sie den folgenden Befehl, um podCIDR abzurufen:

    # kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.metadata.annotations.projectcalico\.org/IPv4IPIPTunnelAddr}{'\tgateway: '}{.metadata.annotations.projectcalico\.org/IPv4Address}{'\n'}"
    
      podNetwork: 192.168.109.0       gateway: 10.106.162.108/24
      podNetwork: 192.168.174.0       gateway: 10.106.162.109/24
      podNetwork: 192.168.76.128      gateway: 10.106.162.106/24
    
  2. Melden Sie sich bei der Citrix ADC-Instanz an.

  3. Fügen Sie mit den podCIDR-Informationen eine Route auf der Citrix ADC-Instanz hinzu. Verwenden Sie den folgenden Befehl:

    add route <pod_network> <podCIDR_netmask> <gateway>
    

    Zum Beispiel:

    add route 192.244.0.0 255.255.255.0 192.106.162.108
    
    add route 192.244.2.0 255.255.255.0 192.106.162.109
    
    add route 192.244.1.0 255.255.255.0 192.106.162.106
    

Konfigurieren Sie die Route automatisch auf der Citrix ADC-Instanz

In der Datei citrix-k8s-ingress-controller.yaml können Sie ein Argument verwenden,feature-node-watch um die Route auf der zugehörigen Citrix ADC-Instanz automatisch zu konfigurieren.

Setzen Sie das Argument feature-node-watch auf true, um die automatische Routenkonfiguration zu ermöglichen.

Sie können dieses Argument in der Datei citrix-k8s-ingress-controller.yaml wie folgt angeben:

spec: serviceAccountName: cic-k8s-role containers: - name: cic-k8s-ingress-controller image: “quay.io/citrix/citrix-k8s-ingress-controller:1.26.7” # feature-node-watch argument configures route(s) on the Ingress Citrix ADC # to provide connectivity to the pod network. Standardmäßig ist dieses Feature deaktiviert. args: - –feature-node-watch true

Standardmäßig ist das Argument feature-node-watch auf false festgelegt. Setzen Sie das Argument auf true, um die automatische Routenkonfiguration zu ermöglichen. Für die automatische Routenkonfiguration müssen Sie Berechtigungen zum Abhören der Ereignisse des Ressourcentyps “Knoten” bereitstellen. Sie können die erforderlichen Berechtigungen in der Datei citrix-k8s-ingress-controller.yaml wie folgt angeben:

  kind: ClusterRole
  apiVersion: rbac.authorization.k8s.io/v1
  metadata:
    name: cic-k8s-role
  rules:
  - apiGroups: [""]
    resources: ["services", "endpoints", "ingresses", "pods", "secrets", "nodes"]
    verbs: ["*"]
  <!--NeedCopy-->
Konfigurieren der statischen Route auf Ingress Citrix ADC VPX oder MPX