Procedimientos detallados para configurar topología de malla de servicio o de doble capa

Los requisitos previos para implementar la topología de doble nivel o service mesh lite están disponibles en Configuración del gráfico de servicios.

Configurar un agente de NetScaler

Para habilitar la comunicación entre el clúster de Kubernetes y NetScaler Console, debe instalar y configurar un agente. Puede configurar un agente mediante un hipervisor, servicios de nube pública (como Microsoft Azure, AWS) o un agente integrado disponible en las instancias de NetScaler (ideal para implementaciones de alta disponibilidad).

Siga el procedimiento para configurar un agente.

Nota

  • También puede usar un agente existente.

  • De forma predeterminada, los agentes se actualizan automáticamente a la última versión de NetScaler Console. Puede ver los detalles del agente en la página Infraestructura > Instancias > Agentes. También puede especificar la hora a la que quiere que se realicen las actualizaciones del agente. Para obtener más información, consulte Configurar los ajustes de actualización del agente.

Configurar rutas estáticas en el agente

Dentro del clúster de Kubernetes, todos los pods en contenedores utilizan una red de superposición. No es posible establecer la comunicación mediante directamente esas direcciones IP privadas. Para habilitar la comunicación entre NetScaler Console y el clúster de Kubernetes, debe configurar el enrutamiento estático en el agente.

Tenga en cuenta que tiene las siguientes direcciones IP para su clúster de Kubernetes:

  • Kubernetes maestro — 101.xx.xx.112

  • Kubernetes trabajador 1 — 101.xx.xx.111

  • Kubernetes trabajador 2 — 101.xx.xx.110

En el maestro de Kubernetes, ejecute el siguiente comando para identificar la red de pod para realizar el enrutamiento estático:

kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"

A continuación se muestra un ejemplo de salida después de ejecutar el comando:

Ejemplo de comando

Tras configurar correctamente un agente:

  1. Con un cliente SSH, inicie sesión en el agente

  2. Escriba shell y pulse Intro para cambiar a bash

  3. Configure la redirección estática mediante el comandoroute add -net <public IP address range> <Kubernetes IP address>

    Por ejemplo:

    route add -net 192.168.0.0/24 101.xx.xx.112

    route add -net 192.168.1.0/24 101.xx.xx.111

    route add -net 192.168.2.0/24 101.xx.xx.110

  4. Verifique la configuración mediante netstat -rn

    enrutamiento estático

  5. Agregue estos comandos de ruta en el/mpsconfig/svm.conf archivo.

    1. En el agente NetScaler, acceda al archivo svm.conf mediante el siguiente comando:

      vim /mpsconfig/svm.conf

    2. Agregue las rutas estáticas en el archivo svm.conf.

      Por ejemplo: route add -net 192.168.0.0/24 101.xx.xx.112.

Descarga los archivos de implementación de ejemplo de GitHub

  1. Usa el comando git clone https://github.com/citrix/citrix-k8s-ingress-controller.git para clonar el repositorio de git hub en el nodo maestro.

  2. Para acceder a los YAML:

    cd citrix-k8s-ingress-controller/example/servicegraph-demo/

Agregar parámetros en el archivo CPX YAML

Nota

Si usa CPX 58.x o una versión posterior, debe usar una contraseña que no sea nsroot al registrarse en el agente. Para garantizar la seguridad, es obligatorio cambiar la contraseña del agente NetScaler 61.x o versiones posteriores. Si su agente de NetScaler se actualiza a 61.x o a la versión más reciente, debe asegurarse de usar CPX 58.x o una versión posterior.

Debe incluir los siguientes parámetros en el cpx.yamlarchivo para garantizar el registro de CPX en NetScaler Console:

- name: "NS_MGMT_SERVER"
  value: "xx.xx.xx.xx"
- name: "NS_MGMT_FINGER_PRINT"
  value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
- name: "NS_HTTP_PORT"
  value: "9080"
- name: "NS_HTTPS_PORT"
  value: 9443"
- name: "NS_MGMT_USER"
  value: "nsroot"
- name: "NS_MGMT_PASS"
  value: <your password>
- name: "LOGSTREAM_COLLECTOR_IP"
  value: "xx.xx.xx.xx"

<!--NeedCopy-->

Archivo CPX YAML

  • NS_MGMT_SERVER: indica la dirección IP del agente

  • NS_MGMT_FINGER_PRINT: indica la autenticación de CPX en el agente. Para obtener la huella digital:

    1. En NetScaler Console, vaya a Infraestructura > Instancias > Agentes

    2. Seleccione el agente y luego haga clic en Ver huella digital

      Fingerprint

  • NS_HTTP_PORT — Indica el puerto HTTP para la comunicación

  • NS_HTTPS_PORT — Indica el puerto HTTPS para la comunicación

  • NS_MGMT_USER: indica el nombre de usuario

  • NS_MGMT_PASS: indica la contraseña. Especifique una contraseña de su elección

  • LOGSTREAM_COLLECTOR_IP: indica la dirección IP del agente, donde se debe habilitar el protocolo Logstream para transferir los datos de registro de CPX a NetScaler Console

