Los mensajes de error del modo privado 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 entornoKUBECONFIG
. - 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 nombrescluster-CLUSTER_NAME
. - Tienes todos los permisos necesarios para acceder a los objetos mencionados.
APME2002 ManagementCenterNotSchedulableError
Este error indica que el centro de administración 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:
[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>
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: El modo privado de 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 del modo privado de Anthos.
Es posible que el centro de administración de la nueva versión del modo privado 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
Para que los usuarios puedan acceder a los clústeres con sus credenciales federadas (autenticación de OIDC), los administradores deben generar ADMIN_OIDC_KUBECONFIG.
ADMIN_ACTL_AUTH_LOGIN_CONFIG=admin-actl-auth-login-config.yaml
ADMIN_OIDC_KUBECONFIG=oidc-kubeconfig
actl auth login --login-config=${ADMIN_ACTL_AUTH_LOGIN_CONFIG} --cluster=admin --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
${KUBECTL_ANTHOS_CONFIG}
es un archivo de configuración de entrada que se descargó del Centro de administración, mientras que ${ADMIN_OIDC_KUBECONFIG}
es la ubicación del archivo kubeconfig de salida. No compartas el archivo de configuración de salida con empleados ni administradores.
Para continuar, verifica los valores de entrada:
- Los valores de la marca
--login-config
y--kubeconfig
no están vacíos. - Los valores de las marcas
--login-config
y--kubeconfig
no son los mismos. - Los valores de las marcas
--login-config
y--kubeconfig
tienen rutas de archivo válidas.
Usa la marca --skip-validation
para omitir la validación.
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: Usa el centro de administración
- Abre la pestaña
Identity and Access
en el Centro de administración. - Ve a la pestaña
Access
en la pantallaIdentity and Access
para ver la función asignada.
- Abre la pestaña
- 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]
- Método 1: Usa el centro de administración
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 enanthos-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.
APME4000 VersionSupportDiscontinuedError
Este error indica que una versión obsoleta de una función de Anthos aún se está usando en uno o varios clústeres de usuario.
El nombre de la función de Anthos y la lista de clústeres de usuario se incluyen en el mensaje de error. Por ejemplo, en el siguiente mensaje, se indica que la versión 1.6.0
de Anthos Config Management está instalada en los clústeres de usuario user-cluster-2
y user-cluster-2
, que se deben actualizar.
APME4000: found clusters using the to-be-deprecated Anthos Config Management version "1.6.0": ["user-cluster-1", "user-cluster2"]
Mitigation: Please upgrade the Anthos Config Management on those clusters
En la versión 0.9, solo Anthos Config Management dejó de ser compatible con versiones anteriores. A fin de corregir este error, sigue las instrucciones para actualizar la versión de Anthos Config Management en los clústeres de usuario.