61 votes

Kubernetes - partage du secret entre espaces de noms

Existe-t-il un moyen de partager des secrets sur des espaces de noms dans Kubernetes?

Mon cas d'utilisation est le suivant: j'ai le même registre privé pour tous mes espaces-noms et je veux éviter de créer le même secret pour chacun.

Merci de votre aide.

53voto

Innocent Anigbo Points 1210

Les objets API secrets résident dans un espace de noms. Ils ne peuvent être référencés que par des pods situés dans le même espace de noms. Fondamentalement, vous devrez créer le secret pour chaque espace de noms.

https://kubernetes.io/docs/concepts/configuration/secret/#details

43voto

Ils ne peuvent être référencées par les gousses dans le même espace de noms. Mais vous pouvez simplement copier le secret d'un nom d'espace pour d'autres. Voici un exemple de copie d' localdockerreg secret default de l'espace de noms d' dev:

 kubectl get secret localdockerreg --namespace=default --export -o yaml | kubectl apply --namespace=dev -f -

Mise à JOUR

Dans Kubernetes v1.14 --export drapeau est obsolète. Ainsi, la Commande suivante avec -oymal drapeau de travail sans avertissement dans les prochaines versions.

kubectl get secret localdockerreg --namespace=default -oyaml | kubectl apply --namespace=dev -f -

2voto

Comme l'a répondu Innocent Anigbo, vous devez avoir le secret dans le même espace de noms. Si vous devez prendre en charge cette dynamique ou éviter d’oublier la création de secrets, vous pouvez éventuellement créer un initialiseur pour l’objet d’espace de nom https://kubernetes.io/docs/admin/extensible-admission-controllers/ (je ne l’ai pas fait par moi-même). , donc je ne peux pas dire à coup sûr)

0voto

user128364 Points 874

kubectl obtenir le secret gitlab-registry --namespace = revsys-com --export -o yaml | \ kubectl apply --namespace = devspectrum-dev -f -

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: