Skip to main content
NetApp container solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Installieren von F5 BIG-IP Load Balancern

Beitragende kevin-hoke

F5 BIG-IP ist ein Application Delivery Controller (ADC), der eine breite Palette fortschrittlicher Verkehrsmanagement- und Sicherheitsdienste in Produktionsqualität bietet, wie z. B. L4-L7-Lastausgleich, SSL/TLS-Offload, DNS, Firewall und vieles mehr. Diese Dienste erhöhen die Verfügbarkeit, Sicherheit und Leistung Ihrer Anwendungen drastisch.

F5 BIG-IP kann auf verschiedene Weise bereitgestellt und genutzt werden: auf dedizierter Hardware, in der Cloud oder als virtuelle Appliance vor Ort. Lesen Sie die Dokumentation hier, um F5 BIG-IP je nach Bedarf zu erkunden und bereitzustellen.

Für eine effiziente Integration von F5 BIG-IP-Diensten mit Red Hat OpenShift bietet F5 den BIG-IP Container Ingress Service (CIS) an. CIS wird als Controller-Pod installiert, der die OpenShift-API auf bestimmte benutzerdefinierte Ressourcendefinitionen (CRDs) überwacht und die F5 BIG-IP-Systemkonfiguration verwaltet. F5 BIG-IP CIS kann so konfiguriert werden, dass es die Servicetypen LoadBalancer und Routen in OpenShift steuert.

Darüber hinaus können Sie für die automatische IP-Adresszuweisung zur Bedienung des Typs LoadBalancer den F5 IPAM-Controller verwenden. Der F5 IPAM-Controller wird als Controller-Pod installiert, der die OpenShift-API auf LoadBalancer-Dienste mit einer ipamLabel-Annotation überwacht, um die IP-Adresse aus einem vorkonfigurierten Pool zuzuweisen.

Auf dieser Seite sind die Installations- und Konfigurationsanweisungen für den F5 BIG-IP CIS- und IPAM-Controller aufgeführt. Als Voraussetzung müssen Sie über ein bereitgestelltes und lizenziertes F5 BIG-IP-System verfügen. Es muss auch für SDN-Dienste lizenziert werden, die standardmäßig in der BIG-IP VE-Basislizenz enthalten sind.

Hinweis F5 BIG-IP kann im Standalone- oder Clustermodus bereitgestellt werden. Für die Zwecke dieser Validierung wurde F5 BIG-IP im Standalone-Modus bereitgestellt. Für Produktionszwecke ist jedoch ein Cluster von BIG-IPs vorzuziehen, um einen einzelnen Fehlerpunkt zu vermeiden.
Hinweis Ein F5 BIG-IP-System kann auf dedizierter Hardware, in der Cloud oder als virtuelle Appliance vor Ort mit Versionen über 12.x bereitgestellt werden, um es in F5 CIS zu integrieren. Für die Zwecke dieses Dokuments wurde das F5 BIG-IP-System als virtuelle Appliance validiert, beispielsweise mithilfe der BIG-IP VE-Edition.

Validierte Releases

Technologie

Softwareversion

Red Hat OpenShift

4,6 EUS, 4,7

F5 BIG-IP VE-Edition

16.1.0

F5 Container Ingress-Dienst

2.5.1

F5 IPAM-Controller

0,1,4

F5 AS3

3.30.0

