声明:本文乃“运维家”原创,转载请注明出处,更多内容请关注公众号“运维家”。
主旨
本节主要介绍一下,k8s客户端如何经过认证访问到apiserver,以及k8s如何授权,是怎么判定访问者拥有什么权限等内容。
认证
1、客户端认证
客户端认证也称为TLS双向认证,为什么这么说呢,是因为kubectl在访问apiserver的时候,apiserver也要认证kubectl是否正确,他们都会访问CA来进行验证,如下图:
2、Bearertoken
Bearertoken的方式,可以理解为apiserver将一个密码通过了非对称加密的方式告诉了kubectl,然后通过该密码进行相互访问,和TLS类似,但是少了CA,如下图:
3、Serviceaccount
上面客户端证书认证和Bearertoken的两种认证方式,都是外部访问apiserver的时候使用的方式,那么我们这次说的Serviceaccount是内部访问pod和apiserver交互时候采用的一种方式。
Serviceaccount包括了,namespace、token、ca,且通过目录挂载的方式给予pod,当pod运行起来的时候,就会读取到这些信息,从而使用该方式和apiserver进行通信。如下图:
授权-RBAC
认证我们介绍完了,不过仅仅是认证是不够的,认证只能确定访问者没有问题,那么访问者有什么权限呢?他能访问哪些东西呢?这时候我们就需要授权了。在k8s中的授权模式采用的是RBAC,即:基于角色的访问控制,分为以下三种类型来进行:
剩余内容请转至VX公众号 “运维家” ,回复 “112” 查看。