Solución de problemas de NetScaler CPX

En este documento se explica cómo solucionar los problemas que puede encontrar al utilizar NetScaler CPX. Con este documento, puede recopilar registros para determinar las causas y aplicar soluciones para algunos de los problemas comunes relacionados con la instalación y la configuración de NetScaler CPX.

  • ¿Cómo puedo ver los registros de NetScaler CPX?

    Puede ver los registros de NetScaler CPX mediante el comando kubectl logs si NetScaler CPX se implementa con la opción tty:true. Puede ejecutar el siguiente comando para mostrar los registros:

     kubectl logs <pod-name> [-c <container-name>] [-n <namespace-name>]
    

    Por ejemplo,

     kubectl logs cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc
    

    A continuación, se muestra un ejemplo de la implementación de pods de NetScaler CPX con la opción tty:true:

       containers:
         - name: cpx-ingress
           image: "quay.io/citrix/citrix-k8s-cpx-ingress:13.0-58.30"
           tty: true
           securityContext:
              privileged: true
           env:
    
     <!--NeedCopy-->
    

    Puede encontrar más registros de arranque en el archivo /cpx/log/boot.log del sistema de archivos NetScaler CPX.

    Nota: Para obtener el nombre del pod, ejecute el comando kubectl get pods -o wide.

  • ¿Cómo puedo recopilar el paquete de soporte técnico de NetScaler CPX?

    Puede ejecutar el siguiente comando en la interfaz shell del nodo principal de Kubernetes para recopilar el paquete de soporte técnico de NetScaler CPX:

     kubectl exec <cpx-pod-name> [-c <cpx-container-name>] [-n <namespace-name>] /var/netscaler/bins/cli_script.sh "show techsupport"
    

    Puede ver el paquete de soporte técnico en el directorio /var/tmp/support del sistema de archivos de NetScaler CPX. Use scp o kubectl cp para copiar el paquete de soporte técnico de NetScaler CPX al destino deseado.

    Ejemplo:

     root@localhost# kubectl exec cpx-ingress1-55b9b6fc75-t5kc6 -c cpx -n citrix-adc /var/netscaler/bins/cli_script.sh "show techsupport"
     exec: show techsupport
       Scope:  NODE
     Done
     root@localhost# kubectl cp cpx-ingress1-55b9b6fc75-t5kc6:var/tmp/support/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz -c cpx
     root@localhost# ll /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz
     -rw-r--r-- 1 root root 1648109 Aug 31 13:23 /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz
    
  • ¿Por qué se bloquea el pod de NetScaler CPX durante el arranque?

    Puede comprobar el estado del pod con el comando kubectl describe pods. Ejecute el siguiente comando para conocer el estado del pod:

     kubectl describe pods <pod-name> [-c <container-name>] [-n <namespace-name>]
    

    Ejemplo:

     kubectl describe pods cpx-ingress1-69b9b8c648-t8bgn
    

    Si los eventos del pod muestran que el contenedor se inició, debe comprobar los registros del pod.

  • ¿Cómo copio archivos entre el pod de NetScaler CPX y el nodo maestro de Kubernetes?

    Se recomienda utilizar la función de montaje de volumen de docker para montar el directorio /cpx en el sistema de archivos del host. Si un contenedor NetScaler CPX sale de los volcados de núcleo, los registros y otros datos importantes están disponibles en el punto de montaje.

    Puede usar cualquiera de los siguientes comandos para copiar archivos entre el pod de NetScaler CPX y el nodo maestro de Kubernetes:

    kubectl cp: Puede ejecutar este comando para copiar archivos del pod al nodo:

     kubectl cp <pod-name>:<absolute-src-path> <dst-path> [-c <container-name>] [-n <namespace-name>]
    

    Ejemplo:

     root@localhost:~# kubectl cp cpx-ingress-596d56bb6-zbx6h:cpx/log/boot.log /tmp/cpx-boot.log -c cpx-ingress
     root@localhost:~# ll /tmp/cpx-boot.log
     -rw-r--r-- 1 root root 7880 Sep 11 00:07 /tmp/cpx-boot.log
    

    scp: puede usar el comando para copiar archivos entre el pod de NetScaler CPX y el nodo de Kubernetes. Ejecute el siguiente comando para copiar archivos del pod al nodo. Cuando se le pida la contraseña, proporcione la contraseña para el usuario SSH:

     scp <user>@<pod-ip>:<absolute-src-path> <dst-path>
    

    Ejemplo:

     root@localhost:~# scp nsroot@192.168.29.198:/cpx/log/boot.log /tmp/cpx-boot.log
     nsroot@192.168.29.198's password:
     boot.log
     100% 7880     5.1MB/s   00:00
     root@localhost:~#
    
  • ¿Cómo capturo paquetes en NetScaler CPX?

    Para capturar paquetes en NetScaler CPX, inicie la interfaz shell de NetScaler CPX mediante el comando kubectl exec. Ejecute el siguiente comando para iniciar la interfaz shell del pod de NetScaler CPX:

         kubectl exec -it pod-name [-c container-name] [-n namespace-name] bash
    

    Ejemplo:

         kubectl exec -it cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc bash
    

    Y ejecute el siguiente comando para iniciar la captura de paquetes:

         cli_script.sh “start nstrace -size 0”
    

    Si quiere detener la captura de paquetes en curso, ejecute el siguiente comando:

         cli_script.sh “stop nstrace”
    

    Puede ver los paquetes capturados en un archivo .cap en el directorio /cpx/nstrace/time-stamp en el sistema de archivos NetScaler CPX.

  • ¿Por qué el servidor de licencias no está configurado incluso cuando NetScaler CPX se implementa con la variable de entorno LS_IP=<ADM-IP>?

    Asegúrese de que se pueda acceder al servidor de licencias desde el nodo en el que se implementa NetScaler CPX. Puede usar el comando ping <ADM-IP> para verificar la conectividad del nodo NetScaler CPX a NetScaler ADM.

    Si se puede acceder a NetScaler ADM desde el nodo, debe verificar los registros de configuración del servidor de licencias en el archivo /cpx/log/boot.log. También puede comprobar la configuración del servidor de licencias mediante el siguiente comando en la interfaz shell del pod de NetScaler CPX:

     cli_script.sh "show licenseserver"
    

    Ejemplo:

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserver"
     exec: show licenseserver
     ServerName:  10.106.102.199Port:  27000 Status:  1   Grace:  0  Gptimeleft:  720
     Done
    
  • ¿Por qué la licencia agrupada no se configura en NetScaler CPX incluso después de una configuración correcta del servidor de licencias en NetScaler CPX?

    Compruebe los registros de configuración de licencias en el archivo /cpx/log/boot.log. También puede verificar la licencia agrupada configurada en NetScaler CPX mediante el siguiente comando en la interfaz shell del pod de NetScaler CPX:

     cli_script.sh “show capacity”
    

    Por ejemplo,

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show capacity"
     exec: show capacity
     Actualbandwidth:  1000  MaxVcpuCount:  2  Edition:  Platinum      Unit:  Mbps   Bandwidth:  0`  `Maxbandwidth:  40000        Minbandwidth:  20       Instancecount:  1
     Done
    

    Además, asegúrese de que los archivos de licencia requeridos se carguen en el servidor de licencias. También puede verificar las licencias disponibles en el servidor de licencias una vez que se haya configurado correctamente en NetScaler CPX mediante el siguiente comando. Ejecute el comando en la interfaz shell del pod de NetScaler CPX:

     cli_script.sh “sh licenseserverpool”
    

    Ejemplo:

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserverpool"
     exec: show licenseserverpool
         Instance Total                     : 5
         Instance Available                 : 4
         Standard Bandwidth Total           : 0 Mbps
         Standard Bandwidth Availabe        : 0 Mbps
         Enterprise Bandwidth Total         : 0 Mbps
         Enterprise Bandwidth Available     : 0 Mbps
         Platinum Bandwidth Total           : 10.00 Gbps
         Platinum Bandwidth Available       : 9.99 Gbps
         CP1000 Instance Total              : 100
         CP1000 Instance Available          : 100
       Done
     <!--NeedCopy-->
    
  • ¿Por qué las llamadas a la API NITRO obtienen una respuesta de rechazo de conexión de NetScaler CPX?

    El puerto predeterminado para las API de NITRO es 9080 (no seguro) y 9443 (seguro) a partir de la versión 12.1 de NetScaler CPX en adelante. Asegúrese de que el puerto NITRO de NetScaler CPX al que intenta acceder esté expuesto en el pod. Puede ejecutar el comando kubectl describe para ver el puerto expuesto y asignado del contenedor NetScaler CPX en la sección contenedor NetScaler CPX:

     kubectl describe pods <pod-name> | grep -i port
    

    Ejemplo:

          ng472 | grep -i port
             Ports:          80/TCP, 443/TCP, 9080/TCP, 9443/TCP
             Host Ports:     0/TCP, 0/TCP, 0/TCP, 0/TCP
               NS_HTTP_PORT:            9080
               NS_HTTPS_PORT:           9443
             Port:          <none>
             Host Port:     <none>
               NS_PORT:                 80
     <!--NeedCopy-->
    
  • ¿Por qué el proceso NSPPE en NetScaler CPX consume la mayor parte del uso de la CPU incluso cuando no hay tráfico o hay poco tráfico?

    Si NetScaler CPX se implementa con la variable de entorno CPX_CONFIG=’{“YIELD”:”NO”}', el proceso NSPPE consume el 100 por ciento de uso de la CPU incluso cuando no hay tráfico o hay poco tráfico. Si quiere que el proceso NSPPE no consuma el uso de la CPU, debe implementar NetScaler CPX sin la variable de entorno CPX_CONFIG=’{“YIELD”:”NO”}. De forma predeterminada, el proceso NSPPE en CPX está configurado para no acaparar ni consumir el uso de la CPU.

  • ¿Por qué NetScaler CPX no figura en NetScaler ADM incluso cuando se implementó con las variables de entorno necesarias para registrarse en NetScaler ADM?

    Puede encontrar los registros para el registro de NetScaler CPX con NetScaler ADM en el archivo /cpx/log/boot.log del sistema de archivos NetScaler CPX.

    Puede comprobar la accesibilidad de la dirección IP de NetScaler ADM desde el pod de NetScaler CPX mediante el comando ping. Además, asegúrese de que todas las variables de entorno necesarias para el registro de NetScaler ADM estén configuradas para el contenedor NetScaler CPX.

    • NS_MGMT_SERVER: Especifica la dirección ADM-IP o el FQDN.
    • HOST: Especifica la dirección IP del nodo.
    • NS_HTTP_PORT: Especifica el puerto HTTP- asignado en el nodo.
    • NS_HTTPS_PORT: Especifica el puerto HTTPS asignado en el nodo.
    • NS_SSH_PORT: Especifica el puerto SSH asignado en el nodo.
    • NS_SNMP_PORT: Especifica el puerto SNMP asignado en el nodo.
    • NS_ROUTABLE: La dirección IP del pod de NetScaler CPX no se puede redirigir desde el exterior.
    • NS_MGMT_USER: Especifica el nombre de usuario de ADM.
    • NS_MGMT_PASS: Especifica la contraseña de ADM.
  • ¿Por qué cli_script.sh se muestra un mensaje de error de nombre de usuario o contraseña no válidos después de cambiar la contraseña del usuario nsroot?

    El comando cli_script.sh es una utilidad de envoltura para NSCLI en NetScaler CPX. Ejecuta el primer argumento como cadena de comandos o ruta de archivo y el segundo argumento es opcional, que son las credenciales. Si se cambia la contraseña del usuario nsroot, debe proporcionar credenciales como segundo argumento para cli_script.sh. Puede ejecutar el siguiente comando para ejecutar NSCLI con credenciales:

     cli_script.sh “<command>” “:<username>:<password>”
    

    Ejemplo:

     root@087a1e34642d:/# cli_script.sh "show ns ip"
     exec: show ns ip
    
     ERROR: Invalid username or password
    
     root@087a1e34642d:/# cli_script.sh "show ns ip" ":nsroot:nsroot123"
    
     exec: show ns ip
    
     Ipaddress        Traffic Domain         Type             Mode     Arp     Icmp     Vserver  State        
     --------------   ----                   ----             ---     ----     -------  ------   -----
     172.17.0.3       0                   NetScaler IP     Active   Enabled  Enabled  NA       Enabled
     192.0.0.1        0                   SNIP             Active   Enabled  Enabled  NA       Enabled
     Done
    
  • ¿Por qué falla SSH a NetScaler CPX con un usuario root y nsroot?

    A partir de la versión 13.0-64.35, NetScaler CPX genera una contraseña predeterminada y la actualiza para los usuarios SSH, root y nsroot. Si no ha cambiado la contraseña manualmente, la contraseña para los usuarios de SSH se puede encontrar /var/deviceinfo/random_id en el sistema de archivos de NetScaler CPX.

Solución de problemas de NetScaler CPX

En este artículo