Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
在K8S中,当我们试图通过API与集群资源交互时,必定经过集群资源管理对象入口kube-apiserver。显然不是随随便便来一个请求它都欢迎的,每个请求都需要经过合规检查,包括Authentication(身份验证)、Authorization(授权)和Admission Control(准入控制)。通过一系列验证后才能完成交互。
Kubernetes API 请求从发起到持久化到ETCD数据库中的过程如下:
“三个A”我们可以简单理解为:
Authentication
:**你是谁?**你能登录系统么?Authorization
:**你想做什么?**你有相应的权限么?Admission Control
: 在apiserver中准入控制会以控制器插件的方式存在,类似于各类web框架中的中间件,可以在kube-apiserver的yml中添加控制器插件--enable-admission-plugins
开启。
这篇小作文我们主要来学习K8S中关于认证与授权相关的知识,看看他们是如何实现的。包含如下内容:
- K8S 通过证书认证
- K8S 通过RBAC 授权
一、 K8S 通过证书认证
Authentication(身份认证),即核查用户能否进入K8s集群。一般来说k8s中有两类用户,普通用户和服务账户(Service Account)。
普通用户,使用者是人,即用户可以通过 kubectl 命令、或通过REST请求访问 API,但是请注意K8s不提供普通用户管理的资源对象,那所谓的普通用户哪里的?很简单只要你能通过k8s身份认证策略那么你就是一个普通用户。而Service Account 则是针对运行在 Pod 中的进程而言的。
K8S的几种验证方式:
- Certificate
- Token
- OpenID
- Web Hook
其中Certificate(证书)是在普通用户(客户端)中被广泛使用的验证方式。通过客户端证书进行身份验证时,