Ingress Controller de Citrix ADC

Implementar el Citrix Ingress Controller en Anthos

Anthos es una plataforma híbrida y multinube que le permite ejecutar sus aplicaciones en hardware local existente o en la nube pública. Proporciona una experiencia de desarrollo y operación consistente para entornos en la nube y en las instalaciones.

El Citrix Ingress Controller se puede implementar en Anthos GKE local mediante los siguientes modos de implementación:

  • Exponer Citrix ADC CPX con el controlador de entrada sidecar como un servicio de tipo LoadBalancer.
  • Implementación de entrada de doble nivel

Exponer Citrix ADC CPX como un servicio de tipo LoadBalancer en Anthos GKE local

En esta implementación, Citrix ADC VPX o MPX se implementa fuera del clúster en el nivel 1 y Citrix ADC CPX en el nivel 2 dentro del clúster de Anthos de manera similar a una implementación de doble nivel. Sin embargo, en lugar de usar Ingress, Citrix ADC CPX se expone mediante el servicio de Kubernetes de tipo LoadBalancer. El Citrix Ingress Controller automatiza el proceso de configuración de la dirección IP proporcionada en el campo LoadBalancerIP de la especificación del servicio.

Requisitos previos

  • Debe implementar un Citrix ADC VPX o MPX de nivel 1 en la misma subred que el clúster de usuarios local de Anthos GKE.

  • Debe configurar una dirección IP de subred (SNIP) en el nivel 1 de Citrix ADC y los nodos del clúster local de Anthos GKE deben ser accesibles mediante la dirección IP.

  • Para usar Citrix ADC VPX o MPX desde una red diferente, use Citrix Node Controller para habilitar la comunicación entre Citrix ADC y el clúster local de Anthos GKE.

  • Debe apartar una dirección IP virtual (VIP) para usarla como dirección IP del equilibrador de carga.

Implementar Citrix ADC CPX como servicio de tipo LoadBalancer en Anthos GKE local

Realice los siguientes pasos para implementar Citrix ADC CPX como un servicio de tipo LoadBalancer en Anthos GKE local.

  1. Implemente la aplicación requerida en su clúster de Kubernetes y expóngala como un servicio en su clúster con el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/apache.yaml
    

    Nota:

    En este ejemplo, apache.yaml se usa. Debe usar el archivo YAML específico para su aplicación.

  2. Implemente Citrix ADC CPX con el Citrix Ingress Controller sidecar como dispositivo de entrada de nivel 2 mediante el archivo cpx-cic.yaml.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
    
  3. (Opcional) Cree un certificado SSL autofirmado y una clave para usarlos con la configuración de Ingress para TLS.

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    Nota:

    Si ya tiene un certificado SSL, puede crear un secreto de Kubernetes con el mismo. Este es solo un comando de ejemplo para crear un certificado autofirmado y también este comando asume que el nombre de host de la aplicación es anthos-citrix-ingress.com.

  4. Crea un secreto de Kubernetes con el par de claves de certificado SSL creado.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  5. Crea un recurso Ingress para Tier-2 con el archivo tier-2-ingress.yaml.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/tier-2-ingress.yaml
    
  6. Cree un secreto de Kubernetes para Citrix ADC de nivel 1.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  7. Implemente el Citrix Ingress Controller como un controlador de entrada de nivel 1.

    1. Descargue el archivo cic.yaml.

    2. Introduzca la dirección IP de administración de Citrix ADC. Actualice la dirección IP de administración de Citrix ADC de nivel 1 en el marcador de posición Tier-1-Citrix-ADC-IP especificado en el archivo cic.yaml.

    3. Guarde e implemente el cic.yaml mediante el siguiente comando.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  8. Exponga Citrix ADC CPX como un servicio de Kubernetes de tipo LoadBalancer.

    1. Descargue el archivo cpx-service-type-lb.yaml.

    2. Modifique el archivo YAML y especifique el valor de VIP-for-accessing-microservices como la dirección VIP que se utilizará para acceder a las aplicaciones dentro del clúster. Esta dirección VIP es la que se reserva para usarse como dirección IP del equilibrador de carga.

    3. Guarde e implemente el archivo cpx-service-type-lb.yaml con el siguiente comando.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cpx-service-type-lb.yaml
      
  9. Actualice los registros DNS con la dirección IP de VIP-for-accessing-microservices para acceder al microservicio. En este ejemplo, para acceder al microservicio de Apache, debe tener la siguiente entrada de DNS.

    `<VIP-for-accessing-microservices> anthos-citrix-ingress.com`
    
  10. Use el siguiente comando para acceder a la aplicación.

           curl -k --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> https://anthos-citrix-ingress.com/ <html><body><h1>It works!</h1></body></html>
    

    Nota:

    En este comando, --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> se utiliza para anular la parte de configuración de DNS en el paso 9 con fines de demostración.

Limpiar la instalación: exponga Citrix ADC CPX como servicio de tipo LoadBalancer

Para limpiar la instalación, use el comando kubectl --kubeconfig delete para eliminar cada implementación.

Para eliminar la implementación del servicio Citrix ADC CPX (servicio CPX+CIC), use el siguiente comando:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service-type-lb.yaml

Para eliminar el objeto Ingress de nivel 2, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml

Para eliminar la implementación de Citrix ADC CPX junto con el Citrix Ingress Controller sidecar, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

