具有集群角色的 Kubernetes 服务帐户

标签 kubernetes kubectl minikube

我已经创建了一个具有集群角色的服务帐户,是否可以通过 API 使用此服务帐户跨不同命名空间部署 pod?

下面是完成角色创建和绑定(bind)的模板:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: api-access
rules:
  -
    apiGroups:
      - ""
      - apps
      - autoscaling
      - batch
      - extensions
      - policy
      - rbac.authorization.k8s.io
    resources:
      - componentstatuses
      - configmaps
      - daemonsets
      - deployments
      - events
      - endpoints
      - horizontalpodautoscalers
      - ingress
      - jobs
      - limitranges
      - namespaces
      - nodes
      - pods
      - persistentvolumes
      - persistentvolumeclaims
      - resourcequotas
      - replicasets
      - replicationcontrollers
      - serviceaccounts
      - services
    verbs: ["*"]
  - nonResourceURLs: ["*"]
    verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: api-access
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: api-access
subjects:
- kind: ServiceAccount
  name: api-service-account
  namespace: default

最佳答案

Kubernetes 服务帐户不是命名空间对象,因此回答“我可以在命名空间之间使用服务帐户吗?”是的。

对于第二部分:我不知道你的 API 是什么意思,但如果它是 kubernetes-apiserver 那么是的,你可以将服务帐户与 kubectl 一起使用,确保你正在作为服务帐户执行。您可以为此模拟用户并引用:https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation

如果您的意思是您构建了新的 API 进行部署或使用外部部署程序,那么您应该使用此服务帐户进行部署,如下所述:https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

关于具有集群角色的 Kubernetes 服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57460542/

相关文章:

kubernetes - Traefik K8s 设置问题

Kubernetes 有状态集 : Restart all pods concurrently (instead of in sequence)

Kubernetes:了解 "kubectl top node"的内存使用情况

docker - 如何为 Kubernetes 桌面 UI 配置简单的登录/通过身份验证

kubernetes - minikube 中的 "kubernetes"服务

docker - 尝试连接 Kubernetes 中的服务时连接被拒绝

kubernetes - Hystrix-dashboard 无法与 Kubernetes 上的 Kubeflix 配合使用

kubernetes - 使用不同名称的 kustomization.yaml

minikube - 无法访问 Minikube 上的 NodePort 服务

ubuntu - Minikube 在 Ubuntu 中安装 - 运行 SSH 命令出现问题