Kubernetes 聚合证书 - apiserver 客户端身份验证允许的名称

Kubernetes 聚合证书 - apiserver 客户端身份验证允许的名称

我在这个问题中使用的定义:

  • 主 apiserver:核心 kube-apiserver
  • 扩展 apiserver:类似 metrics-server 的插件

我正在阅读配置聚合层指南,我不明白主要的apiserver 的使用--requestheader-allowed-names。在章节Kubernetes Apiserver 客户端身份验证它说:

必须使用客户端证书进行连接,其 CN 是 --requestheader-allowed-names 中列出的 CN 之一。注意:您可以将此选项设置为空白,即 --requestheader-allowed-names=""。这将向扩展 apiserver 指示任何 CN 都是可以接受的。

这听起来像是主要的apiserver 负责设置它。扩大apiserver 会控制这一点并确定什么是可接受的?为什么要在主要的apiserver 吗?即客户端证书通用名称是什么,这取决于扩大apiserver 接受/拒绝这些?

或者是文档部分混合选项传递给主要的扩大api 服务器?

答案1

我想我现在明白为什么主要的kube-apiserver 需要此允许名称列表:kube-apiserver 是前端对于所有扩展 apiserver。因此请求总是先经过 kube-apiserver;它聚合体请求,然后将它们传递到正确的后端扩展 apiserver。因此它需要知道要接受哪些 CN。即对扩展服务器的请求将如下:

client request -> kube-apiserver -> extension-apiserver

一旦扩展 apiserver 将请求由主 kube-apiserver 路由到 CN,它就会在收到请求后检查 CN。

相关内容