Я добавляю прокси перед API kubernetes для аутентификации пользователей (среди прочих действий) с помощью домашней системы аутентификации.
![enter image description here](https://i.stack.imgur.com/7OevY.png)
Я изменил свою конфигурацию kube, чтобы kubectl обращался к прокси.Прокси-сервер имеет свой собственный kubeconfig с действительными данными центра сертификации, поэтому мне не нужны никакие учетные данные.
Пока это работает нормально, вот минимальная конфигурация, которая мне нужна локально:
clusters:
- cluster:
server: http://localhost:8080
name: proxy
contexts:
- context:
cluster: proxy
name: proxy
current-context: proxy
Теперь аутентификация должна основываться на токене, который, я надеялся, я смогу передать как часть заголовка запроса kubectl.
Я попытался выполнить несколько настроек, добавив пользователя стокен в kubeconfig, такой как
clusters:
- cluster:
server: http://localhost:8080
name: proxy
contexts:
- context:
cluster: proxy
user: robin
name: proxy
current-context: proxy
users:
- name: robin
user:
token: my-token
Или указание поставщика аутентификации, такого как
clusters:
- cluster:
server: http://localhost:8080
name: proxy
contexts:
- context:
cluster: proxy
user: robin
name: proxy
current-context: proxy
users:
- name: robin
user:
auth-provider:
config:
access-token: my-token
Я даже попытался без какого-либо пользователя, просто добавив свой токен как часть настроек, так как все, что я хочу, это иметь токен в заголовке
clusters:
- cluster:
server: http://localhost:8080
name: proxy
contexts:
- context:
cluster: proxy
name: proxy
current-context: proxy
preferences:
token: my-token
Но я так и не смог увидеть мой токен как часть заголовка запроса на стороне прокси.Дамп запроса, все, что я получил, это:
GET /api/v1/namespaces/default/pods?limit=500 HTTP/1.1
Host: localhost:8080
Accept: application/json;as=Table;v=v1beta1;g=meta.k8s.io, application/json
Accept-Encoding: gzip
User-Agent: kubectl/v1.11.0 (darwin/amd64) kubernetes/91e7b4f
Я явно что-то здесь упускаю, как kubectl не может передать информацию пользователя в своем заголовке?Допустим, у меня нет прокси-сервера, как работает аутентификация токена «kubectl -> kubernetes»?
Если у кого-то есть опыт добавления такого рода слоя аутентификации между kubernetes и клиентом, я мог бы использовать некоторыепомогите :)