gpt4 book ai didi

kubernetes - 为 kubernetes pod 指定带有命名空间的服务帐户名称

转载 作者:行者123 更新时间:2023-12-05 09:27:24 24 4
gpt4 key购买 nike

我正在尝试为我的 kubernetes 集群使用工作流标识。我在新的命名空间上创建了服务帐户。我的问题是,当我尝试在 pod 部署 YML 上添加服务帐户名称时,我无法指定 namespace 。

以下是我的 pod spect 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
name: test-scheduler
spec:
replicas: 1
selector:
matchLabels:
app: test-scheduler
template:
metadata:
labels:
app: test-scheduler
spec:
serviceAccountName: test-na/test-k8-sa
nodeSelector:
iam.gke.io/gke-metadata-server-enabled: "true"
containers:
- name: test-scheduler
image: gcr.io/PROJECT_ID/IMAGE:TAG
ports:
- name: scheduler-port
containerPort: 8002
protocol: TCP
env:
- name: NAMESPACE
value: test-scheduler
- name: CONTAINER_NAME
value: test-scheduler
---
apiVersion: v1
kind: Service
metadata:
name: test-scheduler
spec:
selector:
app: test-scheduler
ports:
- port: 8002
protocol: TCP
targetPort: scheduler-port

当我使用 github 操作部署此代码时出现此错误:

The Deployment "test-scheduler" is invalid: spec.template.spec.serviceAccountName: Invalid value: "test-na/test-k8-sa": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.',

当我像这样删除文件中的 namespace 时:

serviceAccountName: test-k8-sa

它在默认 namespace 上搜索服务帐户但失败了。

我的问题是在 kubernetes 中使用服务帐户指定自定义命名空间的正确方法是什么?

我可以开始使用默认 namespace ,但我倾向于保留 namespace 。我看到了一些对服务帐户文件的引用,但我真的不明白如何使用它们。

顺便说一句,我正在使用这个指南https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#gcloud_3

最佳答案

...我已经在新命名空间上创建了服务帐户。我的问题是,当我尝试在 pod 部署 YML 上添加服务帐户名称时,我无法指定 namespace 。

要将创建的服务帐户分配给您的部署,您可以在与服务帐户相同的命名空间中创建部署:

apiVersion: apps/v1
kind: Deployment
metadata:
name: test-scheduler
namespace: test-na # <-- add this line with the namespace where the service account resides
spec:
...
template:
...
spec:
serviceAccountName: test-k8-sa
...

关于kubernetes - 为 kubernetes pod 指定带有命名空间的服务帐户名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72489600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com