helm 权限控制限制级别到namespace

helm默认会安装到kubeops,权限级别为cluster-admin,这样的权限太大了,在实际工作中一些普通程序的发布如果都集中在默认的tiller上会造成不好管理,以及无法放心的释放权限。如果想更合理的分配就需要一个好的权限控制及规划

1,首先在k8s中创建仅限于空间所有权的账号

kubectl create serviceaccount helm-bmsk-admin -n bmsk
kubectl create rolebinding helm-bmsk-admin --clusterrole=cluster-admin --serviceaccount=bmsk:helm-bmsk-admin -n bmsk

2,生成kubeconfig权限文件

kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/ca.crt \
--embed-certs=true \
--server=https://10.88.10.17:60002 \
--kubeconfig=./helm-bmsk-admin.kubeconfig

# 设置客户端认证参数
 ADMIN_TOKEN=$(kubectl get secret helm-bmsk-admin-token-jpgzq -n bmsk -o jsonpath={.data.token} |base64 -d)
 kubectl config set-credentials helm-bmsk-admin \
 --token=${ADMIN_TOKEN}\
 --namespace=bmsk \
 --kubeconfig=./helm-bmsk-admin.kubeconfig

# 设置上下文参数
kubectl config set-context helm-bmsk-admin \
--cluster=kubernetes \
--user=helm-bmsk-admin \
--namespace=bmsk \
--kubeconfig=./helm-bmsk-admin.kubeconfig

# 设置默认上下文
kubectl config use-context helm-bmsk-admin --kubeconfig=./helm-bmsk-admin.kubeconfig --namespace=bmsk

3,经过上面操作会生成一个helm-bmsk-admin.kubeconfig秘钥,通过这个秘钥我们可以拥有bmsk这个空间的所有权限,下面需要bmsk空间发布一个tiller用于helm与之通信

通过拥有cluster_admin权限的helm,在bmsk空间初始化一个tiller要指定其权限
helm init --service-account helm-bmsk-admin --kubeconfig /root/manifests/role/helm/helm-bmsk-admin.kubeconfig --tiller-namespace=bmsk --upgrade --tiller-image=hub.corp.bm-sk.cn/k8s/tiller:v2.10.0

4,在client端初始化helm

helm init --client-only --stable-repo-url http://mirror.azure.cn/kubernetes/charts/

5,通过指定秘钥+命令行获取当前空间的releases project

[root@bmsk-manage-jenkins-578f5d8bb4-tsr5c /]# helm --kubeconfig /mnt/helm-bmsk-admin.kubeconfig --tiller-namespace bmsk list
NAME            REVISION        UPDATED                         STATUS          CHART           APP VERSION     NAMESPACE
p-bmsk-cas      13              Thu Aug 13 14:26:33 2020        DEPLOYED        deploy-1.0.3    1.0             bmsk     
p-bmsk-qywx     7               Mon Jun  8 13:31:06 2020        DEPLOYED        deploy-1.0.3    1.0             bmsk     
p-bmsk-z        51              Wed Sep  2 10:47:00 2020        DEPLOYED        deploy-1.0.3    1.0             bmsk     
此条目发表在kubernetes分类目录。将固定链接加入收藏夹。