Depuración de componentes de Calico

Nube privada virtual Infraestructura clásica

Puede experimentar problemas con los componentes de Calico como, por ejemplo, pods que no despliegan o problemas de red intermitentes.

Puede experimentar problemas con los componentes de Calico como, por ejemplo, pods que no despliegan o problemas de red intermitentes.

El operador « Calico » determina el número de pods de « calico-typha » en función del número de nodos de trabajo del clúster y no tiene en cuenta los nodos marcados como «tainted». Si tienes menos de 3 nodos sin marcas en tu clúster, o si tienes un clúster muy grande con un número reducido de nodos sin marcas, es posible que uno o varios pods de « calico-typha » se queden atascados en el estado « Pending », ya que el pod no puede encontrar un nodo sin marcas en el que ejecutarse. Normalmente, esto no causa ningún problema siempre que haya al menos un calico-typha pod en estado de Ejecución. Sin embargo, para una alta disponibilidad se recomienda tener al menos dos calico-typha pods siempre en ejecución. Como práctica recomendada, asegúrese de que haya suficientes nodos no contaminados para ejecutar todos los calico-typha vainas que son creadas por el Calico operador.

Calico Los problemas de red pueden resultar difíciles de diagnosticar sin un registro detallado. El nivel de registro predeterminado para los componentes de Calico está establecido en « info », lo que proporciona información operativa básica, pero puede que no incluya suficientes detalles para resolver problemas complejos de red.

Aumenta el nivel de registro de los componentes de Calico a debug para recopilar información más detallada sobre el problema. El registro de nivel de depuración proporciona información detallada que puede ayudar a identificar la causa principal de los problemas de red.

Aumento del nivel de registro de los componentes de calico-typha

Siga estos pasos para aumentar el nivel de registro del componente de calico-typha.

  1. Ejecute el mandato siguiente para editar el despliegue de calico-typha.

    Para « 1.29 » y versiones posteriores:

    kubectl edit deploy calico-typha -n calico-system
    

    Para 1.28 y anteriores:

    kubectl edit deploy calico-typha -n kube-system
    
  2. Cambie la variable de entorno TYPHA_LOGSEVERITYSCREEN de info a debug.

          containers:
        - env:
          - name: TYPHA_LOGSEVERITYSCREEN
            value: debug
    
  3. Guarde y cierre el archivo para aplicar los cambios y reinicie el despliegue de calico-typha.

Aumento del nivel de registro de los componentes de calico-cni

Siga estos pasos para aumentar el nivel de registro del componente de calico-cni.

  1. Ejecute el mandato siguiente para editar el mapa de configuración de calico-config.

    kubectl edit cm -n kube-system calico-config
    
  2. Cambie la variable de entorno de cni_network_config > plugins > log_level a debug.

      cni_network_config: |-
      {
        "name": "k8s-pod-network",
        "cniVersion": "0.3.1",
        "plugins": [
          {
            "type": "calico",
            "log_level": "debug",
    
  3. Guarde y cierre el archivo. El cambio no entrará en vigor hasta que se reinicien los pods de calico-node.

  4. Reinicie los pods de calico-node para aplicar los cambios.

    kubectl rollout restart daemonset/calico-node -n kube-system
    

    Salida de ejemplo

    daemonset.apps/calico-node restarted
    

Aumento del nivel de registro de los componentes de calico-node

Siga estos pasos para aumentar el nivel de registro del componente de calico-node.

  1. Ejecute el mandato siguiente:

    Para « 1.29 » y versiones posteriores:

    kubectl edit ds calico-node -n calico-system
    

    Para 1.28 y anteriores:

    kubectl edit ds calico-node -n kube-system
    
  2. Debajo del par de nombre y valor de FELIX_USAGEREPORTINGENABLED (o después de cualquiera de los pares de nombre y valor de de variable de entorno de FELIX_*), añada la entrada siguiente.

    - name: FELIX_LOGSEVERITYSCREEN
      value: Debug
    
  3. Guarde el cambio. Después de guardar los cambios, todos los pods del daemonset de calico-node completan una actualización continua que aplica los cambios. calico-cni también aplica los cambios en los niveles de registro en el mapa de configuración de kube-system/calico-config.

Aumento del nivel de registro de los componentes de calico-kube-controllers

Siga estos pasos para aumentar el nivel de registro del componente de calico-kube-controllers.

  1. Modifica la implementación ejecutando el siguiente comando.

    Para « 1.29 » y versiones posteriores:

    kubectl edit deploy calico-kube-controllers -n calico-system
    

    Para 1.28 y anteriores:

    kubectl edit deploy calico-kube-controllers -n kube-system
    
  2. Debajo el par de nombre y valor de DATASTORE_TYPE, añada la entrada siguiente.

    - name: LOG_LEVEL
      value: debug
    
  3. Guarde el cambio. El pod de calico-kube-controllers se reinicia y aplica los cambios.

Recopilación de registros de Calico

  1. Enumera los pods y los nodos de tu clúster y anota el nombre del pod, la dirección IP del pod y el nodo de trabajo que presenta el problema.

    kubectl get pods -o wide -n kube-system
    
  2. Obtenga los registros para el pod de calico-node en el nodo de trabajador donde se ha producido el problema.

    Para « 1.29 » y versiones posteriores:

    kubectl logs calico-typha-aaa11111a-aaaaa -n calico-system
    

    Para 1.28 y anteriores:

    kubectl logs calico-typha-aaa11111a-aaaaa -n kube-system
    
  3. Obtenga registros del pod de calico-kube-controllers.

    Para « 1.29 » y versiones posteriores:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n calico-system
    

    Para 1.28 y anteriores:

    kubectl logs calico-kube-controllers-11aaa11aa1-a1a1a -n kube-system
    
  4. Siga las instrucciones de Depuración mediante kubectl exec para obtener /var/log/syslog, containerd.log, kubelet.log y kern.log del nodo de trabajador.