Nesta página, mostramos como resolver problemas com cargas de trabalho privilegiadas que você
implanta em clusters do Autopilot do Google Kubernetes Engine (GKE).
Problemas de sincronização da lista de permissões
Ao implantar um AllowlistSynchronizer, o GKE tenta
instalar e sincronizar os arquivos de lista de permissões especificados. Se essa
sincronização falhar, o campo status do AllowlistSynchronizer
vai informar o erro.
Os campos conditions.message e managedAllowlistStatus.lastError fornecem informações detalhadas sobre o erro. Use essas informações para resolver o problema.
Problemas de implantação de carga de trabalho privilegiada
Depois de instalar uma lista de permissões, implante a carga de trabalho privilegiada
correspondente no cluster. Em alguns casos, o GKE pode
rejeitar a carga de trabalho.
Tente as seguintes opções de resolução:
Verifique se a versão do GKE do cluster atende ao requisito de versão da carga de trabalho.
Verifique se a carga de trabalho que você está implantando é aquela a que o arquivo de
lista de permissões se aplica.
Para saber por que uma carga de trabalho privilegiada foi rejeitada, solicite informações detalhadas
do GKE sobre violações da lista de permissões:
Confira uma lista das allowlists instaladas no cluster:
kubectlgetworkloadallowlist
Encontre o nome da lista de permissões que deve ser aplicada à carga de trabalho privilegiada.
Abra o manifesto YAML da carga de trabalho privilegiada em um editor de texto. Se você não conseguir acessar os manifestos YAML, por exemplo, se o processo de implantação da carga de trabalho usar outras ferramentas, entre em contato com o provedor da carga de trabalho para abrir um problema. Ignore as demais etapas.
Adicione o seguinte rótulo à seção spec.metadata.labels da especificação do pod de carga de trabalho privilegiada:
Substitua ALLOWLIST_NAME pelo nome da
lista de permissões que você recebeu na etapa anterior. Use o nome da saída do comando kubectl get workloadallowlist, não o caminho para o arquivo de lista de permissões.
Salve o manifesto e aplique a carga de trabalho ao cluster:
kubectlapply-fWORKLOAD_MANIFEST_FILE
Substitua WORKLOAD_MANIFEST_FILE pelo caminho para o
arquivo de manifesto.
A saída fornece informações detalhadas sobre quais campos na carga de trabalho
não corresponderam à lista de permissões especificada, como no exemplo a seguir:
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.
Neste exemplo, ocorrem as seguintes violações:
A carga de trabalho especifica hostNetwork: true, mas a lista de permissões não especifica hostNetwork: true.
A carga de trabalho especifica hostPID: true, mas a lista de permissões não especifica hostPID: true.
A carga de trabalho especifica um volume chamado data, mas a lista de permissões não
especifica um volume chamado data.
O contêiner especifica variáveis de ambiente chamadas ENV_VAR1 e
ENV_VAR2, mas a lista de permissões não especifica essas variáveis.
O contêiner especifica a imagem k8s.gcr.io/diff/image, mas a
lista de permissões especifica k8s.gcr.io/pause2.
O contêiner adiciona os recursos SYS_ADMIN e SYS_PTRACE, mas a lista de permissões não permite a adição deles.
O contêiner especifica uma montagem de volume chamada data, mas a lista de permissões
não especifica uma montagem de volume chamada data.
Se você estiver implantando uma carga de trabalho fornecida por um provedor terceirizado, abra um problema com esse provedor para resolver as violações. Forneça a saída
da etapa anterior no problema.
Bugs e solicitações de recursos para cargas de trabalho privilegiadas e listas de permissões
Os parceiros são responsáveis por criar, desenvolver e manter as cargas de trabalho privilegiadas e as listas de permissões. Se você encontrar um bug ou tiver um pedido de recurso para uma carga de trabalho privilegiada ou uma lista de permissões, entre em contato com o parceiro correspondente.
A seguir
Se você não encontrar uma solução para seu problema na documentação, consulte Receber suporte para mais ajuda, incluindo conselhos sobre os seguintes tópicos:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]