Size: a a a

2019 November 08

MF

Maxim Filatov in K8Spb
и там целый сраный квест
источник

MF

Maxim Filatov in K8Spb
во-первых, есть хитрожопая конфигмапа extension-apiserver-authentication в неймспейсе kube-system
источник

MF

Maxim Filatov in K8Spb
во-вторых, в дело вступает ещё как минимум одна ссл-кейпара - proxy-client, которая должна быть подписана с помощью CA requestheader-client-ca
источник

MF

Maxim Filatov in K8Spb
CA-кейпара requestheader-client-ca может быть как отдельной (хорошо), так и той же самой, что kubelet-certificate-authority (плохо)
источник

MF

Maxim Filatov in K8Spb
дальше мы приходим к RBAC'у и выдаём сервисаккаунту нашего чудного приложения, косплеящего аписервер, кластерроль system:auth-delegator
источник

MF

Maxim Filatov in K8Spb
это нужно по очень смешной причине
источник

MF

Maxim Filatov in K8Spb
когда вы делаете kubectl apply -f <какой-нить-кастом-апи-манифест>, происходит следующее:
источник

MF

Maxim Filatov in K8Spb
- кубецтл как обычно логинится в апи с креденшлами из вашего ~/.kube/config
- агрегатор (это такой контроллер отдельный) берёт ваши креденшлы, распихивает их в HTTP-заголовки X-Remote-Extra-, X-Remote-Group, X-Remote-User (по умолчанию, так-то можно и в любые другие напихать) и несёт всё это в псевдо-аписервер, аутентифицируясь сертификатом proxy-client
источник

MF

Maxim Filatov in K8Spb
чувствуете подвох? - у сертификата ж есть CN, который какбэ является его юзернеймом, но сертификат-то один на всех, а вам нужно пройти собственную авторизацию в этом псевдо-аписервере
источник

MF

Maxim Filatov in K8Spb
и вот тут-то, пользуясь кластерролью system:auth-delegator, псевдо-аписервер превращает те чудные HTTP-заголовки в запрос на авторизацию и какбэ заново вас авторизует уже как вас, а не CN сертификата (ну то есть делает CREATE объекта SubjectAccessReview в настоящем апи)
источник

MF

Maxim Filatov in K8Spb
и вот пока не произойдёт магия со второй авторизацией, вы для псевдо-аписервера - system:anonymous
источник

MF

Maxim Filatov in K8Spb
точнее не совсем так
источник

MF

Maxim Filatov in K8Spb
если первая часть магии работает и proxy-client кейпара есть, то system:anonymous превращается в CN прокси-клиента
источник

MF

Maxim Filatov in K8Spb
про которого тоже как правило никто ничего не знает, конечно же
источник

TS

Timur Shafeev in K8Spb
Я аж закурил от такого. Почитать из этого всего только если исходники, я так понел.
источник

G

GithubReleases in K8Spb
istio/istio tagged: 1.4.0-beta.3
Link: https://github.com/istio/istio/releases/tag/1.4.0-beta.3
Release notes:
Istio release 1.4.0-beta.3
источник

MF

Maxim Filatov in K8Spb
helm-2.16.0 сломан, be aware
источник

MF

Maxim Filatov in K8Spb
источник

MF

Maxim Filatov in K8Spb
источник

MF

Maxim Filatov in K8Spb
ждём 2.16.1
источник