web-dev-qa-db-fra.com

Kubernetes - partage du secret sur plusieurs espaces de noms

Est-il possible 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.

39
matth3o

Les objets de l'API secret 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

33
Innocent Anigbo

Ils ne peuvent être référencés que par des pods situés dans le même espace de noms. Mais vous pouvez simplement copier le secret d'un espace de noms à un autre. Voici un exemple de copie de localdockerreg secret de default espace de noms dans dev:

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

MISE À JOUR

Dans Kubernetes v1.14 --export Le drapeau est obsolète . Donc, la commande suivante avec -oymal flag fonctionnera sans avertissement dans les prochaines versions.

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

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/ ( ne l'ai pas fait moi-même, alors je ne peux pas le dire à coup sûr)

2

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

0
user128364