认证
需要认证的节点
1. kubelet kube-proxy组件对apiserver的访问需要证书认证,首次访问apiserver时controller manager会为kubelet生成证书,后续访问都是以证书的形式。
2. 管理的pod对容器的访问需要认证,因为创建和销毁是动态的,所有没有办法进行证书认证,使用service account解决证书问题。
/root/.kube/config
包含集群名称,api地址,ca证书,集群当前角色,kubernetes组件通过指定不同的config文件切换到不同的集群
SA
secret的资源作用分为两类,一种用于保存用户保密信息的opaque,另一种用于SA的service-account-token,创建SA时自动创建。每个namespace都会创建一个SA,pod在创建时没有指定SA使用namespace默认的SA。
准入控制
通过插件实现额外的准入控制规则,甚至于API Server的一些主要的功能都需要通过 Admission Controllers 实现,比如 ServiceAccount。
NamespaceLifecycle: 防止在不存在的 namespace 上创建对象,防止删除系统预置 namespace,删除namespace 时,连带删除它的所有资源对象。
LimitRanger:确保请求的资源不会超过资源所在 Namespace 的 LimitRange 的限制。
ServiceAccount: 实现了自动化添加 ServiceAccount。
ResourceQuota:确保请求的资源不会超过资源的 ResourceQuota 限制。