kubernetes创建普通用户

kubernetes创建普通用户

案例:创建一个只能管理test空间下的Pods资源普通用户

普通用户并不是通过k8s来创建和维护,是通过创建证书和切换上下文环境的方式来创建和切换用户。

创建证书私钥文件
# openssl genrsa -out devuser.key 2048
 
用此私钥文件创建一个csr(证书签名请求)文件
# openssl req -new -key devuser.key -subj "/CN=devuser" -out devuser.csr
 
拿着证书签名请求文件向apiserver的证书去签署生成证书,签名申请的用户名是devuser
# openssl x509 -req -in devuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out devuser.crt -days 365

生成账号devuser
# kubectl config set-credentials devuser --client-certificate=./devuser.crt --client-key=./devuser.key --embed-certs=true

查看集群用户信息
kubectl config get-users
NAME
devuser   
kubernetes-admin

设置账号上下文并指定名称空间, 信息默认会保存在 $HOME/.kube/config
# kubectl config set-context devuser@kubernetes --cluster=kubernetes --user=devuser	--namespace

查看上下文信息
# kubectl config get-contexts
CURRENT   NAME                  CLUSTER      AUTHINFO     NAMESPACE
          devuser@kubernetes    kubernetes   devuser      
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin
提示:*表示当前所处的上下文环境用户


切换到账户devuser(通过上下文名称切换)
# kubectl config use-context devuser@kubernetes
Switched to context "devuser@kubernetes".

查看上下文信息
# kubectl config get-contexts
CURRENT   NAME                        CLUSTER      AUTHINFO        NAMESPACE
*         devuser@kubernetes          kubernetes   devuser            test
          kubernetes-admin@kubernetes kubernetes   kubernetes-admin
提示:*表示当前所处的上下文环境用户


使用devuser用户查看名称空间下的pod资源
# kubectl get po -n test
Error from server (Forbidden): pods is forbidden: User "devuser" cannot list resource "pods" in API group "" in the namespace "test"
#提示:禁止devuser用户列出test下API组中的pods资源
#解决方法:如果希望devuser用户对test下具备相应的权限,需要通过管理员身份进行授权


切换身份为管理员
# kubectl config use-context kubernetes-admin@kubernetes
# kubectl config get-contexts
CURRENT   NAME                        CLUSTER      AUTHINFO        NAMESPACE
          devuser@kubernetes          kubernetes   devuser            test
*         kubernetes-admin@kubernetes kubernetes   kubernetes-admin
openssl选项
openssl genrsa -out devuser.key 2048
这条命令使用Openssl工具来生产一个新的私钥文件

-out:指定加密后的文件存放路径

openssl req -new -key devuser.key -subj "/CN=devuser" -out devuser.csr
这条命令使用OpenSSL工具来生成一个新的证书签名请求(CSR)。下面是每个选项的详细解释:

req: 这个选项告诉OpenSSL工具执行证书请求操作。

-new: 这个选项指示OpenSSL生成一个新的证书请求。

-key devuser.key: 这个选项指定了私钥文件的路径和文件名。在这个例子中,私钥文件是devuser.key。

-subj "/CN=devuser": 这个选项指定了证书的主题(Subject)。在这个例子中,证书的主题是/CN=devuser,其中CN表示Common Name,即通用名称。

-out devuser.csr: 这个选项指定了生成的证书签名请求的输出文件路径和文件名。在这个例子中,输出文件是devuser.csr。

openssl x509 -req -in devuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out devuser.crt -days 365
这条命令使用OpenSSL工具来生成一个由证书签名请求(CSR)签署的证书。下面是每个选项的详细解释:

x509: 这个选项告诉OpenSSL工具执行X.509证书操作。

-req: 这个选项指示OpenSSL使用证书签名请求(CSR)来生成证书。

-in devuser.csr: 这个选项指定了输入文件的路径和文件名。在这个例子中,输入文件是devuser.csr,即之前生成的证书签名请求文件。

-CA /etc/kubernetes/pki/ca.crt: 这个选项指定了CA(Certificate Authority)的证书文件路径和文件名。在这个例子中,CA证书文件是/etc/kubernetes/pki/ca.crt。

-CAkey /etc/kubernetes/pki/ca.key: 这个选项指定了CA的私钥文件路径和文件名。在这个例子中,CA私钥文件是/etc/kubernetes/pki/ca.key。

-CAcreateserial: 这个选项告诉OpenSSL工具创建一个新的序列号文件,用于生成证书。

-out devuser.crt: 这个选项指定了生成的证书的输出文件路径和文件名。在这个例子中,输出文件是devuser.crt。

-days 365: 这个选项指定了证书的有效期,以天为单位。在这个例子中,证书的有效期是365天。
在OpenSSL中,-CA选项用于指定证书颁发机构(CA)的证书文件和私钥文件。这是因为在生成证书时,需要使用CA的证书和私钥来对证书签名请求进行签名,从而生成有效的证书。通过指定-CA选项,OpenSSL可以找到CA的证书和私钥文件,并将其用于证书生成过程。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值