Определения, которые я использую в этом вопросе:
Я читаю настроить уровень агрегации руководство, и я не понимаю основной использование apiserver --requestheader-allowed-names
. В разделе Аутентификация клиента Kubernetes Apiserver он говорит:
Соединение должно быть выполнено с использованием сертификата клиента, чей CN является одним из перечисленных в --requestheader-allowed-names. Примечание. Вы можете установить этот параметр как пустой как --requestheader-allowed-names = "". Это будет указывать для расширения apiserver, что любой CN приемлем.
Это звучит как основной За настройку отвечает apiserver. Несомненно расширение apiserver будет контролировать это и определять, что приемлемо? Зачем настраивать это на основной apiserver вообще? Т.е. Общие имена сертификатов клиента - это то, что они есть, и это зависит от расширение apiserver принять / отклонить их?
Или это параметры смешивания раздела документа, которые передаются обоим основной и расширение apiservers?
Думаю, теперь я понимаю, почему основной kube-apiserver нужен этот список разрешенных имен: kube-apiserver - это внешний интерфейс для всех расширений apiservers. Таким образом, запросы всегда сначала проходят через kube-apiserver; Это агрегаты запросы, а затем передает их в правильный серверный сервер расширения. Следовательно, необходимо знать, какие CN принимать. Т.е. запрос к серверу расширений будет идти:
client request -> kube-apiserver -> extension-apiserver
Затем apiserver расширения также проверит CN после получения запроса после того, как он был перенаправлен туда основным kube-apiserver.