如何在 GKE Deployment.YAML 中为 Pods 指定 ServiceAccountName
How to Specify ServiceAccountName for Pods in GKE Deployment.YAML
我已经为 Workload Identity (https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) 配置了我的集群和节点池,但为了让它工作,我还需要让我的 pods 使用 kubernetes 服务帐户我为工作负载身份创建。
我知道我可以在 pod 的 YAML 中指定 serviceAccountName
,但是我如何使用 Google CI/CD 来指定 deployment.yaml?或者我能以某种方式引用 pod 的 YAML 用作我的 deployment.yaml 中的规范模板吗?对不起,我是k8s的新手!
参考。 https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
本质上,我只是想让 Workload Identity 与我的应用程序一起工作,因此 GOOGLE_APPLICATION_CREDENTIALS
由 Google 设置以便在我的应用程序中使用!
我在 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
缩进错误
应该是这样的
spec:
containers:
- image: nginx
name: nginx
serviceAccount:
serviceAccountName:
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
我已经为 Workload Identity (https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) 配置了我的集群和节点池,但为了让它工作,我还需要让我的 pods 使用 kubernetes 服务帐户我为工作负载身份创建。
我知道我可以在 pod 的 YAML 中指定 serviceAccountName
,但是我如何使用 Google CI/CD 来指定 deployment.yaml?或者我能以某种方式引用 pod 的 YAML 用作我的 deployment.yaml 中的规范模板吗?对不起,我是k8s的新手!
参考。 https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
本质上,我只是想让 Workload Identity 与我的应用程序一起工作,因此 GOOGLE_APPLICATION_CREDENTIALS
由 Google 设置以便在我的应用程序中使用!
我在 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
缩进错误
应该是这样的
spec:
containers:
- image: nginx
name: nginx
serviceAccount:
serviceAccountName:
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