Para eliminar el controlador de entrada independiente de Citrix, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Para eliminar el microservicio de Apache, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Para eliminar el secreto de Kubernetes, usa el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

Para eliminar el nslogin secreto, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin

Implementación de entrada de doble nivel

En una implementación de Ingress de doble nivel, Citrix ADC VPX o MPX se implementa fuera del clúster de Kubernetes (nivel 1) y los CPX de Citrix ADC se implementan dentro del clúster de Kubernetes (nivel 2).

Los dispositivos Citrix ADC MPX o VPX de nivel 1 dirigen el tráfico (de norte a sur) desde el cliente a Citrix ADC CPX en el nivel 2. A continuación, Citrix ADC CPX de nivel 2 redirige el tráfico a los microservicios del clúster de Kubernetes. El Citrix Ingress Controller implementado como un pod independiente configura el Citrix ADC de nivel 1. El Citrix Ingress Controller sidecar en uno o más pods de Citrix ADC CPX configura el Citrix ADC CPX asociado en el mismo pod.

Requisitos previos

  • Debe implementar un Citrix ADC VPX o MPX de nivel 1 en la misma subred que el clúster de usuarios local de Anthos GKE.

  • Debe configurar una dirección IP de subred (SNIP) en el nivel 1 de Citrix ADC y los nodos del clúster local de Anthos GKE deben ser accesibles mediante la dirección IP.

  • Para usar Citrix ADC VPX o MPX desde una red diferente, use Citrix Node Controller para habilitar la comunicación entre Citrix ADC y el clúster local de Anthos GKE.

  • Debe apartar una dirección IP virtual para usarla como dirección IP front-end en el manifiesto Ingress de nivel 1.

Implementación de Ingress de doble nivel en Anthos GKE local

Realice los siguientes pasos para implementar una implementación de Ingress de dos niveles de Citrix ADC en Anthos GKE local.

  1. Implemente la aplicación requerida en su clúster de Kubernetes y expóngala como un servicio en su clúster con el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/apache.yaml
    

    Nota:

    En este ejemplo, apache.yaml se usa. Debe usar el archivo YAML específico para su aplicación.

  2. Implemente Citrix ADC CPX con el Citrix Ingress Controller como entrada de nivel 2 mediante el archivo cpx-cic.yaml.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
    
  3. Exponga Citrix ADC CPX como un servicio de Kubernetes mediante el archivo cpx-service.yaml.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-service.yaml
    
  4. (Opcional) Cree un certificado SSL autofirmado y una clave para usarlos con la configuración de Ingress para TLS.

    Nota:

    Si ya tiene un certificado SSL, puede crear un secreto de Kubernetes con el mismo.

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    Nota:

    Este es solo un comando de ejemplo para crear un certificado autofirmado y también este comando asume que el nombre de host de la aplicación será anthos-citrix-ingress.com.

  5. Crea un secreto de Kubernetes con el par de claves de certificado SSL creado.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  6. Cree un recurso Ingress para Tier-2 con el archivo tier-2-ingress.yaml.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/tier-2-ingress.yaml
    
  7. Cree un secreto de Kubernetes para Citrix ADC de nivel 1.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  8. Implemente el Citrix Ingress Controller como un controlador de entrada de nivel 1.

    1. Descargue el archivo cic.yaml.

    2. Introduzca la dirección IP de administración de Citrix ADC. Actualice la dirección IP de administración de Citrix ADC de nivel 1 en el marcador de posición Tier-1-Citrix-ADC-IP especificado en el archivo cic.yaml.

    3. Guarde e implemente el cic.yaml mediante el siguiente comando.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  9. Cree un recurso Ingress para el nivel 1 con el archivo tier-1-ingress.yaml.

    1. Descargue el archivo tier-1-ingress.yaml.

    2. Modifique el archivo YAML y VIP-Citrix-ADC reemplácelo por la dirección VIP que se reservó.

    3. Guarde e implemente el archivo tier-1-ingress.yaml con el siguiente comando.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f tier-1-ingress.yaml
      
  10. Actualice los registros DNS con la dirección IP de VIP-Citrix-ADCpara acceder al microservicio. En este ejemplo, para acceder al microservicio de Apache, debe tener la siguiente entrada de DNS.

           <VIP-Citrix-ADC> anthos-citrix-ingress.com
    
  11. Use el siguiente comando para acceder a la aplicación.

       curl -k --resolve anthos-citrix-ingress.com:443:<VIP-Citrix-ADC>   https://anthos-citrix-ingress.com/
       <html><body><h1>It works!</h1></body></html>
    

    Nota:

    En este comando, --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> se usa para anular la parte de configuración de DNS.

Limpiar la instalación: entrada de doble nivel

Para limpiar la instalación, use el comando kubectl --kubeconfig delete para eliminar cada implementación.

Para eliminar el objeto Ingress de nivel 1, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-1-ingress.yaml

Para eliminar el objeto Ingress de nivel 2, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml`

Para eliminar la implementación de Citrix ADC CPX junto con el Citrix Ingress Controller sidecar, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

Para eliminar la implementación del servicio Citrix ADC CPX, use el siguiente comando:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service.yaml

Para eliminar el controlador de entrada independiente de Citrix, use el siguiente comando:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Para eliminar el microservicio de Apache, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Para eliminar el secreto de Kubernetes, usa el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

Para eliminar el nslogin secreto, use el siguiente comando.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin`
Implementar el Citrix Ingress Controller en Anthos