kubernetes - the - helm list: no se pueden enumerar los mapas de configuración en el espacio de nombres "kube-system"
helm version (5)
Respuesta más segura
La respuesta aceptada brinda acceso de administrador completo a Helm, que no es la mejor solución en 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 .
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created
Defina un rol que le permita a Tiller administrar todos los recursos en
tiller-world
como en
role-tiller.yaml
:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager
namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
Entonces corre:
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created
En
rolebinding-tiller.yaml
,
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-binding
namespace: tiller-world
subjects:
- kind: ServiceAccount
name: tiller
namespace: tiller-world
roleRef:
kind: Role
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
Entonces corre:
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created
Luego, puede ejecutar
helm init
para instalar Tiller en el espacio de nombres del
tiller-world
tiller.
$ helm init --service-account tiller --tiller-namespace tiller-world
Ahora
--tiller-namespace tiller-world
todos los comandos con
--tiller-namespace tiller-world
o establezca
TILLER_NAMESPACE=tiller-world
en sus variables de entorno.
Más respuestas a prueba de futuro
Deje de usar Tiller.
Helm 3 elimina completamente la necesidad de Tiller.
Si está utilizando Helm 2, puede usar la
helm template
para generar el yaml a partir de su gráfico Helm y luego ejecutar
kubectl apply
para aplicar los objetos a su clúster de Kubernetes.
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
He instalado helm 2.6.2 en el clúster kubernetes 8.
helm init
funcionó bien.
pero cuando 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 arreglar este mensaje de error RABC?
Helm se ejecuta con una cuenta de servicio "predeterminada". Debe proporcionarle permisos.
Para permisos de solo lectura:
kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system
Para acceso de administrador: Ej .: para instalar paquetes.
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
La cuenta de servicio predeterminada no tiene permisos de API. Es probable que Helm deba tener asignada una cuenta de servicio, y esa cuenta de servicio debe tener 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
Una vez que estos comandos:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p ''{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}''
helm init --service-account tiller --upgrade
fueron ejecutados, el problema ha sido resuelto.
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
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