Kubernetes详解(五十一)——Kubernetes用户创建

今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes用户创建。
在上文Kubernetes详解(五十)——Kubernetes权限配置中,我们介绍了Kubernetes的config资源定义了Kubernetes的集群和用户。今天,我们就来介绍一下如何创建Kubernetes的用户。

一、Kubernetes证书生成

要创建Kubernetes集群的用户,首先要设置用户所使用的证书。有关CA证书相关原理介绍请参考:CA认证与HTTPs原理介绍,有关CA证书实战请参考:自建CA生成证书详解
注意:在本次实战中,我们的证书注册机构和证书申请者重合,Kubernetes集群是CA,新用户是证书申请者,但是原理与上述两篇文章是完全相同的。
首先,要为新用户申请证书,该新用户就必须要有自己的密钥,执行命令:

openssl genrsa -out pzz.key 2048

可以创建一对密钥,以供用户使用,如下所示:
在这里插入图片描述
该命令执行后,会生成一个pzz.key的文件,如下所示:
在这里插入图片描述
在有了密钥后,我们要向向证书注册的CA申请证书,还必须生成一张证书请求文件。执行命令:

openssl req -new -key pzz.key -out pzz.csr -subj "/CN=pzz"

该命令执行结果如下:
在这里插入图片描述
从上图中可以看出,在该命令执行后,我们生成了pzz.csr的证书请求文件。
之后,我们就需要使用Kubernetes集群的证书来进行签发了。Kubernetes集群的证书在/etc/kubernetes/pki/目录下,该目录下有ca.crt、ca.key两个文件,这两个文件分别是Kubernetes的证书和密钥。执行命令:

openssl x509 -req -in pzz.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out pzz.crt -days 1095

就可以为Kubernetes的新用户签发一张证书了,如下所示:
在这里插入图片描述
我们得到的证书文件为pzz.crt,我们可以执行命令:

openssl x509 -in pzz.crt -text -noout

来查看一下该证书的内容,如下所示:
在这里插入图片描述
在这里插入图片描述

二、Kubernetes用户创建

在完成新用户的证书申请后,接下来我们就可以创建新用户了。在创建用户前,我们的Kubernetes集群如下所示:
在这里插入图片描述
之后,我们执行命令:

kubectl config set-credentials pzz --client-certificate=./pzz.crt --client-key=./pzz.key --embed-certs=true

来创建用户,在上述命令中,pzz为新创建的用户名,pzz.crt和pzz.key为刚刚我们生成的密钥和证书,该命令执行结果如下所示:
在这里插入图片描述
有了用户认证后,我们来添加我们的新用户的kubernetes集群的管理权限,执行命令:

kubectl config set-context pzz@kubernetes --cluster=kubernetes --user=pzz

使得pzz用户拥有登录Kubernetes集群的权限,该命令执行结果如下所示:
在这里插入图片描述
在上述操作完成后,我们执行命令:

kubectl config view

结果如下所示:
在这里插入图片描述
从上图红圈部分可见,我们的新用户创建成功,并且已经对Kubernetes集群拥有了操作权限。执行命令:

kubectl config use-context pzz@kubernetes

可以将当前用户切换到pzz,如下所示:
在这里插入图片描述
在这里插入图片描述
但是,尽管我们能够进入该集群,但是我们并没有对该集群的任何执行命令权限,如下所示:
在这里插入图片描述
从上图中可以得到,我们的命令被禁止。
如果我们想正常的使用该角色,我们还必须进行Kubernetes的RBAC授权,有关RBAC的原理请参考:Kubernetes详解(五十二)——Kubernetes访问控制有关RBAC授权的相关实战请参考:
Kubernetes详解(五十三)——Kubernetes Role创建和Rolebinding
Kubernetes详解(五十四)——Kubernetes ClusterRole创建和ClusterRolebinding
Kubernetes详解(五十五)——ClusterRole与RoleBinding
在完成上述任意一配置后,我们就可以使用新用户来控制Kubernetes集群了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124486748