Agregue una instancia VPX o SDX o MPX o BLX en NetScaler Console

Para obtener los análisis de instancias de NetScaler de nivel 1 en el gráfico de servicio, debe agregar la instancia VPX/SDX/MPX/BLX en NetScaler Console y habilitar Web Insight. Debe habilitar Web Insight for NetScaler Console para mostrar los detalles de las transacciones web de la instancia VPX/SDX/MPX/BLX.

  1. Vaya a Infraestructura > Instancias > NetScaler

  2. Haga clic en la opción Agregar para agregar la instancia. Para obtener más información, consulte Agregar instancias en NetScaler Console

  3. Después de agregar la instancia, seleccione el servidor virtual y habilite Web Insight. Para obtener más información, consulte Administrar licencias y habilitar el análisis en servidores virtuales

Agregue un clúster de Kubernetes en NetScaler Console

Para agregar el clúster de Kubernetes:

  1. Inicie sesión en NetScaler Console con las credenciales de administrador.

  2. Vaya a Infraestructura > Orquestación > Kubernetes > Clúster. Se muestra la página Clústeres.

  3. Haga clic en Agregar.

  4. En la página Agregar clúster, especifique los siguientes parámetros:

    1. Nombre: especifique un nombre de su elección.

    2. URL del servidor de API: puede obtener los detalles de la URL del servidor de API en el nodo maestro de Kubernetes.

      1. En el nodo principal de Kubernetes, ejecuta el comando kubectl cluster-info.

        URL del servidor API

      2. Introduce la URL que aparece para “Se está ejecutando el archivo maestro de Kubernetes”.

    3. Token de autenticación: especifique el token de autenticación. El token de autenticación es necesario para validar el acceso para la comunicación entre el clúster de Kubernetes y NetScaler Console. Para generar un token de autenticación:

      En el nodo maestro de Kubernetes:

      1. Utilice el siguiente YAML para crear una cuenta de servicio:

        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
        <!--NeedCopy-->
        
      2. Ejecute kubectl create -f <yaml file>.

        Se crea la cuenta de servicio.

      3. Ejecute kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name> para vincular el rol de clúster a la cuenta de servicio.

        La cuenta de servicio ahora tiene acceso a todo el clúster.

        Se genera automáticamente un token al crear la cuenta de servicio.

      4. Ejecute kubectl describe sa <name> para ver el token.

      5. Para obtener la cadena secreta, ejecute kubectl describe secret <token-name>.

        Generar token

    4. Seleccione el agente de la lista.

      Nota

      Asegúrese de seleccionar el mismo agente que ha agregado en CPX YAML.

    5. Haga clic en Crear.

      agregar clúster

Implementar una aplicación de microservicio de ejemplo

En el nodo maestro:

  1. Ejecutekubectl create -f namespace.yaml para crear un espacio de nombres.

  2. Implemente microservicios, entrada y secretos de hotdrink mediante los siguientes comandos:

    kubectl create -f team_hotdrink.yaml -n sg-demo

    kubectl create -f hotdrink-secret.yaml -n sg-demo

Implemente CPX y registre CPX en NetScaler Console

  1. Ejecute kubectl create -f rbac.yaml para implementar el rol del clúster y el enlace del clúster.

  2. Ejecutekubectl create -f cpx.yaml -n sg-demo para implementar CPX.

Después de la implementación, el registro CPX se realiza automáticamente.

Habilitar la selección automática de servidores virtuales para licencias

Nota

Asegúrese de tener suficientes licencias de servidor virtual. Para obtener más información, consulte Licencias

Después de agregar el clúster de Kubernetes en NetScaler Console, debe asegurarse de seleccionar automáticamente los servidores virtuales para la concesión de licencias. Los servidores virtuales CPX deben tener licencia para mostrar datos en el gráfico de servicio. Para seleccionar automáticamente servidores virtuales:

  1. Vaya a Configuración > Configuración de licencias y análisis de NetScaler Console .

  2. En Resumen de licencia de servidor virtual, habilite la selección automática de servidores virtuales y la selección automática de servidores virtuales no direccionables.

    Seleccionar automáticamente el servidor virtual

Habilitar la configuración de transacciones web y transacciones TCP

Después de agregar el clúster de Kubernetes y habilitar los servidores virtuales de selección automática, cambie la configuración de transacciones web y la configuración de transacciones TCP a Todos.

  1. Vaya a Configuración > Configuración de análisis .

    Aparece la página de configuración.

  2. Haga clic en Habilitar funciones para Analytics.

  3. En Configuración de transacciones web, selecciona Todo.

    web-transaction-settings

  4. En Configuración de transacciones TCP, seleccione Todo.

    TCP

  5. Haga clic en Aceptar.

Enviar tráfico a microservicios

A continuación, debe enviar el tráfico a los microservicios para completar el gráfico de servicios en NetScaler Console.

  1. Ejecute kubectl get svc -n sg-demo para exponer CPX a través de NodePort.

    NodePort

  2. Modifique el archivo etc/host y cree una entrada IP de dominio para hotdrink.beverages.com

    Ahora puede acceder al microservicio utilizando https://hotdrink.beverages.com