He instalado helm 2.6.2 en el clúster de kubernetes 8. helm init
funcionó bien. pero cuando lo ejecuto helm list
dando este error.
helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
¿Cómo solucionar este mensaje de error de RABC?
kubernetes
kubernetes-helm
sfgroups
fuente
fuente
--clusterrole=cluster-admin
, lo que sin duda solucionará los problemas de permisos, pero puede que no sea la solución que desea. Es mejor crear sus propias cuentas de servicio, roles (clúster) y enlaces de roles (clúster) con los permisos exactos que necesita.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"}}}}'
consigoError from server (NotFound): deployments.extensions "tiller-deploy" not found
Respuesta más segura
La respuesta aceptada brinda acceso de administrador completo a Helm, que no es la mejor solución en cuanto a seguridad. Con un poco más de trabajo, podemos restringir el acceso de Helm a un espacio de nombres en particular. Más detalles en la documentación de Helm .
Defina un rol que le permita a Tiller administrar todos los recursos
tiller-world
como enrole-tiller.yaml
:Entonces corre:
en
rolebinding-tiller.yaml
,Entonces corre:
Luego, puede ejecutar
helm init
para instalar Tiller en eltiller-world
espacio de nombres.Ahora prefija todos los comandos con
--tiller-namespace tiller-world
o establezcaTILLER_NAMESPACE=tiller-world
en sus variables de entorno.Más respuesta a prueba de futuro
Deja de usar Tiller. Helm 3 elimina por completo la necesidad de Tiller. Si está usando Helm 2, puede usarlo
helm template
para generar el yaml desde su gráfico de Helm y luego ejecutarlokubectl apply
para aplicar los objetos a su clúster de Kubernetes.fuente
--tiller-namespace tiller-world
o establecerTILLER_NAMESPACE=tiller-world
en sus variables de entorno.Helm se ejecuta con una cuenta de servicio "predeterminada". Debe proporcionarle permisos.
Para permisos de solo lectura:
Para acceso de administrador: Ej .: para instalar paquetes.
fuente
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
, y luego correrhelm list
, todavía obtengoError: configmaps is forbidden: User "system:serviceaccount:tiller:default" cannot list configmaps in the namespace "tiller": no RBAC policy matched
La cuenta de servicio predeterminada no tiene permisos de API. Es probable que a Helm se le deba asignar una cuenta de servicio y que esa cuenta de servicio tenga permisos de API. Consulte la documentación de RBAC para otorgar permisos a las cuentas de servicio: https://kubernetes.io/docs/admin/authorization/rbac/#service-account-permissions
fuente
kubectl apply -f your-config-file-name.yaml
y luego actualice la instalación del timón para usar serviceAccount:
helm init --service-account tiller --upgrade
fuente
Recibí este error al intentar instalar tiller en modo fuera de línea, pensé que la cuenta de servicio 'tiller' no tenía suficientes derechos, pero resulta que una política de red estaba bloqueando la comunicación entre tiller y el api-server.
La solución fue crear una política de red para el timón que permitiera todas las comunicaciones de salida del timón.
fuente
export TILLER_NAMESPACE=<your-tiller-namespace>
Me lo resolvió, si<your-tiller-namespace>
no es asíkube-system
. Esto apunta al cliente de Helm al espacio de nombres correcto de Tiller.fuente
Si está utilizando un clúster EKS de AWS y se enfrentan a la cuestión prohibido ( por ejemplo :
forbidden: User ... cannot list resource "jobs" in API group "batch" in the namespace "default"
a continuación, esto funcionó para mí:Solución:
fuente