kubectl 生成kubeconfig文件,然后给对应用户分配权限

kubectl连接群集,k8s中只可以通过接口创建 serviceaccount ,普通账号是不能通过接口创建的,k8s 通过kubectl 连接远程群集时候,如果通过证书的方式,那么生成证书的CN代表用户,O代表组。k8s...

kubernetes 教程,k8s 中文文档
https://kubernetes.io/zh/docs/reference/access-authn-authz/bootstrap-tokens/


kubectl连接群集,k8s中只可以通过接口创建 serviceaccount ,普通账号是不能通过接口创建的,k8s 通过kubectl 连接远程群集时候,如果通过证书的方式,那么生成证书的CN代表用户,O代表组。k8s中的RBAC机制中,通过,首先通过 CN和O 进行认证,两则存在其一即可(当然两则都不存在也是可以的,只是后面’授权‘的 时候,没有任何权限可以使用,认证之后开始查看CN和O中绑定的角色,根据其中配置的权限,确定kubectl 能看到的“东西”。


第一步:生成client的私钥,私钥不设置密码

openssl genrsa -out tianyh.key 2048


第二步:使用第一步生成的私钥,生成证书请求

openssl req -new -key tianyh.key  -out tianyh.csr -subj "/C=CN/ST=GuangDong/L=ShenZhen/O=system:masters/OU=meitianhui/CN=tianyh"


第三步:使用CA证书对生成的证书请求进行签名

openssl x509 -req -days 3650 -in tianyh.csr  -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out tianyh.pem


查看证书信息,-noout 结果中不显示证书的信息,没有这个,在结果会把证书整个显示出来,-text 文本方式打印

openssl x509 -noout -in shitian.pem -text

查看证书请求信息,和上面一样,只是把x509换成了req

openssl req  -in shitian.csr -noout -text

第四步:使用kubectl config 设置 apiserver地址和根证书,根证书主要用来认证


kubectl config set-cluster kubernetes1 --server=https://192.168.1.166:6443 --certificate-authority=ca.pem --embed-certs=true --kubeconfig=config


其中--embed-certs=true 不显示证书的路径,而是使用base64编码后的字符串来使用证书。用途就是,你可以把实际证书文件删除。kubernetes1 是kubeconfig的名称,第六步会用到


第五步:通过kubectl config set-credentials 来设置用户的凭证,kubectl连接远程的kubernetes 群集,基于BRAC的认证,所获得的权限,权限具体体现在生成证书的时候 CN的用户和O的group名称


kubectl config set-credentials tianyh --certificate-authority=ca.pem --client-key=tianyh.key --client-certificate=tianyh.pem --embed-certs=true --kubeconfig=config


第六步:设置上下文


kubectl config set-context k8s3  --cluster=kubernetes1  --user=tianyh --kubeconfig=config


--cluster 名称为第四步set-cluster 设置的名称, --user 为第五步 set-credentials 设置的名称, k8s3 为下一步切换上下需要切换的名称。

第七步:切换上下文。


kubectl config use-context k8s3 --kubeconfig=config       


其中k8s3 为上下文(context) 的名称,此名称为第六步设置的上下文的时候设置


第八步:kubectl连接多群集

分别生成各个k8s config 文件,比如 config1 ,config2  然后copy 一个集中控制台

执行:

KUBECONFIG=config1:config2 kubectl config view --flatten >config 合并一个config文件


把合并后的config 文件放到~/.kube 下即可

  • 发表于 2021-04-10 20:50
  • 阅读 ( 49 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章