Kubernetes 如何在属于另一个命名空间的部署yaml中指定serviceAccount(在默认命名空间中创建)

Kubernetes 如何在属于另一个命名空间的部署yaml中指定serviceAccount(在默认命名空间中创建),kubernetes,Kubernetes,我在默认命名空间中创建了serviceaccountdm sa,并在绑定到PodSecurityPolicy和clusterRoleBinding的clusterRole中使用了此serviceaccount。 接下来,在将在名称空间dm中运行的部署yamlwhich中,我在template:spec下指定了servicecomport:dm和servicecomportname:default。这样,kubernetes将在名称空间dm下搜索dm sa,而不是在默认名称空间下搜索。如何解决这个

我在默认命名空间中创建了serviceaccountdm sa,并在绑定到PodSecurityPolicy和clusterRoleBinding的clusterRole中使用了此serviceaccount。 接下来,在将在名称空间dm中运行的部署yamlwhich中,我在template:spec下指定了servicecomport:dm和servicecomportname:default。这样,kubernetes将在名称空间dm下搜索dm sa,而不是在默认名称空间下搜索。如何解决这个问题。请帮忙

模板: 规格: automountServiceAccountToken:true 服务帐户:dm sa
serviceAccountName:default

通常,当Kubernetes对象相互引用时,它们需要位于同一命名空间中。如果部署管理一个Pod,并且该Pod引用一个ConfigMap、一个Secret、一个ServiceAccount和一个PersistentVolumeClaim,那么所有这些内容都需要位于同一命名空间中


我将在目标dm命名空间中重新部署服务帐户。如果不使用,可以删除默认命名空间中的服务帐户。

为什么不在部署的命名空间中使用服务帐户我使用默认命名空间中的服务帐户,因为它允许我执行一些api,如/api/v1/命名空间、/api/apps/v1/部署。否则,它会出错,说serviceAccount没有管理员权限。我解决了这个问题。我遵循以下步骤:1。在dm命名空间中创建了服务帐户dm sa。2.已授予在ClusterRole文件中使用api的权限。3.ClusterRoleBinding文件中的ClusterRole和服务帐户绑定。关于对api的访问,需要在ClusterRole文件中定义要使用的api列表。这样,我就能够消除对在默认名称空间内创建的服务帐户的依赖。