Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Instalación de equilibradores de carga BIG-IP de F5

Colaboradores

Big-IP de F5 es un controlador de entrega de aplicaciones (ADC) que ofrece un amplio conjunto de servicios avanzados de seguridad y gestión del tráfico de nivel de producción como el equilibrio de carga L4-L7, descarga SSL/TLS, DNS, firewall y muchos más. Estos servicios aumentan significativamente la disponibilidad, la seguridad y el rendimiento de sus aplicaciones.

Big-IP de F5 se puede implementar y consumir de varias maneras, en hardware dedicado, en la nube o como un dispositivo virtual en las instalaciones. Consulte la documentación aquí para explorar e implementar BIG-IP de F5 según sus necesidades.

Para una integración eficaz de los servicios BIG-IP de F5 con Red Hat OpenShift, F5 ofrece EL BIG-IP Container Ingresing Service (CIS). CIS se instala como un controlador que supervisa la API de OpenShift para determinadas definiciones de recursos personalizados (CRD) y gestiona la configuración del sistema BIG-IP de F5. Big-IP CIS de F5 se puede configurar para controlar tipos de servicios LoadBalancers y rutas en OpenShift.

Además, para la asignación automática de direcciones IP para dar servicio al tipo LoadBalancer, puede utilizar el controlador F5 IPAM. El controlador IPAM de F5 se instala como un pod de controladores que mira la API de OpenShift para los servicios LoadBalancer con una anotación ipamLabel para asignar la dirección IP desde un grupo preconfigurado.

En esta página se enumeran las instrucciones de instalación y configuración del controlador F5 BIG-IP CIS e IPAM. Como requisito previo, debe tener un sistema BIG-IP de F5 implementado y con licencia. También debe tener licencia para los servicios SDN, que se incluyen de forma predeterminada con la licencia base BIG-IP ve.

Nota BIG-IP de F5 se puede implementar en modo independiente o en modo cluster. A efectos de esta validación, F5 BIG-IP se implementó en modo independiente, pero, a efectos de producción, es preferible disponer de un cluster de BIG-IP para evitar un único punto de fallo.
Nota Un sistema BIG-IP de F5 se puede implementar en hardware dedicado, en la nube o como un dispositivo virtual en las instalaciones con versiones superiores a 12.x para que se integre con F5 CIS. A efectos de este documento, el sistema BIG-IP de F5 se validó como dispositivo virtual, por ejemplo, mediante LA edición BIG-IP ve.

Versiones validadas

Tecnología

Versión de software

Red Hat OpenShift

4.6 EUS, 4.7

EDICIÓN F5 BIG-IP VE

16.1.0

Servicio de entrada de contenedores F5

2.5.1

Controlador IPAM F5

0.1.4

F5 AS3

3.30.0

