Kubernetes

如何將 k8s 服務帳戶令牌掛載為環境變數?

  • March 8, 2022

當您將服務帳戶關聯到 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"
     }
   }
 }
 ...
}

引用自:https://serverfault.com/questions/1095495