Referencia del código de error de Anthos

Los mensajes de error de Anthos constan de un ID de error con el formato APME1234, en el que 1234 es un número único seguido de una descripción del problema y una sugerencia para solucionarlo. En este documento, se enumera cada uno de esos mensajes de error.

APME1000 ImageAccessError

Este error indica que el componente que lo produjo no puede encontrar una o más de las imágenes requeridas en el registro especificado.

Verifica lo siguiente:

  • Las imágenes requeridas existen en Container Registry.
  • Se puede acceder al registro desde el origen del error.
  • La estación de trabajo tiene permiso para LEER y EXTRAER del registro.
  • La estación de trabajo tiene el archivo ${HOME}/.docker/config.json y está configurado de forma correcta para acceder al registro.

APME1001 InvalidRegistryInputError

El valor de la marca --private-registry debe cumplir con el formato hostname[:port]/repository/location y no puede comenzar con un esquema (como https://). El nombre de host no puede ser localhost ni 127.0.0.1. Kubernetes usa el valor para recuperar imágenes.

Ejemplos de valores de marcas:

  • fictional.registry.example/repository/location
  • fictional.registry.example:10443/repository/location
  • 10.200.0.2/library

APME2000 KubeContextNotFoundError

Este error indica que no se puede encontrar el kubecontext especificado.

Verifica lo siguiente:

  • El archivo KUBECONFIG existe.
  • El archivo $HOME/.kube/config existe cuando no se especifica la variable de entorno KUBECONFIG.
  • El contexto existe en el archivo KUBECONFIG.

APME2001 UserClusterKubeconfigError

Este error indica que no se puede encontrar kubeconfig para el clúster de usuarios.

Verifica lo siguiente:

  • El espacio de nombres cluster-CLUSTER_NAME existe en el clúster de administrador.
  • Los objetos de clúster existen en el espacio de nombres cluster-CLUSTER_NAME.
  • El secreto CLUSTER_NAME-kubeconfig existe en el espacio de nombres cluster-CLUSTER_NAME.
  • Tienes todos los permisos necesarios para acceder a los objetos mencionados.

APME2002 ManagementCenterNotSchedulableError

Este error indica que el centro de administración de Anthos no se puede programar para ejecutarse en los nodos de un clúster.

Por lo general, este error puede suceder si el clúster de administrador no tiene ningún nodo trabajador y, de forma predeterminada, no programa cargas de trabajo en el nodo del plano de control por motivos de seguridad.

Para solucionar este problema, haz lo siguiente:

  1. [Recomendado] Agrega un NodePool de trabajador al clúster de administrador.

    KUBECONFIG=${ADMIN_KUBECONFIG} kubectl apply -f <path/to/example-nodepool.yaml>
    

    YAML de ejemplo:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-admin
    spec:
      clusterName: admin
      nodes:
      - address: <IP address of the worker node machine. e.g. 10.200.0.4>
    
  2. Quita el taint del plano de control de los nodos del plano de control, lo que permitirá que las cargas de trabajo que no sean del sistema se ejecuten en los nodos del plano de control.

    NOTA: Considera las desventajas de esta solución:

    • Disponibilidad del plano de control: Ejecutar cargas de trabajo adicionales aumenta la entropía en los nodos del plano de control. Si la máquina ya tiene recursos limitados, está mal configurada o la carga de trabajo tiene un comportamiento inesperado, puede tener un impacto negativo en el servidor de la API de Kubernetes.

    • Seguridad: Los contenedores no son un límite de seguridad sólido. Si una carga de trabajo maliciosa sale del contenedor, puede obtener el control del plano de control del clúster. Si el clúster administra otros clústeres de usuarios, el atacante puede acceder a las credenciales en el clúster de administrador y obtener el control de los clústeres de usuarios también.

    • Costo: Anthos no cobra por los nodos del plano de control mientras el taint node-role.kubernetes.io/master:NoSchedule esté presente. Después de quitar el taint y habilitar las cargas de trabajo de los usuarios para que se ejecuten en los nodos del plano de control, se cobrarán como cualquier otro nodo. Consulta la página de precios para obtener información detallada sobre los precios.

    Este es un comando de ejemplo para permitir que las cargas de trabajo se ejecuten en todos los nodos del plano de control:

    KUBECONFIG=${ADMIN_KUBECONFIG} kubectl taint nodes --all node-role.kubernetes.io/master:NoSchedule-
    

APME2003 AdminClusterNotUpgradedError

Este error indica que el clúster de administrador debe actualizarse antes de actualizar el centro de administración.

Es posible que el centro de administración de la nueva versión de Anthos requiera que se ejecute en la versión nueva del clúster de administrador.

Actualiza el archivo de configuración del clúster de administrador y ejecuta el comando actl clusters baremetal upgrade admin para completar la actualización. Consulta Actualiza el clúster de administrador para obtener instrucciones detalladas.

APME3000 AISLoginClientValidationError

Obsoleto en Anthos 1.9

APME3001 PermissionDeniedError

El error indica que no tienes los permisos suficientes para realizar la acción.

Para solucionar más problemas, haz lo siguiente:

  • Identifica la función que se asigna.

    • Método 1: Mediante la consola del centro de administración de Anthos
      • Abre la pestaña Identity and Access en la consola del centro de administración.
      • Ve a la pestaña Access en la pantalla Identity and Access para ver la función asignada.
    • Método 2: Mediante el comando de kubectl:
    kubectl get
        rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range
        .items[?(@.subjects[0].name=="{your
        account}")]}[{.roleRef.kind},{.roleRef.name}]{end}'
    
    Example: kubectl get rolebinding,clusterrolebinding --all-namespaces -o
    jsonpath='{range
    .items[?(@.subjects[0].name=="foo@bar.com")]}[{.roleRef.kind},{.roleRef.name}]{end}'
    [ClusterRole,anthos-platform-admin-read-only]
    
  • Consulta los permisos y las funciones de autorización predefinidas a fin de ver los permisos disponibles para las funciones de autorización predeterminadas.

  • Si se asigna una función de privilegio inferior y se necesita una de mayor privilegio para realizar una acción determinada, o si la función se asignó de forma incorrecta, solicita a los administradores que verifiquen si se puede otorgar el acceso.

  • Si la función tiene permisos suficientes para la acción según las funciones de autorización predefinidas y los permisos y APME3001-PermissionDeniedError se ven de forma incorrecta, informa un error en anthos-private-mode-feedback@google.com.

APME3002 AuthMethodPreflightCheckError

El error indica que la configuración del método de autenticación que se proporcionó no puede pasar la verificación previa.

Si proporcionaste una configuración de OIDC, ten en cuenta lo siguiente:

  • Verifica que la URL del proveedor de OIDC sea correcta.
  • Asegúrate de que se pueda acceder a la página de descubrimiento de configuración de OpenID https://<your OIDC provider URL>/.well-known/openid-configuration y que contenga una configuración válida.
  • Si tu proveedor de OIDC usa un certificado SSL autofirmado, asegúrate de ingresarlo en el campo del certificado del proveedor de OIDC.

APME3003 UserCredentialNotFoundError

Este error indica que la acción solicitada no se puede realizar sin una credencial de usuario.

Para realizar la solicitud, habilita la autenticación o pídele al administrador que la habilite. Consulta Autentica con OIDC para configurar la autenticación de OIDC.

APME4001 ObservabilityOperatorUpgradeError

Este error indica que se produjo un error durante la actualización de los componentes de observabilidad (como parte de la actualización de Anthos). Es posible que la pila de observabilidad actualizada siga funcionando a pesar de informar este error.

Para verificar si la pila de observabilidad actualizada funcionará, verifica la status de la condición Installed en el objeto default del tipo Observability en el espacio de nombres anthos-management-center:

kubectl get -n anthos-management-center observability default -o jsonpath='
{.status.conditions[?(@..type=="Installed")].status}{"\n"}'

Si status es True, la pila de observabilidad continúa funcionando. Los procedimientos de mitigación que se enumeran en el informe de error son opcionales. Si el estado no es True, realiza los procedimientos de mitigación que se enumeran en el informe de error.

¿Qué sigue?