Size: a a a

Kubernetes — русскоговорящее сообщество

2020 November 05

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Нету
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Мозг взорвался
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Зачем тебе это
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
George Gaál
Зачем тебе это
Теперь что касается metric-server'а, которому нужно передать валидный CA для всех кубелетов или опцию --kubelet-insecure-tls чтобы не ебать мозги, есть классный issue, в котором я попытался изложить суть проблемы:

https://github.com/kubernetes/kubeadm/issues/1223#issuecomment-722629987
источник
2020 November 06

k

kvaps in Kubernetes — русскоговорящее сообщество
В крадце: по дефолту все ноды в kubeadm кластере регистрируются и получают два серта:

- с одним они ходят в API
- на другой они слушают

Так вот первый сертификат (клиентский) выдаёт им сам куб, автоматически.
Второй серт (для serving) автоматически получить уже не выйдет, поэтому по умолчанию они генерят свой собственный CA и подписывают им свой сертификат на котором и слушают.

Проблема заключается в том что metric-server не может доверять им, так-как в этом случае пришлось бы передать ему CA-сертификаты со всех кубелетов.

Возникает вопрос: как kube-apiserver доверяет кубелетам, когда выполняет запросы на просмотр логов или kubectl exec
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Видимо, для куба в этом нет проблемы
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Потому что ты не можешь вджойнить ноду без токена
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Типа даже второй сертификат может быть кривой, но всем пофиг
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
прошу меня простить
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
но кажется, что авторы куба больные ублюдки
источник

S

Sergey in Kubernetes — русскоговорящее сообщество
George Gaál
но кажется, что авторы куба больные ублюдки
источник

c

corsars in Kubernetes — русскоговорящее сообщество
kvaps
Переслано от kvaps
Так, я кажись понял.
Кубелеты генерят сертификаты используя свои собственные CA, так как при джойне ноды apiserver в принципе не может гарантировать, что нода, которая джойнится, это та самая нода, а не какой-то левак с тем же именем и токеном доступа к кластеру.

По сути kubeadm-токен может гарантировать ноде что она джойнится к нужному api-server'у, но никак не наоборот.

В связи с этим был придуман механизм csr, т.е. каждому кубелету достаточно добавить в конфиг
serverTLSBootstrap: true
и после джойна в кластер он непременно запросит новый сертификат.

kubectl get csr
- отобразить все запросы

kubectl certificate approve <some-request>
- заапрувить

после аппрува, кубелет получает свой собственный сертификат подписанный CA apiserver'а
Так в исходниках весь алгоритм расписан там три файла участвует крипта, клиент и выпускающий СА enroll, я тоже долго пытался понять пока client.go не посмотрел
источник

c

corsars in Kubernetes — русскоговорящее сообщество
kvaps
Переслано от kvaps
- как именно apiserver верифицирует подключение к конкретному кубелету, если опция serverTLSBootstrap выключена, по дефолту kubeadm деплоит именно так.

*я знаю что нынче кубелетам положено использовать тип аутентификации Node, но как apisever может быть уверен что это тот самый кубелет запросил соединение?*
Завтра гляну что там в исходниках про взаимодействие
источник

c

corsars in Kubernetes — русскоговорящее сообщество
George Gaál
Потому что ты не можешь вджойнить ноду без токена
Легко Георгий. Точее сгенерировать для нее сертификат и заменить его в ноде. Завтра пришлю как
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
corsars
Легко Георгий. Точее сгенерировать для нее сертификат и заменить его в ноде. Завтра пришлю как
я не Георгий
источник

c

corsars in Kubernetes — русскоговорящее сообщество
George Gaál
я не Георгий
Сорри Жорж
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
блин
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
ты меня специально злишь ?
источник

EI

Edem Injection in Kubernetes — русскоговорящее сообщество
Жорик
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Edem Injection
Жорик
Ну да, тут два уже Жоры
источник