Instalei o helm 2.6.2 no cluster do Kubernetes 8. helm init
funcionou bem. mas quando executo helm list
dando esse erro.
helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
Como corrigir esta mensagem de erro RABC?
kubernetes
kubernetes-helm
sfgroups
fonte
fonte
--clusterrole=cluster-admin
, o que certamente corrigirá problemas de permissões, mas pode não ser a correção que você deseja. É melhor criar suas próprias contas de serviço, funções (cluster) e vinculações de funções (cluster) com as permissões exatas de que você precisa.The accepted answer gives full admin access to Helm which is not the best solution security wise
(consulte stackoverflow.com/a/53277281/2777965 ).kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
, receboError from server (NotFound): deployments.extensions "tiller-deploy" not found
Resposta mais segura
A resposta aceita dá acesso de administrador total ao Helm, o que não é a melhor solução em termos de segurança. Com um pouco mais de trabalho, podemos restringir o acesso do Helm a um determinado namespace. Mais detalhes na documentação do Helm .
Defina uma função que permita ao Tiller gerenciar todos os recursos
tiller-world
emrole-tiller.yaml
:Então corra:
Em
rolebinding-tiller.yaml
,Então corra:
Depois disso, você pode executar
helm init
para instalar o Tiller notiller-world
namespace.Agora prefixe todos os comandos com
--tiller-namespace tiller-world
ou definaTILLER_NAMESPACE=tiller-world
em suas variáveis de ambiente.Mais respostas à prova de futuro
Pare de usar o Tiller. O Helm 3 elimina completamente a necessidade do Leme. Se você estiver usando o Helm 2, poderá usar
helm template
para gerar o yaml a partir do gráfico do Helm e, em seguida, executarkubectl apply
para aplicar os objetos ao cluster do Kubernetes.fonte
--tiller-namespace tiller-world
ou definirTILLER_NAMESPACE=tiller-world
em suas variáveis de ambiente.O Helm é executado com uma conta de serviço "padrão". Você deve fornecer permissões para ele.
Para permissões somente leitura:
Para acesso de administrador: Ex: para instalar pacotes.
fonte
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
,helm list
eu ainda consigo correrError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
A conta de serviço padrão não tem permissões de API. O Helm provavelmente precisa ser atribuído a uma conta de serviço, e essa conta de serviço deve receber permissões de API. Consulte a documentação do RBAC para conceder permissões a contas de serviço: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
fonte
kubectl apply -f your-config-file-name.yaml
e atualize a instalação do helm para usar serviceAccount:
helm init --service-account tiller --upgrade
fonte
Recebi este erro ao tentar instalar o tiller no modo offline. Achei que a conta de serviço 'tiller' não tinha direitos suficientes, mas descobri que uma política de rede estava bloqueando a comunicação entre o tiller e o api-server.
A solução foi criar uma política de rede para o leme permitindo toda a comunicação de saída do leme
fonte
export TILLER_NAMESPACE=<your-tiller-namespace>
resolveu para mim, se<your-tiller-namespace>
não forkube-system
. Isso aponta o cliente Helm para o namespace Tiller certo.fonte
Se você estiver usando um cluster EKS da AWS e estiver enfrentando o problema proibido ( por exemplo :
forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"
isso funcionou para mim:Solução:
fonte