Installation

  1. Installieren Sie die Erweiterung F5 Application Services 3, damit BIG-IP-Systeme Konfigurationen in JSON anstelle von imperativen Befehlen akzeptieren können. Gehe zu "F5 AS3 GitHub-Repository" , und laden Sie die neueste RPM-Datei herunter.

  2. Melden Sie sich beim F5 BIG-IP-System an, navigieren Sie zu iApps > Package Management LX und klicken Sie auf Importieren.

  3. Klicken Sie auf „Datei auswählen“ und wählen Sie die heruntergeladene AS3-RPM-Datei aus. Klicken Sie auf „OK“ und dann auf „Hochladen“.

    iApps hochladen

  4. Bestätigen Sie, dass die AS3-Erweiterung erfolgreich installiert wurde.

    AS3-Installationsvalidierung

  5. Konfigurieren Sie als Nächstes die für die Kommunikation zwischen OpenShift- und BIG-IP-Systemen erforderlichen Ressourcen. Erstellen Sie zunächst einen Tunnel zwischen OpenShift und dem BIG-IP-Server, indem Sie auf dem BIG-IP-System eine VXLAN-Tunnelschnittstelle für OpenShift SDN erstellen. Navigieren Sie zu Netzwerk > Tunnel > Profile, klicken Sie auf Erstellen und legen Sie das übergeordnete Profil auf vxlan und den Flooding-Typ auf Multicast fest. Geben Sie einen Namen für das Profil ein und klicken Sie auf „Fertig“.

    VXLAN-Profil erstellen

  6. Navigieren Sie zu Netzwerk > Tunnel > Tunnelliste, klicken Sie auf Erstellen und geben Sie den Namen und die lokale IP-Adresse für den Tunnel ein. Wählen Sie das im vorherigen Schritt erstellte Tunnelprofil aus und klicken Sie auf „Fertig“.

    VXLAN-Tunnel erstellen

  7. Melden Sie sich mit Cluster-Administratorberechtigungen beim Red Hat OpenShift-Cluster an.

  8. Erstellen Sie auf OpenShift ein Hostsubnetz für den F5 BIG-IP-Server, das das Subnetz vom OpenShift-Cluster auf den F5 BIG-IP-Server erweitert. Laden Sie die YAML-Definition des Host-Subnetzes herunter.

    wget https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/openshift/f5-kctlr-openshift-hostsubnet.yaml
  9. Bearbeiten Sie die Host-Subnetzdatei und fügen Sie die BIG-IP VTEP (VXLAN-Tunnel)-IP für das OpenShift SDN hinzu.

    apiVersion: v1
    kind: HostSubnet
    metadata:
      name: f5-server
      annotations:
        pod.network.openshift.io/fixed-vnid-host: "0"
        pod.network.openshift.io/assign-subnet: "true"
    # provide a name for the node that will serve as BIG-IP's entry into the cluster
    host: f5-server
    # The hostIP address will be the BIG-IP interface address routable to the
    # OpenShift Origin nodes.
    # This address is the BIG-IP VTEP in the SDN's VXLAN.
    hostIP: 10.63.172.239
    Hinweis Ändern Sie die Host-IP und andere Details entsprechend Ihrer Umgebung.
  10. Erstellen Sie die HostSubnet-Ressource.

    [admin@rhel-7 ~]$ oc create -f f5-kctlr-openshift-hostsubnet.yaml
    
    hostsubnet.network.openshift.io/f5-server created
  11. Rufen Sie den Cluster-IP-Subnetzbereich für das für den F5 BIG-IP-Server erstellte Host-Subnetz ab.

    [admin@rhel-7 ~]$ oc get hostsubnet
    
    NAME                         HOST                         HOST IP         SUBNET          EGRESS CIDRS   EGRESS IPS
    f5-server                    f5-server                    10.63.172.239   10.131.0.0/23
    ocp-vmw-nszws-master-0       ocp-vmw-nszws-master-0       10.63.172.44    10.128.0.0/23
    ocp-vmw-nszws-master-1       ocp-vmw-nszws-master-1       10.63.172.47    10.130.0.0/23
    ocp-vmw-nszws-master-2       ocp-vmw-nszws-master-2       10.63.172.48    10.129.0.0/23
    ocp-vmw-nszws-worker-r8fh4   ocp-vmw-nszws-worker-r8fh4   10.63.172.7     10.130.2.0/23
    ocp-vmw-nszws-worker-tvr46   ocp-vmw-nszws-worker-tvr46   10.63.172.11    10.129.2.0/23
    ocp-vmw-nszws-worker-wdxhg   ocp-vmw-nszws-worker-wdxhg   10.63.172.24    10.128.2.0/23
    ocp-vmw-nszws-worker-wg8r4   ocp-vmw-nszws-worker-wg8r4   10.63.172.15    10.131.2.0/23
    ocp-vmw-nszws-worker-wtgfw   ocp-vmw-nszws-worker-wtgfw   10.63.172.17    10.128.4.0/23
  12. Erstellen Sie eine eigene IP auf OpenShift VXLAN mit einer IP im Host-Subnetzbereich von OpenShift, die dem F5 BIG-IP-Server entspricht. Melden Sie sich beim F5 BIG-IP-System an, navigieren Sie zu Netzwerk > Eigene IPs und klicken Sie auf Erstellen. Geben Sie eine IP aus dem für das F5 BIG-IP-Host-Subnetz erstellten Cluster-IP-Subnetz ein, wählen Sie den VXLAN-Tunnel aus und geben Sie die anderen Details ein. Klicken Sie dann auf „Fertig“.

    Erstellen Sie eine eigene IP für VXLAN

  13. Erstellen Sie eine Partition im F5 BIG-IP-System, die mit CIS konfiguriert und verwendet werden soll. Navigieren Sie zu System > Benutzer > Partitionsliste, klicken Sie auf Erstellen und geben Sie die Details ein. Klicken Sie dann auf „Fertig“.

    BIG-IP-Partition erstellen

    Hinweis F5 empfiehlt, auf der von CIS verwalteten Partition keine manuelle Konfiguration vorzunehmen.
  14. Installieren Sie das F5 BIG-IP CIS mit dem Operator von OperatorHub. Melden Sie sich mit Cluster-Admin-Berechtigungen beim Red Hat OpenShift-Cluster an und erstellen Sie ein Geheimnis mit den Anmeldeinformationen des F5 BIG-IP-Systems. Dies ist eine Voraussetzung für den Operator.

    [admin@rhel-7 ~]$ oc create secret generic bigip-login -n kube-system --from-literal=username=admin --from-literal=password=admin
    
    secret/bigip-login created
  15. Installieren Sie die F5 CIS CRDs.

    [admin@rhel-7 ~]$ oc apply -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/master/docs/config_examples/crd/Install/customresourcedefinitions.yml
    
    customresourcedefinition.apiextensions.k8s.io/virtualservers.cis.f5.com created
    customresourcedefinition.apiextensions.k8s.io/tlsprofiles.cis.f5.com created
    customresourcedefinition.apiextensions.k8s.io/transportservers.cis.f5.com created
    customresourcedefinition.apiextensions.k8s.io/externaldnss.cis.f5.com created
    customresourcedefinition.apiextensions.k8s.io/ingresslinks.cis.f5.com created
  16. Navigieren Sie zu Operatoren > OperatorHub, suchen Sie nach dem Schlüsselwort F5 und klicken Sie auf die Kachel F5 Container Ingress Service.

    F5 CIS im OperatorHub

  17. Lesen Sie die Betreiberinformationen und klicken Sie auf Installieren.

    F5 CIS-Infokachel im OperatorHub

  18. Behalten Sie auf dem Bildschirm „Operator installieren“ alle Standardparameter bei und klicken Sie auf „Installieren“.

    Installieren Sie den F5 CIS-Operator

  19. Die Installation des Operators dauert eine Weile.

    Installationsfortschritt von F5 CIS Operator

  20. Nachdem der Operator installiert wurde, wird die Meldung „Installation erfolgreich“ angezeigt.

  21. Navigieren Sie zu „Operatoren > Installierte Operatoren“, klicken Sie auf „F5 Container Ingress Service“ und dann unter der Kachel „F5BigIpCtlr“ auf „Instanz erstellen“.

    Erstellen Sie F5BigIpCtlr

  22. Klicken Sie auf „YAML-Ansicht“ und fügen Sie den folgenden Inhalt ein, nachdem Sie die erforderlichen Parameter aktualisiert haben.

    Hinweis Aktualisieren der Parameter bigip_partition , ` openshift_sdn_name`, bigip_url Und bigip_login_secret unten, um die Werte für Ihr Setup widerzuspiegeln, bevor Sie den Inhalt kopieren.
    apiVersion: cis.f5.com/v1
    kind: F5BigIpCtlr
    metadata:
      name: f5-server
      namespace: openshift-operators
    spec:
      args:
        log_as3_response: true
        agent: as3
        log_level: DEBUG
        bigip_partition: ocp-vmw
        openshift_sdn_name: /Common/openshift_vxlan
        bigip_url: 10.61.181.19
        insecure: true
        pool-member-type: cluster
        custom_resource_mode: true
        as3_validation: true
        ipam: true
        manage_configmaps: true
      bigip_login_secret: bigip-login
      image:
        pullPolicy: Always
        repo: f5networks/cntr-ingress-svcs
        user: registry.connect.redhat.com
      namespace: kube-system
      rbac:
        create: true
      resources: {}
      serviceAccount:
        create: true
      version: latest
  23. Klicken Sie nach dem Einfügen dieses Inhalts auf „Erstellen“. Dadurch werden die CIS-Pods im Kube-System-Namespace installiert.

    Validieren von F5 CIS-Pods

    Hinweis Red Hat OpenShift bietet standardmäßig eine Möglichkeit, die Dienste über Routen für den L7-Lastausgleich verfügbar zu machen. Ein integrierter OpenShift-Router ist für die Werbung und die Verkehrsabwicklung dieser Routen verantwortlich. Sie können das F5 CIS jedoch auch so konfigurieren, dass die Routen über ein externes F5 BIG-IP-System unterstützt werden, das entweder als Hilfsrouter oder als Ersatz für den selbst gehosteten OpenShift-Router ausgeführt werden kann. CIS erstellt einen virtuellen Server im BIG-IP-System, der als Router für die OpenShift-Routen fungiert, und BIG-IP übernimmt die Werbung und das Verkehrsrouting. Informationen zu den Parametern zum Aktivieren dieser Funktion finden Sie in der Dokumentation hier. Beachten Sie, dass diese Parameter für die OpenShift-Bereitstellungsressource in der Apps/v1-API definiert sind. Ersetzen Sie daher bei der Verwendung mit der F5BigIpCtlr-Ressource cis.f5.com/v1-API die Bindestriche (-) durch Unterstriche (_) für die Parameternamen.
  24. Zu den Argumenten, die an die Erstellung von CIS-Ressourcen übergeben werden, gehören ipam: true Und custom_resource_mode: true . Diese Parameter sind erforderlich, um die CIS-Integration mit einem IPAM-Controller zu aktivieren. Überprüfen Sie, ob das CIS die IPAM-Integration aktiviert hat, indem Sie die F5 IPAM-Ressource erstellen.

    [admin@rhel-7 ~]$ oc get f5ipam -n kube-system
    
    NAMESPACE   NAME                       	 	AGE
    kube-system   ipam.10.61.181.19.ocp-vmw  	 43s
  25. Erstellen Sie das für den F5 IPAM-Controller erforderliche Dienstkonto, die Rolle und die Rollenbindung. Erstellen Sie eine YAML-Datei und fügen Sie den folgenden Inhalt ein.

    [admin@rhel-7 ~]$ vi f5-ipam-rbac.yaml
    
    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: ipam-ctlr-clusterrole
    rules:
      - apiGroups: ["fic.f5.com"]
        resources: ["ipams","ipams/status"]
        verbs: ["get", "list", "watch", "update", "patch"]
    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: ipam-ctlr-clusterrole-binding
      namespace: kube-system
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: ipam-ctlr-clusterrole
    subjects:
      - apiGroup: ""
        kind: ServiceAccount
        name: ipam-ctlr
        namespace: kube-system
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: ipam-ctlr
      namespace: kube-system
  26. Erstellen Sie die Ressourcen.

    [admin@rhel-7 ~]$ oc create -f f5-ipam-rbac.yaml
    
    clusterrole.rbac.authorization.k8s.io/ipam-ctlr-clusterrole created
    clusterrolebinding.rbac.authorization.k8s.io/ipam-ctlr-clusterrole-binding created
    serviceaccount/ipam-ctlr created
  27. Erstellen Sie eine YAML-Datei und fügen Sie die unten angegebene F5 IPAM-Bereitstellungsdefinition ein.

    Hinweis Aktualisieren Sie den IP-Bereichsparameter in spec.template.spec.containers[0].args unten, um die IPamLabels und IP-Adressbereiche entsprechend Ihrem Setup widerzuspiegeln.
    Hinweis ipamLabels[range1 Und range2 im folgenden Beispiel] müssen für die Dienste vom Typ LoadBalancer annotiert werden, damit der IPAM-Controller eine IP-Adresse aus dem definierten Bereich erkennen und zuweisen kann.
    [admin@rhel-7 ~]$ vi f5-ipam-deployment.yaml
    
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        name: f5-ipam-controller
      name: f5-ipam-controller
      namespace: kube-system
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: f5-ipam-controller
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: f5-ipam-controller
        spec:
          containers:
          - args:
            - --orchestration=openshift
            - --ip-range='{"range1":"10.63.172.242-10.63.172.249", "range2":"10.63.170.111-10.63.170.129"}'
            - --log-level=DEBUG
            command:
            - /app/bin/f5-ipam-controller
            image: registry.connect.redhat.com/f5networks/f5-ipam-controller:latest
            imagePullPolicy: IfNotPresent
            name: f5-ipam-controller
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          serviceAccount: ipam-ctlr
          serviceAccountName: ipam-ctlr
  28. Erstellen Sie die F5 IPAM-Controller-Bereitstellung.

    [admin@rhel-7 ~]$ oc create -f f5-ipam-deployment.yaml
    
    deployment/f5-ipam-controller created
  29. Überprüfen Sie, ob die F5 IPAM-Controller-Pods ausgeführt werden.

    [admin@rhel-7 ~]$ oc get pods -n kube-system
    
    NAME                                       READY   STATUS    RESTARTS   AGE
    f5-ipam-controller-5986cff5bd-2bvn6        1/1     Running   0          30s
    f5-server-f5-bigip-ctlr-5d7578667d-qxdgj   1/1     Running   0          14m
  30. Erstellen Sie das F5 IPAM-Schema.

    [admin@rhel-7 ~]$ oc create -f https://raw.githubusercontent.com/F5Networks/f5-ipam-controller/main/docs/_static/schemas/ipam_schema.yaml
    
    customresourcedefinition.apiextensions.k8s.io/ipams.fic.f5.com

