为用户生成证书
1、创建私钥
openssl genrsa -out user.key
2、用私钥创建证书签名请求文件(CN为用户名,O为用户分组)
openssl req -new -key user.key -out user.csr -subj "/CN=user/O=cluster-admin"
3、找到集群的CA证书和CA私钥,一般在/etc/kubernetes/pki/目录下,然后通过集群的CA证书和之前创建的csr文件,为用户颁发证书。其中-days指定证书过期时间。
openssl x509 -req -in user.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out may.crt -days 3650
4、最后将证书(user.crt)和私钥(user.key)保存到本地,这两个文件将被用来验证API请求
在本地将用户信息配置到kubectl中
k config set-cluster shanghai --certificate-authority user.crt --embed-certs --server https://47.101.89.231:6443
kubectl config set-credentials may --client-key user.key --client-certificate user.crt --embed-certs
kubectl config set-context user@shanghai --user user --cluster shanghai
kubectl create clusterrolebinding user-cluster-admin --clusterrole cluster-admin --user user --group cluster-admin
最后 kubectl config view 查看配置结果