Helm: Error: los mapas de configuración están prohibidos: el usuario "system:serviceaccount:kube-system:default" no puede enumerar el recurso "configmaps" en el grupo API "" en el espacio de nombres "kube-system"

Creado en 26 dic. 2018  ·  16Comentarios  ·  Fuente: helm/helm

Estoy tratando de seguir INSTALLING TILLER , pero me encuentro con el siguiente error:

$ helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
$

Salida de helm version :

$ helm version
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
$ 

Salida de kubectl version :

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:39:04Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:31:33Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
$ 

Plataforma/proveedor de la nube (AKS, GKE, Minikube, etc.):

metal desnudo, linux

posiblemente relacionado, también estoy tratando de acceder a Tiller y Control de acceso basado en roles , pero obtengo 404.

Comentario más útil

No es bueno cerrar un problema sin explicar la forma de solucionarlo :-)
Déjame hacerlo en su lugar entonces.

Error: los mapas de configuración están prohibidos: el usuario " system:serviceaccount :kube- system:default " no puede aparecer en la lista

Primero, algo de información para los novatos.
En Kubernetes hay:

  • Cuenta: algo así como su ID. Ejemplo: Juan
  • Rol: algún grupo en el proyecto autorizado a hacer algo. Ejemplos: administrador de clúster, soporte de TI, ...
  • Vinculación: unión de la cuenta al rol. "John in it-support" - es un enlace.

Por lo tanto, en nuestro mensaje anterior, vemos que nuestro Tiller actúa como una cuenta "predeterminada" registrada en el espacio de nombres "kube-system". Lo más probable es que no lo vinculaste a un papel suficiente.

Ahora volvamos al problema.
Cómo lo rastreamos:

  • compruebe si tiene una cuenta específica para timón. Por lo general, tiene el mismo nombre - "tiller":
    kubectl [--namespace kube-system] get serviceaccount
    crear si no:
    kubectl [--namespace kube-system] create serviceaccount tiller
  • verifique si tiene un rol o un rol de clúster (el rol de clúster es "mejor" para los novatos; es para todo el clúster a diferencia del rol para todo el espacio de nombres). Si esto no es una producción, puede usar el rol "cluster-admin" con privilegios elevados:
    kubectl [--namespace kube-system] get clusterrole
    puede verificar el contenido del rol a través de:
    kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
  • verifique si la cuenta "tiller" en la primera cláusula tiene un enlace a clusterrole "cluster-admin" que considere suficiente:
    kubectl [--namespace kube-system] get clusterrolebinding
    si es difícil de averiguar en función de los nombres, simplemente puede crear uno nuevo:
    kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • finalmente, cuando tengas la cuenta, el rol y la vinculación entre ellos, puedes comprobar si realmente actúas como esta cuenta:
    kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml

Sospecho que su salida no tendrá configuraciones "serviceAccount" y "serviceAccountName":

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
...

En caso afirmativo, agregue una cuenta que desee que use Tiller:
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
(si usa PowerShell, verifique a continuación la publicación de @snpdev)
Ahora repite el comando de verificación anterior y ve la diferencia:

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: tiller                     <-- new line
serviceAccountName: tiller          <-- new line
terminationGracePeriodSeconds: 30
...

Si. Algo como eso.

Todos 16 comentarios

Nueva URL para cualquiera que busque: https://helm.sh/docs/rbac/#role -based-access-control

No es bueno cerrar un problema sin explicar la forma de solucionarlo :-)
Déjame hacerlo en su lugar entonces.

Error: los mapas de configuración están prohibidos: el usuario " system:serviceaccount :kube- system:default " no puede aparecer en la lista

Primero, algo de información para los novatos.
En Kubernetes hay:

  • Cuenta: algo así como su ID. Ejemplo: Juan
  • Rol: algún grupo en el proyecto autorizado a hacer algo. Ejemplos: administrador de clúster, soporte de TI, ...
  • Vinculación: unión de la cuenta al rol. "John in it-support" - es un enlace.

Por lo tanto, en nuestro mensaje anterior, vemos que nuestro Tiller actúa como una cuenta "predeterminada" registrada en el espacio de nombres "kube-system". Lo más probable es que no lo vinculaste a un papel suficiente.

Ahora volvamos al problema.
Cómo lo rastreamos:

  • compruebe si tiene una cuenta específica para timón. Por lo general, tiene el mismo nombre - "tiller":
    kubectl [--namespace kube-system] get serviceaccount
    crear si no:
    kubectl [--namespace kube-system] create serviceaccount tiller
  • verifique si tiene un rol o un rol de clúster (el rol de clúster es "mejor" para los novatos; es para todo el clúster a diferencia del rol para todo el espacio de nombres). Si esto no es una producción, puede usar el rol "cluster-admin" con privilegios elevados:
    kubectl [--namespace kube-system] get clusterrole
    puede verificar el contenido del rol a través de:
    kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
  • verifique si la cuenta "tiller" en la primera cláusula tiene un enlace a clusterrole "cluster-admin" que considere suficiente:
    kubectl [--namespace kube-system] get clusterrolebinding
    si es difícil de averiguar en función de los nombres, simplemente puede crear uno nuevo:
    kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • finalmente, cuando tengas la cuenta, el rol y la vinculación entre ellos, puedes comprobar si realmente actúas como esta cuenta:
    kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml

Sospecho que su salida no tendrá configuraciones "serviceAccount" y "serviceAccountName":

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
...

En caso afirmativo, agregue una cuenta que desee que use Tiller:
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
(si usa PowerShell, verifique a continuación la publicación de @snpdev)
Ahora repite el comando de verificación anterior y ve la diferencia:

