Citrix ADC Ingress Controller

Stellen Sie die Citrix Lösung für den Service des Typs LoadBalancer in AWS bereit

Ein Dienst vom Typ LoadBalancer ist eine einfachere und schnellere Möglichkeit, einen Microservice, der in einem Kubernetes-Cluster ausgeführt wird, der Außenwelt zugänglich zu machen. Wenn Sie in Cloud-Bereitstellungen einen Dienst vom Typ LoadBalancer erstellen, wird dem Dienst ein in der Cloud verwalteter Load Balancer zugewiesen. Der Dienst wird dann mithilfe des Load Balancers verfügbar gemacht. Weitere Hinweise zu Diensten des Typs LoadBalancer finden Sie unter Dienste des Typs LoadBalancer.

Mit der Citrix Lösung für Service vom Typ LoadBalancer können Sie Citrix ADC verwenden, um den Lastenausgleich direkt durchzuführen und einen Dienst anstelle des von der Cloud verwalteten Load Balancer verfügbar zu machen. Citrix bietet diese Lösung für Dienste vom Typ LoadBalancer für On-Prem und Cloud. Services vom Typ LoadBalancer werden nativ in Kubernetes-Bereitstellungen in öffentlichen Clouds wie AWS, GCP und Azure unterstützt.

Wenn Sie einen Service in AWS bereitstellen, wird automatisch ein Load Balancer erstellt und die IP-Adresse wird dem externen Feld des Service zugewiesen. In dieser Citrix Lösung weist der Citrix IPAM-Controller die IP-Adresse zu, und diese IP-Adresse ist der VIP von Citrix ADC VPX. Citrix Ingress Controller, der in einem Kubernetes-Cluster bereitgestellt wird, konfiguriert einen Citrix ADC, der außerhalb des Clusters bereitgestellt wird, um den eingehenden Datenverkehr zu verteilen. Auf den Dienst wird also über Citrix ADC VPX anstelle des Cloud-Load Balancers zugegriffen.

Sie müssen den Dienst type wie LoadBalancer in der Dienstdefinition angeben. Festlegen des type Felds zur LoadBalancer Bereitstellung eines Load Balancers für Ihren Service in AWS.

Der Citrix IPAM-Controller wird verwendet, um IP-Adressen aus einem bestimmten Bereich von IP-Adressen automatisch zu Diensten vom Typ LoadBalancer zuzuweisen. Weitere Informationen zur Citrix Lösung für Dienste vom Typ LoadBalancer finden Sie unter Expose Services vom Typ LoadBalancer.

Sie können die Citrix Lösung für Service vom Typ LoadBalancer in AWS mithilfe von Helm-Diagrammen oder YAML-Dateien bereitstellen.

Voraussetzungen

  • Stellen Sie sicher, dass der Elastic Kubernetes Service (EKS) -Cluster Version 1.18 oder höher ausgeführt wird.
  • Stellen Sie sicher, dass Citrix ADC VPX und EKS in derselben VPC bereitgestellt werden und ausgeführt werden. Informationen zum Erstellen von Citrix ADC VPX in AWS finden Sie unter Erstellen einer Citrix ADC VPX-Instanz von AWS Marketplace.

Bereitstellen einer Citrix Lösung für Service vom Typ LoadBalancer in AWS mithilfe von Helm-Diagrammen

Führen Sie die folgenden Schritte aus, um die Citrix Lösung für den Dienst vom Typ LoadBalancer mithilfe von Helm-Diagrammen zu konfigurieren.

  1. Laden Sie die Datei unified-lb-values.yaml herunter und bearbeiten Sie die YAML-Datei, um die folgenden Details anzugeben:

  2. Stellen Sie den Citrix IPAM-Controller und den Citrix Ingress Controller mithilfe der bearbeiteten YAML-Datei in Ihrem Amazon EKS-Cluster bereit. Verwenden Sie die folgenden Befehle:

    helm repo add citrix https://citrix.github.io/citrix-helm-charts/
    
    helm install serviceLB citrix/citrix-cloud-native -f values.yaml
    
  3. Stellen Sie die Anwendung und den Service in Amazon EKS bereit:

    1. Fügen Sie im Servicemanifest die folgende Anmerkung hinzu:

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. Stellen Sie die Anwendung und den Dienst mit der geänderten Anmerkung mithilfe des folgenden Befehls bereit:

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      Hinweis: Der guestbook Microservice ist ein Beispiel, das in diesem Verfahren verwendet wird. Sie können eine Anwendung Ihrer Wahl bereitstellen. Stellen Sie sicher, dass der Dienst vom Typ LoadBalancer sein sollte und das Service-Manifest die Annotation enthalten sollte.

    3. Ordnen Sie dem VIP von Citrix ADC VPX eine elastische IP-Adresse zu.

    4. Greifen Sie mit einem Browser auf die Anwendung zu. Beispiel: http://EIP-associated-with-vip.

Stellen Sie die Citrix Lösung für den Service des Typs LoadBalancer in AWS mithilfe von YAML bereit

Führen Sie die folgenden Schritte aus, um die Citrix Lösung für den Dienst vom Typ LoadBalancer mithilfe von YAML bereitzustellen.

  1. Laden Sie die citrix-k8s-ingress-controller.yaml-Datei herunter und geben Sie die folgenden Details an.

    • Citrix ADC VPX NSIP

    • Secret, das mit den Citrix ADC VPX-Anmeldeinformationen erstellt wurde. Informationen zum Erstellen des geheimen Schlüssels finden Sie unter Erstellen eines geheimen Schlüssels.

    • Geben Sie das Argument für den Citrix IPAM-Controller an:

       args:
         - --ipam
           citrix-ipam-controller
      
  2. Stellen Sie den Citrix Ingress Controller mit der modifizierten YAML bereit.

    kubectl create -f citrix-k8s-ingress-controller.yaml
    
  3. Stellen Sie das Citrix VIP CRD, das die Kommunikation zwischen dem Citrix Ingress Controller und dem IPAM-Controller ermöglicht, mithilfe des folgenden Befehls bereit.

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/crd/vip/vip.yaml
    

    Weitere Informationen zum Bereitstellen von Citrix VIP CRD finden Sie unter Bereitstellen der VIP-CRD.

  4. Stellen Sie den IPAM-Controller bereit. Informationen zum Bereitstellen des IPAM-Controllers finden Sie unter Bereitstellen des IPAM-Controllers.

    Hinweis:

    Geben Sie die Liste der Citrix ADC VPX-VIPs im VIP_RANGE Feld der YAML-Datei der IPAM-Bereitstellung an.

  5. Stellen Sie die Anwendung mit dem Diensttyp LoadBalancer in Amazon EKS mithilfe der folgenden Schritte bereit:

    1. Fügen Sie im Servicemanifest die folgende Anmerkung hinzu.

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. Stellen Sie die Anwendung und den Dienst mit der geänderten Anmerkung mithilfe des folgenden Befehls bereit.

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      Hinweis:

      Der guestbook Microservice ist ein Beispiel, das in diesem Verfahren verwendet wird. Sie können eine Anwendung Ihrer Wahl bereitstellen. Stellen Sie sicher, dass der Dienst vom Typ LoadBalancer sein sollte und das Service-Manifest die Annotation enthalten sollte.

    3. Ordnen Sie dem VIP von Citrix ADC VPX eine elastische IP-Adresse zu.

    4. Greifen Sie mit einem Browser auf die Anwendung zu. Beispiel: http://EIP-associated-with-vip.

Stellen Sie die Citrix Lösung für den Service des Typs LoadBalancer in AWS bereit