手动创建k8s集群管理员,生成kubeconfig文件

为Kubernetes集群自定义超级管理员的方法至少有两种:一是将用户归入system:masters用户组,二是通过ClusterRoleBinding将用户绑定至内置集群角色 cluster-admin上,本文介绍采用第二种。

1、生成证书

 #生成目标账号(客户端),生成qinzc.key
 (umask 077;openssl genrsa -out qinzc.key 2048)
 #创建证书签署请求(客户端),CN是用户名,O是用户组,第一种方法请改为system:masters,生成qinzc.csr
 openssl  req -new -key qinzc.key -out qinzc.csr -subj "/CN=qinzc/O=kubernetes"
 
 #签署证书(服务端),生成qinzc.crt
openssl x509 -req -days 999 -CA /etc/kubernetes/pki/ca.crt  -CAkey /etc/kubernetes/pki/ca.key  -CAcreateserial -in ./qinzc.csr -out qinzc.crt

#检查
 openssl x509 -in qinzc.crt -text -noout

 

 

2、设置集群参数

kubectl config set-cluster kubernetes --embed-certs=true \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--server="https://k8s.qinzc.me:6443" \
--kubeconfig=./config

 

3、设置客户端认证参数

kubectl config set-credentials qinzc \
--embed-certs=true \
--client-certificate=./qinzc.crt \
--client-key=qinzc.key \
--kubeconfig=./config

 

4、设置客户端认证参数

kubectl config set-context qinzc@kubernetes \
--cluster=kubernetes \
--user=qinzc \
--kubeconfig=./config

 

5、切换默认上下文

kubectl config use-context qinzc@kubernetes --kubeconfig=./config

6、授权

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: my-admin
subjects:
- kind: User
  name: qinzc
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin	#集群内置管理员权限,改角色分配给了system:masters 用户组
  apiGroup: rbac.authorization.k8s.io




------------------------------------------------------
#自定义授权
#给dev 名称空间 创建角色(命令)也可以通过yaml文件方式,
kubectl create role admin -n dev --resource="*.*" --verb="get,list,watch,create,delete,deletecollection,patch,update"

#yaml文件
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default
  name: admin
rules:
- apiGroups: [""]
  resources: ["pods", "services", pods/log"]
  verbs: ["get", "list", "watch"]




#集群角色授权
kubectl create clusterrole pv-admin --verb="*" --resource="persistentvolumeclaims,persistentvolumes"


#给qinzc用户绑定一个权限
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: qinzc-admin
  namespace: dev
subjects:
- kind: User
  name: qinzc
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: admin
  apiGroup: rbac.authorization.k8s.io

 

  • blogger
版权声明:若无特殊注明,本文为《橙子柠檬》原创,转载请保留文章出处。
本文链接:https://qinzc.me/post-267.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!