use*_*388 4 kubernetes google-kubernetes-engine workload-identity
我已经为工作负载身份配置了集群和节点池(https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity),但为了让它工作,我还需要让我的 Pod 使用我为工作负载身份创建的 kubernetes 服务帐户。
我发现我可以在 pod 的 YAML 中指定serviceAccountName,但是如何使用使用了 deployment.yaml 的 Google CI/CD 来执行此操作?或者我可以以某种方式引用 pod 的 YAML 来用作我的 deployment.yaml 中的规范模板吗?抱歉,我是 k8s 新手!
参考号 https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
本质上,我只是想让 Workload Identity 与我的应用程序一起使用,因此GOOGLE_APPLICATION_CREDENTIALSGoogle 将其设置为在我的应用程序中使用!
我在我的deployment.yaml中尝试了以下操作,但收到错误unknown field "serviceAccountName" in io.k8s.api.core.v1.Container;:
spec:
replicas: 3
selector:
matchLabels:
app: my-application
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: my-application
spec:
containers:
- image: >-
gcr.io/my-project/github.com/my-org/my-repo
imagePullPolicy: IfNotPresent
name: my-application
serviceAccountName: my-k8s-svc-acct
Run Code Online (Sandbox Code Playgroud)
serviceAccountName是 pod 规范对象的属性,而不是容器的属性。所以,应该是:
spec:
replicas: 3
selector:
matchLabels:
app: my-application
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: my-application
spec:
serviceAccountName: my-k8s-svc-acct
containers:
- image: >-
gcr.io/my-project/github.com/my-org/my-repo
imagePullPolicy: IfNotPresent
name: my-application
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3154 次 |
| 最近记录: |