认证

认证是认证这个人是谁

  1. 客户端证书认证(TLS双向认证)

k8s有自己的自定义CA证书中心, 会认证公钥是否合法

  1. BearerToken

它会把一个非常复杂的密码预先放在ApiServer中, 然后把这个密码告诉client, client可以通过这个密码和Apiserver进行通信, ApiServer验证通过就可以

  1. ServiceAccount

适合集群内部, 包含了(namespace, token, ca), 比如pod会把这些信息通过文件目录挂载到自己这, Apiserver拿到这些信息后认证下就可以和 apiserver进行交互了

授权

ABAC
Webhook
RBAC

RBAC: RoleBinding 角色绑定
namespace对不同资源进行隔离
Role放在namespace, 代表这个角色只能有当前命名空间下的权限

如果是跨namespace的角色, k8s有个clusterRole, 然后数据是在ClusterRoleBinding里面的
image.png

AdmisionControl

指令从一个个的 AdmisionControl走过去, 他们之间独立存在, 类似filter过滤器链

image.png