...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: tiller                     <-- new line
serviceAccountName: tiller          <-- new line
terminationGracePeriodSeconds: 30
...

Si. Algo como eso.

La solución de @m-abramovich funcionó para mí.

Nota: si usa Powershell, el comando es:

kubectl --namespace kube-system patch deploy tiller-deploy -p '{\"spec\":{\"template\":{\"spec\":{\"serviceAccount\":\"tiller\"}}}}'

y 2 meses y medio su explicación sigue siendo útil muchas gracias por tomarse el tiempo de su apretada agenda para ser detallada y útil. @m-abramovich a diferencia de @bacongobbler

y 2 meses y medio su explicación sigue siendo útil muchas gracias por tomarse el tiempo de su apretada agenda para ser detallada y útil. @m-abramovich a diferencia de @bacongobbler

La persona que cerró este problema fue la persona que lo abrió. Claramente sintieron que el problema estaba resuelto.

Además, la descripción original solicitaba el enlace adecuado a la documentación de control de acceso basado en roles, que se proporcionó sin cerrar el problema.

Finalmente, @bacongobbler se tomó el tiempo de brindar la información solicitada el 25 de diciembre, que para muchos es un feriado importante. Lo siento @iamaverrick pero encuentro tu comentario bastante inapropiado.

Guau. Ni siquiera recuerdo haber respondido a este hilo... Ha pasado un tiempo.

La suposición de @marckhouzam aquí es correcta: el problema se abrió el día de Navidad. Estaba con mi familia ese día, pero vi esta pregunta rápida del OP:

posiblemente relacionado, también estoy tratando de acceder a Tiller y Control de acceso basado en roles , pero obtengo 404.

Así que pensé en disparar una respuesta rápida con el enlace correcto y volver a celebrar la Navidad. Al día siguiente, el OP cerró el problema, por lo que asumí que no se requería más seguimiento.

Realmente me molesta pensar que se asumió que mi comentario era breve o inútil. No estaba tratando de resolver el problema; Simplemente estaba brindando contexto mientras el OP intenta encontrar la solución por sí mismos durante la temporada navideña.

Gracias @m-abramovich y @snpdev por dar seguimiento y brindar respuestas al problema de OP.

@iamaverrick Proporcionar un enlace a la documentación no es raro cuando se responde a un problema. Esto no es inútil, sino una creencia en nuestra documentación en la que nosotros, como comunidad, invertimos mucho tiempo. si la documentación es inadecuada, entonces la persona generalmente responde y esto le da al respondedor la oportunidad de brindar más contexto. También nos hace conscientes de que el documento necesita mejoras. Sin interacción o comentarios como este de los usuarios, los documentos no mejorarán.

A la larga, una mejor documentación ayuda a las personas más que tener que plantear problemas por errores o características no relacionadas.

En otro nivel, que @bacongobbler responda durante la temporada navideña es bastante impresionante. Recuerda que todos somos personas tratando de dar lo mejor de nosotros.

Chicos, por favor tómenlo con calma.
Todos somos desarrolladores de software, compartimos los mismos valores en la vida. Tenemos mucho más en común de lo que puedes imaginar. Respetemosnos unos a otros por favor.

@marckhouzam inapropiado? De ninguna manera he faltado el respeto a nadie con mi comentario. Simplemente expuse los hechos desde mi perspectiva. Este comentario fue mencionado directamente @bacongobbler, no todos los demás que pusieron allí 2 centavos. Agradezco a @bacongobbler por pegar el enlace en un día festivo. La pregunta original dice que estaba teniendo problemas y necesitaba orientación, no un enlace. Chicos, si no pueden aceptar críticas constructivas, no publiquen nada en estos hilos. Todos somos desarrolladores de software tratando de ser mejores y brindar mejor información.

Pido disculpas por no probar mi respuesta con más detalles, ya que insinué la respuesta en mi pregunta y luego @bacongobbler confirmó mi respuesta, seguida de un excelente comentario de @m-abramovich

Realmente aprecio la ayuda y/o aporte de todos y trataré de hacer un mejor trabajo la próxima vez, ¡lo prometo!

y nuevamente, lo siento por causar esto (realmente no pensé que llegaría a eso...

Mis dos centavos: al seguir https://helm.sh/docs/intro/quickstart/ , no se menciona RBAC y las instrucciones allí conducen a una instalación de Tiller que no funciona. Una búsqueda en Google conduce a este problema aquí.

¿Quizás se pueda volver a abrir como "mejorar la guía de inicio rápido para que advierta a los novatos sobre este escollo"?

Hay "Decidir qué configuraciones de seguridad aplicar a su instalación, si las hay" en los requisitos previos, pero como solo lo estaba probando en un clúster desechable, el "si las hay" me implicaba que como no me importa, no No necesitas hacer nada.

Incluso si hubiera notado que necesito hacer algo, no hay un enlace a las instrucciones.

Mis dos centavos: al seguir https://helm.sh/docs/intro/quickstart/ , no se menciona RBAC y las instrucciones allí conducen a una instalación de Tiller que no funciona. Una búsqueda en Google conduce a este problema aquí.

¿Quizás se pueda volver a abrir como "mejorar la guía de inicio rápido para que advierta a los novatos sobre este escollo"?

@pohly
Patrick, creo que esto ya no es relevante.
Helm v3 no usa Tiller. Entonces, tal vez, todo eso ya no vale nada.

@m-abramovich ¡Gracias! Su recorrido detallado me ayudó a superar este problema. Le agradezco mucho el tiempo que se tomó para escribir su respuesta.

Esta explicación es genial! ¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones