Kubernetes
如何將 k8s 服務帳戶令牌掛載為環境變數?
當您將服務帳戶關聯到 pod 時,它會安裝在
/var/run/secrets/kubernetes.io/
文件夾中,但我看不到將密鑰添加為環境變數的方法。問題是無法在 pod 中設置對服務帳戶密碼的引用,因為從服務帳戶生成的密碼具有自動生成的名稱。所以你不能env.valueFrom.secretKeyRef
在 pod 配置中使用。有沒有辦法在不手動創建秘密的情況下做到這一點?
我還沒有找到解決這個問題的原生 Kubernetes 方法,但是我用 terraform 解決了它。service_account 資源提供了default_secret_name,它允許我在部署(或 pod)中引用秘密。
resource "kubernetes_service_account_v1" "my_service_account" { metadata { name = "my-service-account" } } ... resource "kubernetes_deployment_v1" "my_deployment" { ... env { name = "SOME_SECRET" value_from { secret_key_ref { name = kubernetes_service_account_v1.my_service_account.default_secret_name key = "token" } } } ... }