当我们安装好集群后, 如果想要把kubectl命令交给用户使用, 就需要对用户身份进行认证和对权限做限制. 下面举例说明创建用户zrq. 可以手动一步一步操作,也可以通过playbook直接执行,下面先使用手动创建方式:
创建CA 证书和秘钥
## 创建一个zrq-csr.json文件, 将文件放到之前playbooks下面的k8s/files/ssl下面
{
"CN": "zrq",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "BeiJing",
"ST": "BeiJing",
"O": "system:masters",
"OU": "System"
}
]
}
生成CA证书和私钥
## 在生成证书前k8s/files/ssl下面有以下文件
ca-key.pem ca.pem ca-config.json zrq-csr.json
## 执行命令生成证书
$ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes zrq-csr.json | cfssljson -bare zrq
## 生成以下文件
zrq-csr.json
zrq-key.pem
zrq.csr
zrq.pem
创建kubeconfig文件
# 设置集群参数
export KUBE_APISERVER="https://10.10.215.69:6443"
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=zrq.kubeconfig
# 设置客户端认证参数
kubectl config set-credentials zrq \
--client-certificate=/etc/kubernetes/ssl/zrq.pem \
--client-key=/etc/kubernetes/ssl/zrq-key.pem \
--embed-certs=true \
--kubeconfig=zrq.kubeconfig
# 设置上下文参数
kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=zrq \
--namespace="" \
--kubeconfig=zrq.kubeconfig
# 设置默认上下文
kubectl config use-context kubernetes --kubeconfig=zrq.kubeconfig
** 将生成的zrq.kubeconfig 替换到$HOME/.kube/config 即可使用这个配置文件
cp k8s/files/ssl/zrq.kubeconfig ~/.kube/config
RoleBinding
如果我们想限制zrq用户的权限, 需要使用RBAC创建角绑定用来将该用户的行为限制到一个或者多个namespace空间范围内 示例:
kubectl create rolebinding zrq-admin-binding --clusterrole=admin --user=zrq
kubectl create rolebinding zrq-admin-binding --clusterrole=admin --user=zrq --namespace=dev
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付