Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求进行鉴权。
节点鉴权器允许 kubelet 执行 API 操作。包括:
读取操作:
写入操作:
NodeRestriction
准入插件以限制 kubelet 只能修改自己的节点)NodeRestriction
准入插件以限制 kubelet 只能修改绑定到自身的 Pod)鉴权相关操作:
在将来的版本中,节点鉴权器可能会添加或删除权限,以确保 kubelet 具有正确操作所需的最小权限集。
为了获得节点鉴权器的授权,kubelet 必须使用一个凭证以表示它在 system:nodes
组中,用户名为 system:node:<nodeName>
。
上述的组名和用户名格式要与 kubelet TLS 启动引导过程中为每个 kubelet 创建的标识相匹配。
要启用节点授权器,请使用 --authorization-mode = Node
启动 apiserver。
要限制 kubelet 具有写入权限的 API 对象,请使用 --enable-admission-plugins=...,NodeRestriction,...
启动 apiserver,从而启用 NodeRestriction 准入插件。
system:nodes
组之外的 Kubeletsystem:nodes
组之外的 kubelet 不会被 Node
鉴权模式授权,并且需要继续通过当前授权它们的机制来授权。
节点准入插件不会限制来自这些 kubelet 的请求。
在一些部署中,kubelet 具有 system:nodes
组的凭证,但是无法给出它们所关联的节点的标识,因为它们没有 system:node:...
格式的用户名。
这些 kubelet 不会被 Node
授权模式授权,并且需要继续通过当前授权它们的任何机制来授权。
因为默认的节点标识符实现不会把它当作节点身份标识,NodeRestriction
准入插件会忽略来自这些 kubelet 的请求。
升级的 1.7 之前的使用 RBAC 的集群将继续按原样运行,因为 system:nodes
组绑定已经存在。
如果集群管理员希望开始使用 Node
鉴权器和 NodeRestriction
准入插件来限制节点对 API 的访问,这一需求可以通过下列操作来完成且不会影响已部署的应用:
Node
鉴权模式 (--authorization-mode=Node,RBAC
) 和 NodeRestriction
准入插件Node
鉴权器不会拒绝来自 kubelet 的请求(日志中没有持续的 NODE DENY
消息)system:node
集群角色绑定在 1.6 版本中,当使用 RBAC 鉴权模式 时,system:nodes
集群角色会被自动绑定到 system:node
组。
在 1.7 版本中,不再推荐将 system:nodes
组自动绑定到 system:node
角色,因为节点鉴权器通过对 secret 和 configmap 访问的额外限制完成了相同的任务。
如果同时启用了 Node
和 RBAC
授权模式,1.7 版本则不会创建 system:nodes
组到 system:node
角色的自动绑定。
在 1.8 版本中,绑定将根本不会被创建。
使用 RBAC 时,将继续创建 system:node
集群角色,以便与将其他用户或组绑定到该角色的部署方法兼容。