3 回答

TA貢獻1799條經驗 獲得超8個贊
如果您使用的是 GKE,則節點區域和區域應位于節點的標簽中:
failure-domain.beta.kubernetes.io/region
failure-domain.beta.kubernetes.io/zone
topology.kubernetes.io/region
topology.kubernetes.io/zone
您可以使用kubectl get nodes --show-labels

TA貢獻1859條經驗 獲得超6個贊
這就是我最終所做的。
已啟用工作負載標識
gcloud container clusters update <CLUSTER_NAME> \
--workload-pool=<PROJECT_ID>.svc.id.goog
更新了節點池以使用工作負載標識
gcloud container node-pools update <NODEPOOL_NAME> \
--cluster=<CLUSTER_NAME> \
--workload-metadata=<GKE_METADATA>
為我的應用創建了服務帳戶
將我的 KSA 綁定到 GSA
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:<PROJECT_ID>.svc.id.goog[<K8S_NAMESPACE>/<KSA_NAME]" \
<GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com
使用GSA電子郵件地址的帶注釋的服務帳戶
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
iam.gke.io/gcp-service-account: <GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com
name: KSA_NAME
namespace: <K8S_NAMESPACE>
這由GSA的容器進行身份驗證,我能夠使用 https://cloud.google.com/compute/docs/storing-retrieving-metadata

TA貢獻2011條經驗 獲得超2個贊
不是以任何直接的方式。您可以使用向下 API 向 Pod 公開節點名稱,然后獲取該節點的注釋/標簽。但這需要相當廣泛的讀取權限(所有節點),因此可能存在安全風險。
- 3 回答
- 0 關注
- 124 瀏覽
添加回答
舉報