kubernetes 集群的访问-证书方式

集群的访问官方文档
使用 kubeconfig 文件组织集群访问

简介:
在将集群、用户和上下文定义在一个或多个配置文件中之后,用户可以使用 kubectl config use-context命令快速地在集群之间进行切换

用于配置集群访问的文件有时被称为 kubeconfig 文件。
这是一种引用配置文件的通用方式,
并不意味着存在一个名为 kubeconfig 的文件。

准备开始前提:
1、Kubernets集群
2、kubectl 的版本应该与集群的 API 服务器使用同一次版本号(kubectl version --client)命令可查看信息
3、准备好证书

删除:

  • 删除用户,可以运行
 kubectl --kubeconfig=config-demo config unset users.<name>
  • 删除集群,可以运行
 kubectl --kubeconfig=config-demo config unset clusters.<name>
  • 删除上下文,可以运行
kubectl --kubeconfig=config-demo config unset contexts.<name>

一、创建证书

将证书统一存放在/etc/kubernetes/pki目录下

cd /etc/kubernetes/pki
(umask 077; openssl genrsa -out dengm.key 2048)
openssl req -new -key dengm.key -out dengm.csr -subj "/CN=dengm"    
openssl x509 -req -in dengm.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out dengm.crt -days 3650
openssl x509 -in dengm.crt -text -noout

#注解CN 填写集群访问的用户名

二、查看命令帮助

kubectl  config -h

在这里插入图片描述
三、创建存放访问文件

mkdir -p /root/kubernetes/k8sconfig

设置 KUBECONFIG 环境变量

export KUBECONFIG_SAVED=192.168.11.128

192.168.11.128 k8smaster主机的ip地址

接下来我们创建集群、用户名和上下文到一个文件中

四、将群集详细信息添加到配置文件中

1、将集群信息创建到/root/kubernetes/k8sconfig目录下

kubectl config --kubeconfig=/root/kubernetes/k8sconfig/kubeconfig \
set-cluster dengm \
--server=https://$KUBECONFIG_SAVED:6443 \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true

在这里插入图片描述

2、查看信息

cat kubeconfig

在这里插入图片描述

五、用户详细信息添加到配置文件中

1、将用户信息创建到/root/kubernetes/k8sconfig目录下

kubectl config --kubeconfig=/root/kubernetes/k8sconfig/kubeconfig \
set-credentials dengm \
--client-certificate=/etc/kubernetes/pki/dengm.crt \
--client-key=/etc/kubernetes/pki/dengm.key \
--embed-certs=true

2、查看信息
在这里插入图片描述

六、将上下文详细信息添加到配置文件中:

1、将上下文信息创建到/root/kubernetes/k8sconfig目录下

kubectl config --kubeconfig=/root/kubernetes/k8sconfig/kubeconfig \
set-context dengm@kubernetes \
--cluster=dengm \
--namespace=default \
--user=dengm
--cluster 集群名
--namespace 名称空间
--user 用户,上面创建的证书cn的用户

2、由于信息过多显示,可使用此命令查看

kubectl config --kubeconfig=/root/kubernetes/k8sconfig/kubeconfig view

在这里插入图片描述

3、这个dengm用户只能在default空间下工作。

七、模拟开发人员dengm登录

1、创建用户

useradd  dengm && echo root |passwd --stdin dengm

2、查看kubernetes主节点有个目录

ll  ~/.kube/

在这里插入图片描述

3、将/root/kubernetes/k8sconfig/kubeconfig复制一份到dengm用户.kube/下

mkdir -p  /home/dengm/.kube/ && cp  -r  /root/kubernetes/k8sconfig/kubeconfig  /home/dengm/.kube/ && mv /home/dengm/.kube/kubeconfig /home/dengm/.kube/config

4、修改复制过去的文件
在这里插入图片描述
文件应该是dengm权限,OK进行修改

chown  -R  dengm:   /home/dengm/.kube/ &&  ll /home/dengm/.kube/   

在这里插入图片描述

5、用户登录测试

  • 登录
su - dengm
  • 命令补全
echo "source <(kubectl completion bash)" >> ~/.bashrc
  • 测试访问默认名称空间下的Pod
kubectl  get  pod

在这里插入图片描述

  • 授权访问允许Pod(不建议除非运维管理员)

切换kubernetes-admin@kubernetes

exit && kubectl  config  use-context  kubernetes-admin@kubernetes

生成用户绑定用户集群权限yaml文件

kubectl  create  clusterrolebinding  dengm --clusterrole=cluster-admin --user=dengm --dry-run=client -o yaml  > dengm.yaml

在这里插入图片描述
生成dengm权限的集群绑定,并且切换到dengm用户

kubectl  apply -f dengm.yaml && su  - dengm

再次访问:

 kubectl  config  use-context  dengm@kubernetes
k && kubectl  get  pod  -A

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值