在K8S体系中有两种账号类型:User accounts(用户账号),即针对human user的;Service accounts(服务账号),即针对pod的。这两种账号都可以访问 API server,都需要经历认证、授权、准入控制等步骤,相关逻辑图如下所示:
在K8S架构中,可以使用多种认证方式,比如:X509 Client Certs(X509 客户端证书认证)、Static Token File (静态令牌文件认证)、Bootstrap Tokens(启动引导令牌认证)
要开启客户端证书认证功能,需要在kube-apiserver中设置–client-ca-file=SOMEFILE选项,所引用的文件一般是一个CA机构的根证书文件,必须包含一个或者多个证书机构。该认证方式一般用于kube-controller-manager、kube-scheduler和kube-proxy组件向kube-apiserver认证自己。 如果提供了客户端证书并且证书被kube-apiserver验证通过,则客户端证书中的subject 中的公共名称(Common Name)