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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes集群中,API Server是控制平面中最重要的组件之一,它是所有组件的入口点,用于管理整个集群。API Server对外提供RESTful API接口,供客户端和其他组件访问和操作集群中的资源。因此,正确地配置API Server对于集群的稳定性和安全性至关重要。 下面是设置Kubernetes集群中API Server的一些步骤: 1. 选择API Server的认证方式Kubernetes支持多种认证方式,包括基于Token的认证、基于证书的认证等。在设置API Server之前,需要确定所使用的认证方式,并进行相应的配置。 2. 配置API Server的访问控制:使用Kubernetes中的RBAC(Role-Based Access Control)机制来配置API Server的访问控制。可以通过RBAC配置不同用户或组的权限,确保只有授权的用户才能访问API Server。 3. 配置API Server的TLS证书:为API Server配置TLS证书,确保通信过程中的安全性。 4. 配置API Server的访问地址和端口:API Server的默认监听地址和端口为127.0.0.1:6443,如果需要改变API Server的监听地址和端口,可以通过命令行参数或配置文件进行配置。 5. 配置API Server的HA模式:当需要保证API Server的高可用性时,可以使用Kubernetes提供的HA模式,通过使用多个API Server来实现。 以上是设置Kubernetes集群中API Server的一些基本步骤,具体配置可以根据实际情况进行调整。建议使用Kubernetes提供的工具和文档进行配置,以确保正确性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值