k8s 自建服务账号并绑定成集群管理

在 Kubernetes (k8s) 中,自建服务账号(Service Account)并将其绑定到集群管理员角色,需要进行以下步骤:

  1. 创建服务账号: 创建一个新的服务账号,这通常通过一个 YAML 文件来完成。
apiVersion: v1
kind: ServiceAccount
metadata:
  name: ops
  namespace: default  # 指定服务账号所在的命名空间

将以上内容保存为 service-account.yaml 文件,并使用 kubectl apply -f service-account.yaml 命令创建服务账号。

  1. 创建角色绑定: Kubernetes 集群管理员角色通常绑定到 cluster-admin ClusterRole。接下来,创建一个 ClusterRoleBinding 或 RoleBinding 来将你的服务账号绑定到这个角色。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ops-clusterrolebinding
subjects:
- kind: ServiceAccount
  name: ops
  namespace: default
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

将以上内容保存为 clusterrolebinding.yaml 文件,并使用 kubectl apply -f clusterrolebinding.yaml 命令创建角色绑定。

这样,服务账号 ops 就被赋予了集群管理员权限。

注意:绑定服务账号到 cluster-admin ClusterRole 是一个非常强大的操作,因为这会给予该服务账号对整个集群的完全控制权限。务必确保只有受信任的用户和服务可以获取这样的权限。

以下是上述步骤的简要命令行总结:

# 创建服务账号
kubectl apply -f service-account.yaml

# 创建角色绑定,将服务账号绑定到集群管理员角色
kubectl apply -f clusterrolebinding.yaml

一旦完成以上步骤,你就可以使用该服务账号的凭据来执行集群管理任务了。通常,这些凭据会以 Kubernetes 私钥的形式存储在 Secret 中,你可以通过以下命令获取:

kubectl get secret ops-token-xxxx -o jsonpath='{.data.token}' | base64 --decode

以上命令会返回一个 JWT 令牌,你可以使用这个令牌与 Kubernetes API 服务器进行交互,进行集群管理操作。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值