Kubernetesの名前空間間で秘密を共有する方法はありますか?
私の使用例は、すべてのネームスペースに同じプライベートレジストリがあり、それぞれに同じシークレットが作成されないようにすることです。
ご協力いただきありがとうございます。
シークレットAPIオブジェクトは名前空間に存在します。それらは、同じ名前空間のポッドによってのみ参照できます。基本的に、すべての名前空間の秘密を作成する必要があります。
https://kubernetes.io/docs/concepts/configuration/secret/#details
それらは、同じ名前空間のポッドによってのみ参照できます。ただし、1つの名前空間から別の名前空間に秘密をコピーするだけです。 localdockerreg
シークレットをdefault
名前空間からdev
にコピーする例を次に示します。
kubectl get secret localdockerreg --namespace=default --export -o yaml | kubectl apply --namespace=dev -f -
Kubernetes v1.14では、--export
フラグは 非推奨 です。したがって、今後のバージョンでは、-oymal
フラグを使用した次のコマンドは警告なしで機能します。
kubectl get secret localdockerreg --namespace=default -oyaml | kubectl apply --namespace=dev -f -
Innocent Anigboが答えたように、同じ名前空間に秘密を保持する必要があります。それを動的にサポートする必要がある場合、または秘密の作成を忘れないようにする必要がある場合は、名前空間オブジェクトの初期化子を作成することが可能かもしれません https://kubernetes.io/docs/admin/extensible-admission-controllers/ (自分でそれをやったことがないので、確実に言うことはできません
kubectl get secret gitlab-registry --namespace = revsys-com --export -o yaml |\kubectl apply --namespace = devspectrum-dev -f-