En esta página, se muestra cómo resolver problemas con cargas de trabajo privilegiadas que implementas en clústeres de Autopilot de Google Kubernetes Engine (GKE).
Problemas de sincronización de la lista de entidades permitidas
Cuando implementas un AllowlistSynchronizer, GKE intenta instalar y sincronizar los archivos de la lista de entidades permitidas que especifiques. Si falla esta sincronización, el campo status del AllowlistSynchronizer informa el error.
Los campos conditions.message y managedAllowlistStatus.lastError proporcionan información detallada sobre el error. Usa esta información para resolver el problema.
Problemas de implementación de cargas de trabajo privilegiadas
Después de instalar correctamente una lista de entidades permitidas, implementa la carga de trabajo privilegiada correspondiente en tu clúster. En algunos casos, GKE podría rechazar la carga de trabajo.
Prueba las siguientes opciones de resolución:
Asegúrate de que la versión de GKE de tu clúster cumpla con el requisito de versión de la carga de trabajo.
Asegúrate de que la carga de trabajo que implementas sea aquella a la que se aplica el archivo de la lista de entidades permitidas.
Para ver por qué se rechazó una carga de trabajo con privilegios, solicita información detallada a GKE sobre los incumplimientos de la lista de entidades permitidas:
Obtén una lista de las listas de entidades permitidas instaladas en el clúster:
kubectlgetworkloadallowlist
Busca el nombre de la lista de entidades permitidas que se debe aplicar a la carga de trabajo con privilegios.
Abre el manifiesto YAML de la carga de trabajo con privilegios en un editor de texto. Si no puedes acceder a los manifiestos de YAML, por ejemplo, si el proceso de implementación de la carga de trabajo usa otras herramientas, comunícate con el proveedor de la carga de trabajo para abrir un problema. Omite los pasos restantes.
Agrega la siguiente etiqueta a la sección spec.metadata.labels de la especificación del Pod de carga de trabajo con privilegios:
Reemplaza ALLOWLIST_NAME por el nombre de la lista de entidades permitidas que obtuviste en el paso anterior. Usa el nombre de la salida del comando kubectl get workloadallowlist, no la ruta de acceso al archivo de la lista de entidades permitidas.
Guarda el manifiesto y aplica la carga de trabajo al clúster:
kubectlapply-fWORKLOAD_MANIFEST_FILE
Reemplaza WORKLOAD_MANIFEST_FILE por la ruta de acceso al archivo de manifiesto.
El resultado proporciona información detallada sobre qué campos de la carga de trabajo no coincidieron con la lista de entidades permitidas especificada, como en el siguiente ejemplo:
Error from server (GKE Warden constraints violations): error when creating "STDIN": admission webhook "warden-validating.common-webhooks.networking.gke.io" denied the request:
===========================================================================
Workload Mismatches Found for Allowlist (example-allowlist-1):
===========================================================================
HostNetwork Mismatch: Workload=true, Allowlist=false
HostPID Mismatch: Workload=true, Allowlist=false
Volume[0]: data
- data not found in allowlist. Verify volume with matching name exists in allowlist.
Container[0]:
- Envs Mismatch:
- env[0]: 'ENV_VAR1' has no matching string or regex pattern in allowlist.
- env[1]: 'ENV_VAR2' has no matching string or regex pattern in allowlist.
- Image Mismatch: Workload=k8s.gcr.io/diff/image, Allowlist=k8s.gcr.io/pause2. Verify that image string or regex match.
- SecurityContext:
- Capabilities.Add Mismatch: the following added capabilities are not permitted by the allowlist: [SYS_ADMIN SYS_PTRACE]
- VolumeMount[0]: data
- data not found in allowlist. Verify volumeMount with matching name exists in allowlist.
En este ejemplo, se producen los siguientes incumplimientos:
La carga de trabajo especifica hostNetwork: true, pero la lista de entidades permitidas no lo hace.hostNetwork: true
La carga de trabajo especifica hostPID: true, pero la lista de entidades permitidas no lo hace.hostPID: true
La carga de trabajo especifica un volumen llamado data, pero la lista de entidades permitidas no especifica un volumen llamado data.
El contenedor especifica variables de entorno llamadas ENV_VAR1 y ENV_VAR2, pero la lista de entidades permitidas no las especifica.
El contenedor especifica la imagen k8s.gcr.io/diff/image, pero la lista de entidades permitidas especifica k8s.gcr.io/pause2.
El contenedor agrega las capacidades SYS_ADMIN y SYS_PTRACE, pero la lista de entidades permitidas no permite agregar estas capacidades.
El contenedor especifica una activación de volumen llamada data, pero la lista de entidades permitidas no especifica una activación de volumen llamada data.
Si implementas una carga de trabajo proporcionada por un proveedor externo, abre un problema con ese proveedor para resolver los incumplimientos. Proporciona el resultado del paso anterior en el problema.
Errores y solicitudes de funciones para cargas de trabajo con privilegios y listas de entidades permitidas
Los socios son responsables de crear, desarrollar y mantener sus cargas de trabajo privilegiadas y listas de entidades permitidas. Si encuentras un error o tienes una solicitud de función para una carga de trabajo privilegiada o una lista de entidades permitidas, comunícate con el socio correspondiente.
¿Qué sigue?
Si no encuentras una solución a tu problema en la documentación, consulta Obtener asistencia para obtener más ayuda, incluidos consejos sobre los siguientes temas:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-01 (UTC)"],[],[],null,["# Troubleshoot deploying privileged Autopilot workloads\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview)\n\n*** ** * ** ***\n\nThis page shows you how to resolve issues with privileged workloads that you\ndeploy in Google Kubernetes Engine (GKE) Autopilot clusters.\n\nAllowlist synchronization issues\n--------------------------------\n\nWhen you deploy an `AllowlistSynchronizer`, GKE attempts to\ninstall and synchronize the allowlist files that you specify. If this\nsynchronization fails, the `status` field of the `AllowlistSynchronizer`\nreports the error.\n\nGet the status of the `AllowlistSynchronizer` object: \n\n kubectl get allowlistsynchronizer \u003cvar translate=\"no\"\u003eALLOWLIST_SYNCHRONIZER_NAME\u003c/var\u003e -o yaml\n\nThe output is similar to the following: \n\n ...\n status:\n conditions:\n - type: Ready\n status: \"False\"\n reason: \"SyncError\"\n message: \"some allowlists failed to sync: example-allowlist-1.yaml\"\n lastTransitionTime: \"2024-10-12T10:00:00Z\"\n observedGeneration: 2\n managedAllowlistStatus:\n - filePath: \"gs://path/to/allowlist1.yaml\"\n generation: 1\n phase: Installed\n lastSuccessfulSync: \"2024-10-10T10:00:00Z\"\n - filePath: \"gs://path/to/allowlist2.yaml\"\n phase: Failed\n lastError: \"Initial install failed: invalid contents\"\n lastSuccessfulSync: \"2024-10-08T10:00:00Z\"\n\nThe `conditions.message` field and the `managedAllowlistStatus.lastError` field\nprovide detailed information about the error. Use this information to resolve\nthe issue.\n\nPrivileged workload deployment issues\n-------------------------------------\n\nAfter successfully installing an allowlist, you deploy the corresponding\nprivileged workload in your cluster. In some cases, GKE might\nreject the workload.\n\nTry the following resolution options:\n\n- Ensure that the GKE version of your cluster meets the version requirement of the workload.\n- Ensure that the workload that you're deploying is the workload to which the allowlist file applies.\n\nTo see why a privileged workload was rejected, request detailed information\nfrom GKE about allowlist violations:\n\n1. Get a list of the installed allowlists in the cluster:\n\n kubectl get workloadallowlist\n\n Find the name of the allowlist that should apply to the privileged workload.\n2. Open the YAML manifest of the privileged workload in a text editor. If you\n can't access the YAML manifests, for example if the workload deployment\n process uses other tooling, contact the workload provider to open\n an issue. Skip the remaining steps.\n\n3. Add the following label to the `spec.metadata.labels` section of the\n privileged workload Pod specification:\n\n labels:\n cloud.google.com/matching-allowlist: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eALLOWLIST_NAME\u003c/span\u003e\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eALLOWLIST_NAME\u003c/var\u003e with the name of the\n allowlist that you obtained in the previous step. Use the name from the\n output of the `kubectl get workloadallowlist` command, not the path to the\n allowlist file.\n4. Save the manifest and apply the workload to the cluster:\n\n kubectl apply -f \u003cvar translate=\"no\"\u003eWORKLOAD_MANIFEST_FILE\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eWORKLOAD_MANIFEST_FILE\u003c/var\u003e with the path to the\n manifest file.\n\n The output provides detailed information about which fields in the workload\n didn't match the specified allowlist, like in the following example: \n\n Error from server (GKE Warden constraints violations): error when creating \"STDIN\": admission webhook \"warden-validating.common-webhooks.networking.gke.io\" denied the request:\n\n ===========================================================================\n Workload Mismatches Found for Allowlist (example-allowlist-1):\n ===========================================================================\n HostNetwork Mismatch: Workload=true, Allowlist=false\n HostPID Mismatch: Workload=true, Allowlist=false\n Volume[0]: data\n - data not found in allowlist. Verify volume with matching name exists in allowlist.\n Container[0]:\n - Envs Mismatch:\n - env[0]: 'ENV_VAR1' has no matching string or regex pattern in allowlist.\n - env[1]: 'ENV_VAR2' has no matching string or regex pattern in allowlist.\n - Image Mismatch: Workload=k8s.gcr.io/diff/image, Allowlist=k8s.gcr.io/pause2. Verify that image string or regex match.\n - SecurityContext:\n - Capabilities.Add Mismatch: the following added capabilities are not permitted by the allowlist: [SYS_ADMIN SYS_PTRACE]\n - VolumeMount[0]: data\n - data not found in allowlist. Verify volumeMount with matching name exists in allowlist.\n\n In this example, the following violations occur:\n - The workload specifies `hostNetwork: true`, but the allowlist doesn't specify `hostNetwork: true`.\n - The workload specifies `hostPID: true`, but the allowlist doesn't specify `hostPID: true`.\n - The workload specifies a volume named `data`, but the allowlist doesn't specify a volume named `data`.\n - The container specifies environment variables named `ENV_VAR1` and `ENV_VAR2`, but the allowlist doesn't specify these environment variables.\n - The container specifies the image `k8s.gcr.io/diff/image`, but the allowlist specifies `k8s.gcr.io/pause2`.\n - The container adds the `SYS_ADMIN` and `SYS_PTRACE` capabilities, but the allowlist doesn't allow adding these capabilities.\n - The container specifies a volume mount named `data`, but the allowlist doesn't specify a volume mount named `data`.\n\nIf you're deploying a workload that's provided by a third-party provider,\nopen an issue with that provider to resolve the violations. Provide the output\nfrom the previous step in the issue.\n\nBugs and feature requests for privileged workloads and allowlists\n-----------------------------------------------------------------\n\nPartners are responsible for creating, developing, and maintaining their\nprivileged workloads and allowlists. If you encounter a bug or have a feature\nrequest for a privileged workload or allowlist, contact the corresponding\npartner.\n\nWhat's next\n-----------\n\n- If you can't find a solution to your problem in the documentation, see\n [Get support](/kubernetes-engine/docs/getting-support) for further help,\n including advice on the following topics:\n\n - Opening a support case by contacting [Cloud Customer Care](/support-hub).\n - Getting support from the community by [asking questions on StackOverflow](http://stackoverflow.com/questions/tagged/google-kubernetes-engine) and using the `google-kubernetes-engine` tag to search for similar issues. You can also join the [`#kubernetes-engine` Slack channel](https://googlecloud-community.slack.com/messages/C0B9GKTKJ/) for more community support.\n - Opening bugs or feature requests by using the [public issue tracker](/support/docs/issue-trackers)."]]