tutorial the that runs manages inside engine cluster and kubernetes kubernetes-helm

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



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