Instalación

  1. Instale la extensión F5 Application Services 3 para permitir que los sistemas BIG-IP acepten configuraciones en JSON en lugar de comandos de imperativo. Vaya a. "Repositorio de F5 AS3 GitHub"Y descargue el último archivo RPM.

  2. Inicie sesión en el sistema BIG-IP de F5, desplácese a iApps > Package Management LX y haga clic en Import.

  3. Haga clic en elegir archivo y seleccione el archivo de RPM AS3 descargado, haga clic en Aceptar y, a continuación, haga clic en cargar.

    Carga de iapps

  4. Confirme que la extensión AS3 se ha instalado correctamente.

    Validación de instalación AS3

  5. A continuación, configure los recursos necesarios para la comunicación entre los sistemas OpenShift Y BIG-IP. En primer lugar, cree un túnel entre OpenShift y EL servidor BIG-IP creando una interfaz de túnel VXLAN en EL sistema BIG-IP para OpenShift SDN. Desplácese a Red > túneles > Perfiles, haga clic en Crear y establezca el perfil principal en vxlan y el tipo de inundación en multidifusión. Introduzca un nombre para el perfil y haga clic en terminado.

    Crear perfil VXLAN

  6. Desplácese a Red > túneles > Lista de túneles, haga clic en Crear e introduzca el nombre y la dirección IP local del túnel. Seleccione el perfil de túnel que se creó en el paso anterior y haga clic en finalizado.

    Cree un túnel VXLAN

  7. Inicie sesión en el clúster de Red Hat OpenShift con privilegios de administrador de clúster.

  8. Cree una subred hosten OpenShift para el servidor BIG-IP de F5, que amplía la subred del clúster OpenShift al servidor BIG-IP de F5. Descargue la definición YAML de la subred del host.

    wget https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/openshift/f5-kctlr-openshift-hostsubnet.yaml
  9. Edite el archivo de subred del host y agregue LA IP BIG-IP VTEP (túnel VXLAN) para OpenShift SDN.

    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
    Nota Cambie el hostIP y otros detalles según corresponda a su entorno.
  10. Cree el recurso HostSubnet.

    [admin@rhel-7 ~]$ oc create -f f5-kctlr-openshift-hostsubnet.yaml
    
    hostsubnet.network.openshift.io/f5-server created
  11. Obtenga el intervalo de subred IP del clúster para la subred del host creada para el servidor BIG-IP de F5.

    [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. Cree una autoIP en OpenShift VXLAN con una IP en el rango de subred de host de OpenShift correspondiente al servidor BIG-IP de F5. Inicie sesión en el sistema BIG-IP de F5, desplácese a Red > IP automáticas y haga clic en Crear. Introduzca una dirección IP desde la subred IP del clúster creada para la subred de host BIG-IP de F5, seleccione el túnel VXLAN e introduzca los demás detalles. A continuación, haga clic en finalizado.

    Crear IP automática para VXLAN

  13. Cree una partición en el sistema BIG-IP de F5 que se va a configurar y utilizar con CIS. Vaya a sistema > usuarios > Lista de particiones, haga clic en Crear e introduzca los detalles. A continuación, haga clic en finalizado.

    Crear partición BIG-IP

    Nota F5 recomienda que no se realice ninguna configuración manual en la partición que gestiona CIS.
  14. Instale EL F5 BIG-IP CIS utilizando el operador de OperatorHub. Inicie sesión en el clúster de Red Hat OpenShift con privilegios de administración de clúster y cree un secreto con las credenciales de inicio de sesión del sistema BIG-IP de F5, que es un requisito previo para el operador.

    [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. Instale los CRD de F5 CIS.

    [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. Desplácese a Operators > OperatorHub, busque la palabra clave F5 y haga clic en el icono F5 Container Ingresing Service.

    F5 CIS en OperatorHub

  17. Lea la información del operador y haga clic en instalar.

    Icono de información CIS de F5 en OperatorHub

  18. En la pantalla instalar operador, deje todos los parámetros predeterminados y haga clic en instalar.

    Instalar el operador F5 CIS

  19. Se tarda un rato en instalar el operador.

    Progreso de instalación del operador de F5 CIS

  20. Después de instalar el operador, se muestra el mensaje instalación correcta.

  21. Vaya a operadores > operadores instalados, haga clic en F5 Container Ingresing Service y, a continuación, haga clic en Crear instancia en el icono F5BigIpctlr.

    Cree F5BigIpctlr

  22. Haga clic en YAML View y pegue el siguiente contenido después de actualizar los parámetros necesarios.

    Nota Actualice los parámetros bigip_partition, "openshift_sdn_name", bigip_url y.. bigip_login_secret a continuación se muestran los valores de la configuración antes de copiar el contenido.
    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. Después de pegar este contenido, haga clic en Crear. De esta forma se instalan los POD CIS en el espacio de nombres del sistema kube.

    Validar los POD CIS de F5

    Nota Red Hat OpenShift, de forma predeterminada, proporciona una forma de exponer los servicios a través de rutas para el equilibrio de carga L7. Un enrutador OpenShift integrado es responsable de la publicidad y el manejo del tráfico de estas rutas. Sin embargo, también puede configurar F5 CIS para que admita las rutas a través de un sistema BIG-IP externo de F5, que puede ejecutarse como un enrutador auxiliar o como un reemplazo del enrutador OpenShift autoalojado. CIS crea un servidor virtual en EL sistema BIG-IP que actúa como enrutador para las rutas OpenShift y BIG-IP maneja el anuncio y el enrutamiento de tráfico. Consulte la documentación aquí para obtener información sobre los parámetros para habilitar esta función. Tenga en cuenta que estos parámetros se definen para el recurso de implementación de OpenShift en la API de Apps/v1. Por lo tanto, si se usan con la API de recurso cis.f5.com/v1 de F5BigIpctlr, reemplace los guiones (-) por guiones bajos (_) para los nombres de los parámetros.
  24. Los argumentos que se pasan a la creación de recursos CIS incluyen ipam: true y.. custom_resource_mode: true. Estos parámetros son necesarios para habilitar la integración CIS con un controlador IPAM. Compruebe que CIS ha habilitado la integración IPAM creando el recurso IPAM de F5.

    [admin@rhel-7 ~]$ oc get f5ipam -n kube-system
    
    NAMESPACE   NAME                       	 	AGE
    kube-system   ipam.10.61.181.19.ocp-vmw  	 43s
  25. Cree la cuenta de servicio, la función y el enlace de rol necesarios para el controlador IPAM de F5. Cree un archivo YAML y pegue el siguiente contenido.

    [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. Cree los recursos.

    [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. Cree un archivo YAML y pegue la definición de implementación de F5 IPAM que se proporciona a continuación.

    Nota Actualice el parámetro intervalo ip en spec.template.spec.Containers[0].args a continuación para reflejar los rangos de direcciones IP y ipamLabels correspondientes a su configuración.
    Nota IpamLabels [range1 y.. range2 En ejemplo inferior] es necesario anotar los servicios de tipo LoadBalancer para el controlador IPAM a fin de detectar y asignar una dirección IP del intervalo definido.
    [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. Cree la implementación del controlador IPAM de F5.

    [admin@rhel-7 ~]$ oc create -f f5-ipam-deployment.yaml
    
    deployment/f5-ipam-controller created
  29. Compruebe que se están ejecutando los POD del controlador IPAM de F5.

    [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. Cree el esquema F5 IPAM.

    [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

Verificación

  1. Cree un servicio de tipo 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. Compruebe si el controlador IPAM le asigna una IP externa.

    [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. Cree una implementación y utilice el servicio LoadBalancer que se ha creado.

    [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. Compruebe si los pods están en ejecución.

    [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. Compruebe si se crea el servidor virtual correspondiente en EL sistema BIG-IP para el servicio del tipo LoadBalancer en OpenShift. Desplácese a tráfico local > servidores virtuales > Lista de servidores virtuales.

    Validar la creación de servidores virtuales BIG-IP para el tipo de servicio correspondiente LoadBalancer