k8s-学习笔记12-权限体系
创建低权限账户
先创建一个角色,只在一个ns里起作用
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: pod-reader
namespace: rrb
rules:
- verbs:
- get
- watch
- list
apiGroups:
- ''
resources:
- pods
- verbs:
- create
apiGroups:
- ''
resources:
- pods/exec
再创建一个sa
kind: ServiceAccount apiVersion: v1 metadata: name: eks-reader namespace: rrb
最后把这个角色歌sa绑定,这样sa生成的secrets里的token,就可以用来登陆dashboard,只有这个ns的pod的list和exec权限
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: eks-reader
namespace: rrb
subjects:
- kind: ServiceAccount
name: eks-reader
namespace: rrb
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-reader
kuceconfig管理员账户
在python调用api时,需要使用这份config,最高权限
cat > admin-csr.json <<EOF
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "hangzhou",
"ST": "hangzhou",
"O": "system:masters",
"OU": "System"
}
]
}
EOF
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client admin-csr.json | cfssljson -bare admin
# 设置集群参数 kubectl config set-cluster kubernetes \ --server=https://192.168.18.56:6443 \ --certificate-authority=/opt/kubernetes/server/bin/cert/ca.pem \ --embed-certs=true \ --kubeconfig=admin.kubeconfig # 设置客户端认证参数 kubectl config set-credentials cluster-admin \ --certificate-authority=/opt/kubernetes/server/bin/cert/ca.pem \ --embed-certs=true \ --client-key=/opt/kubernetes/server/bin/cert/admin-key.pem \ --client-certificate=/opt/kubernetes/server/bin/cert/admin.pem \ --kubeconfig=admin.kubeconfig # 设置上下文参数 kubectl config set-context default \ --cluster=kubernetes \ --user=cluster-admin \ --kubeconfig=admin.kubeconfig # 设置默认上下文 kubectl config use-context default --kubeconfig=admin.kubeconfig

浙公网安备 33010602011771号