Überprüfung

  1. Erstellen Sie einen Dienst vom Typ LoadBalancer

    [admin@rhel-7 ~]$ vi example_svc.yaml
    
    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        cis.f5.com/ipamLabel: range1
      labels:
        app: f5-demo-test
      name: f5-demo-test
      namespace: default
    spec:
      ports:
      - name: f5-demo-test
        port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: f5-demo-test
      sessionAffinity: None
      type: LoadBalancer
    [admin@rhel-7 ~]$ oc create -f example_svc.yaml
    
    service/f5-demo-test created
  2. Überprüfen Sie, ob der IPAM-Controller ihm eine externe IP zuweist.

    [admin@rhel-7 ~]$ oc get svc
    
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP                            PORT(S)        AGE
    f5-demo-test   LoadBalancer   172.30.210.108   10.63.172.242                          80:32605/TCP   27s
  3. Erstellen Sie eine Bereitstellung und verwenden Sie den erstellten LoadBalancer-Dienst.

    [admin@rhel-7 ~]$ vi example_deployment.yaml
    
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: f5-demo-test
      name: f5-demo-test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: f5-demo-test
      template:
        metadata:
          labels:
            app: f5-demo-test
        spec:
          containers:
          - env:
            - name: service_name
              value: f5-demo-test
            image: nginx
            imagePullPolicy: Always
            name: f5-demo-test
            ports:
            - containerPort: 80
              protocol: TCP
    [admin@rhel-7 ~]$ oc create -f example_deployment.yaml
    
    deployment/f5-demo-test created
  4. Überprüfen Sie, ob die Pods ausgeführt werden.

    [admin@rhel-7 ~]$ oc get pods
    
    NAME                            READY   STATUS    RESTARTS   AGE
    f5-demo-test-57c46f6f98-47wwp   1/1     Running   0          27s
    f5-demo-test-57c46f6f98-cl2m8   1/1     Running   0          27s
  5. Prüfen Sie, ob für den Dienst vom Typ LoadBalancer in OpenShift der entsprechende virtuelle Server im BIG-IP-System angelegt ist. Navigieren Sie zu Lokaler Datenverkehr > Virtuelle Server > Liste der virtuellen Server.

    Validieren Sie die Erstellung virtueller BIG-IP-Server für den entsprechenden Diensttyp LoadBalancer