基于 ServiceAccount 的 kubeconfig 具有与 ServiceAccount 相同的权限,可以灵活地通过 ClusterRoleBinding 和/或 RoleBinding 进行权限控制,以及方便地进行账户吊销,本文介绍基于 ServiceAccount 快速生成 kubeconfig 文件的方法。
1. 准备 ServiceAccount
# 创建 ServiceAccount(例如 admin-user)
kubectl create sa admin-user -n kube-system
# 检查对应的 Secret 是否被自动创建
kubectl get secret -n kube-system admin-user
# 如果不存在,则需要手动创建 Secret(>=1.24 版本的 K8s 不再自动创建 Secret)
# 注意修改 kubernetes.io/service-account.name 为对应的 ServiceAccount 名字,这里即为 admin-user
# Secret 的 name 和 namespace 与 ServiceAccount 保持一致
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: admin-user
namespace: kube-system
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
EOF
# 为 ServiceAccount 绑定权限(这里以绑定最高权限 cluster-admin 为例)
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kube-system:admin-us

最低0.47元/天 解锁文章
227

被折叠的 条评论
为什么被折叠?



