【发布时间】:2021-12-14 21:06:30
【问题描述】:
我已经创建了一个 GKE 服务帐号。
我一直在尝试在 GKE 中使用它,但出现错误:
pods "servicepod" is forbidden: error looking up service account service/serviceaccount: serviceaccount "serviceaccount" not found
我已按照documentation 中的设置指南进行操作。
1.创建名为“serviceaccount”的 GCP 服务帐号
2.我创建了 JSON 密钥并将其下载为 key.json。
3.kubectl create secret generic serviceaccountkey --from-file key.json -n service
4.在我的部署中添加了以下项目:
spec:
volumes:
- name: serviceaccountkey
secret:
secretName: serviceaccountkey
containers:
volumeMounts:
- name: serviceaccountkey
mountPath: /var/secrets/google
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /var/secrets/google/key.json
当我部署它时,我得到:
pods "service-7cdbcc67b9-" is forbidden: error looking up service account service/serviceaccount: serviceaccount "serviceaccount" not found
我不知道还需要做什么才能使这项工作正常进行,我已按照指南进行操作,但看不到任何遗漏的内容。
对此的任何帮助将不胜感激!
【问题讨论】:
-
Serviceaccount和pods一样是一个命名空间的服务,是不是在同一个命名空间?
-
您的部署模板规范有误。检查教程以获取正确的架构。
containers数组需要一个name和一个image。 -
这种方法是一种很好的“任何 Kubernetes”挂载服务帐户的方法。如果您致力于 GKE,则有一种称为Workload Identity 的适当方法
标签: kubernetes google-cloud-platform google-kubernetes-engine service-accounts