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 NetScaler verwenden, um den Lastenausgleich direkt durchzuführen und einen Dienst anstelle des von der Cloud verwalteten Load Balancer verfügbar zu machen. NetScaler bietet diese Lösung für Dienste vom Typ LoadBalancer für On-Premise 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 wird durch die IP-Adresse zugewiesen und diese IP-Adresse ist der VIP von NetScaler VPX. Der NetScaler Ingress Controller, der in einem Kubernetes-Cluster bereitgestellt wird, konfiguriert einen NetScaler, der außerhalb des Clusters bereitgestellt wird, um den eingehenden Datenverkehr auszugleichen. Auf den Dienst wird also über NetScaler VPX anstelle des Cloud-Load Balancers zugegriffen.
Sie müssen den Dienst type
wie LoadBalancer
in der Dienstdefinition angeben. Festlegen des Felds type
auf LoadBalancer
stellt einen Load Balancer für Ihren Service in AWS bereit.
wird verwendet, um Diensten des Typs LoadBalancer automatisch IP-Adressen aus einem bestimmten Bereich von IP-Adressen 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 NetScaler VPX und EKS in derselben VPC bereitgestellt werden und ausgeführt werden. Informationen zum Erstellen von NetScaler VPX in AWS finden Sie unter Erstellen einer NetScaler 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.
-
Laden Sie die Datei unified-lb-values.yaml herunter und bearbeiten Sie die YAML-Datei, um die folgenden Details anzugeben:
-
NetScaler VPX NSIP. Weitere Informationen finden Sie im NetScaler Ingress Controller-Helm-Diagramm.
-
Secret, das mit den NetScaler VPX-Anmeldeinformationen erstellt wurde. Weitere Informationen finden Sie im NetScaler Ingress Controller-Helm-Diagramm.
-
Liste der im IPAM-Controller zu verwendenden VIPs. Weitere Informationen finden Sie in der IPAM-Helmtabelle.
-
-
Stellen Sie den und den NetScaler 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
-
Stellen Sie die Anwendung und den Service in Amazon EKS bereit:
-
Fügen Sie im Servicemanifest die folgende Anmerkung hinzu:
beta.kubernetes.io/aws-load-balancer-type: "external"
-
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. -
Ordnen Sie dem VIP von NetScaler VPX eine elastische IP-Adresse zu.
-
Greifen Sie mit einem Browser auf die Anwendung zu. Zum 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.
-
Laden Sie die citrix-k8s-ingress-controller.yaml-Datei herunter und geben Sie die folgenden Details an.
-
Secret, das mit den NetScaler VPX-Anmeldeinformationen erstellt wurde. Informationen zum Erstellen des geheimen Schlüssels finden Sie unter Erstellen eines geheimen Schlüssels.
-
Geben Sie das Argument an für :
args: - --ipam citrix-ipam-controller
-
Stellen Sie den NetScaler Ingress Controller mithilfe des modifizierten YAML bereit.
kubectl create -f citrix-k8s-ingress-controller.yaml
-
Stellen Sie die NetScaler VIP CRD bereit, die Kommunikation zwischen dem NetScaler Ingress Controller und dem IPAM-Controller mithilfe des folgenden Befehls ermöglicht.
kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/crd/vip/vip.yaml
Weitere Informationen zur Bereitstellung von NetScaler VIP CRD finden Sie unter Bereitstellender VIP CRD.
-
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 NetScaler VPX-VIPs im
VIP_RANGE
Feld der YAML-Datei der IPAM-Bereitstellung an. -
Stellen Sie die Anwendung mit dem Diensttyp LoadBalancer in Amazon EKS mithilfe der folgenden Schritte bereit:
-
Fügen Sie im Servicemanifest die folgende Anmerkung hinzu.
beta.kubernetes.io/aws-load-balancer-type: "external"
-
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. -
Ordnen Sie dem VIP von NetScaler VPX eine elastische IP-Adresse zu.
-
Greifen Sie mit einem Browser auf die Anwendung zu. Zum Beispiel
http://EIP-associated-with-vip
.
-