创建一个用户 只能管理soul命名空间下的所有资源
在master节点上
useradd souluser && passwd souluser
mkdir -p /usr/local/install-k8s/cert/souluser
cd !$
vim souluser-csr.json
{
"CN": "souluser",
"hosts": [], #可以访问的主机,空为所有
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "System"
}
]
}
1.下载证书生成工具
cd /usr/local/bin
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
mv cfssl_linux-amd64 cfssl && mv cfssljson_linux-amd64 cfssljson && mv cfssl-certinfo_linux-amd64 cfssl-certinfo
chmod a+x *
cd /etc/kubernetes/pki
cfssl gencert -ca=ca.crt -ca-key=ca.key -profile=kubernetes /usr/loacl/install-k8s/cert/souluser/souluser-csr.json | cfssljson -bare devuser
生成了souluser.csr和souluser-key.pem,证书请求和证书私钥。
2.设置群集参数
cd /usr/local/install-k8s/cert/souluser
声明环境变量 export KUBE_APISERVER="https://IP:6443"
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=ture --server=${KUBE_APISERVER} --kubeconfig=souluser.kubeconfig
(PS: 指定ca的证书,指定是否要加密认证,指定服务器信息,指定创建出来的文件)
生成了souluser.kubeconfig文件
3.设置客户端认证参数
kubectl config set-credentials souluser --client-certificate=/etc/kubernetes/pki/souluser.pem --client-key=/etc/kubetnetes/pki/souluser-key.pem --embed-certs=true --kubeconfig=souluser.kubeconfig
(PS: 指定客户端的证书,指定私钥,开启加密认证,写到souluser.kubeconfig文件中)
4.设置上下文参数
kubectl create namespace soul
绑定至某一个名称空间(本文示例soul的namespace)
kubectl config set-context kubernetes --cluster=kubernetes --user=souluser --namespace=soul --kubeconfig=souluser.kubeconfig
(PS: 指定集群,指定用户,指定名称空间,写到souluser.kubeconfig文件中)
5.设置默认上下文
创建一个rolebinding,下放权限(rolebinding我也不是很明白- -.)
kubectl create rolebinding souluser-admin-binding --clusterrole=admin --user=souluser --namespace=soul
mkdir /home/souluser/.kube
cp souluser.kubeconfig /home/souluser/.kube/config
chown souluser:souluser /home/souluser/.kube/config
切换上下文,让kubectl读取到配置信息
kubectl config use-context kubernetes --kubeconfig=/home/souluser/.kube/config