如何深入理解的我身份的实现机制

  

一、k8认证

  

我们知道apiserver有以下几种认证方式:

  
      <李> X509客户确实的事情   <李>静态标记文件   <李>引导标记   <李>静态密码文件   <李>服务帐户标记   <李> OpenID连接令牌   <李> Webhook令牌认证   <李>身份验证代理李   
  

一般我们使用二进制自建k8集群,或者使用kubeadm创建的集群,集群的管理者,也就是k8中用户这个对象,都是使用的X509证书进行验证,如果属于同一个CA签发的,就认可这个用户;

  

企业为了减少用户管理的复杂程度,需要想办法如何把我的用户集成到的集群中,这样我们就不需要耽误为的创建用户,减少一套用户的维护工作,那这是如何集成的呢,是通过了美丽的Webhook令牌认证,其认证过程架构图如下:

  

如何深入理解的我身份的实现机制

  

我们可以从图中看到多了身份验证这一部分,通过aws-iam-authenticator,我们可以知道,这是运行在的控制平面中的一组DaemonSet仓,用来接收apiserver的认证请求。

  

二、解剖的

  

2.1,创建的

  

我们使用eksctl这个命令创建的集群,默认eksctl会调用awscli的配置,所以我们需要先配置好awscli,相关的用户或者角色具有创建的集群的权限即可:

  
 <代码> eksctl us-east-1 \创建集群——名字的区域
  ——节点类型=t2。小,节点1——ssh公共密钥. ssh/id_rsa。酒吧\
  ——管理——区域us-east-1f us-east-1c——vpc-nat-mode禁用 
  

集群创建好之后,会自动帮我们配置好kubeclt需要的配置文件,并且集群的创建者会自动获取集群集群管理员的角色,拥有最高权限。

  

2.2,引入aws-iam-authenticator

  

我们首先可以通过监测日志去查看kube-apiserver的启动参数,我们可以看到有这样一组启动参数:

  
 <代码>——authentication-token-webhook-config-file="/etc/kubernetes/身份/apiserver-webhook-kubeconfig.yaml” 
  

说明我们已经启动了webhook方式的认证,那参数后面的yaml文件里面是什么呢,我们可以通过aws-iam-authenticator的github文档可以看的到,我们使用如下命令进行生成:

  
 <代码> wangzan: ~/美元k8 aws-iam-authenticator init - openssl兰德16个十六进制的
  信息(2020 - 01 - 07 t07:50:54z)生成一个新的私钥和证书certBytes=804 keyBytes=1192
  信息(2020 - 01 - 07 t07:50:54z)保存新密钥和证书certPath=cert。pem keyPath=key.pem
  信息(2020 - 01 - 07 t07:50:54z)加载现有密钥对certPath=cert。pem keyPath=key.pem
  信息(2020 - 01 - 07 t07:50:54z)写作webhook kubeconfigPath=aws-iam-authenticator.kubeconfig kubeconfig文件
  信息(2020 - 01 - 07 t07:50:54z)复制cert.pem/var/aws-iam-authenticator/证书。pem alt="如何深入理解的我身份的实现机制"> 

如何深入理解的我身份的实现机制