Mikrotik Ninja
3.15K subscribers
325 photos
6 videos
54 files
1.09K links
Канал по новым компьютерным технологиям и защите компьютерных программ


Блог http://bubnovd.net
https://medium.com/@dbubnov
https://xakep.ru/author/bubnovd/
Мысли неглупых людей https://t.me/channel1name
Книги https://t.me/mreadninja
Download Telegram
Kubernetes Failure Stories

https://k8s.af/

#k8s #fail
Название первой статьи хорошо описывает исход событий когда забываешь про сертификаты в k8s. Ну а сами статьи говорят что делать, когда кластера уже нет, а тыква есть.

Ну а чтобы такого не случалось настраивайте мониторинг. Ведь гораздо приятнее получить аларм о заканчивающемся через месяц сертификате и неспешно его продлить, чем подпрыгивать в свой выходной/отпуск

https://habr.com/ru/company/southbridge/blog/465733/

https://docs.wire.com/how-to/administrate/kubernetes/certificate-renewal/scenario-1_k8s-v1.14-kubespray.html

#k8s #cert
Есть такой замечательный мануал по деплою Kubernetes от одного из разработчиков этой платформы Kelsey Hightower - Kubernetes. The Hard Way. Многие, изучающие k8s проходят его.

Оказывается, и Calico имеет свой The Hard Way. Состоит он из 11 лабораторок:
- The Calico datastore
- Configure IP pools
- Install CNI plugin
- Install Typha
- Install calico/node
- Configure BGP peering
- Test networking
- Test network policy
- End user RBAC
- Istio integration

Делитесь в комментариях другими годными мануалами

#k8s #calico #network #lab
Ресурсы для подготовки к СKA и знакомства с контейнеризацией и kubernetes. Включая огромную презу на 2000 слайдов про кубер и его работу

https://container.training/

#CKA #k8s
Kubernetes Deconstructed: Understanding Kubernetes by Breaking It Down

Доклад про куб уровня "поработал немного с кубом и хочу чуть больше подробностей". Можно смотреть и совсем без опыта. Про поды, сервисы, ингресы, coontrolplane, взаимодействие между компонентами

#k8s
Как получить доступ на ноду kubernetes, если есть kubeconfig, но нет доступа по ключу ssh?

У kubectl есть режим debug, позволяющий дебажить кластер. Один из его параметров запускает под и монтирует файловую систему ноды внутрь этого пода.

Запускаем под
k  debug node/${NODENAME} -it --image=busybox
Вся ФС ноды есть в поде в директории /host

Добавляем свой ключ
echo "ssh-ed25519 KEY_DATA_HERE mikrotik-ninja@bubnovd.net" >> /host/home/mikrotik-ninja/.ssh/authorized_keys

Только не забудьте два раза написать > в последней команде, чтобы не затереть уже существующие ключи и не получить пизблагодарность от коллег

#k8s #security
kubesec Верификатор k8s манифестов

Может работать как бинарник на хосте, контейнер, плагин к kubectl или внешний http сервис. Есть даже AdmissionController, который позволяет проверять ресурсы на лету - при создании пода/деплоймента/демонсета/...

Проверяет манифесты на соответствие security best practices. Судя по гитхабу - можно дописать свои правила

#k8s #security
Немного тулзов, чтобы у твоего кубернетеса не было дыры в безопасности

- rbac-manager - оператор для удобной работы с RBAC. Позволяет биндить роли по лейблам на ресурсах, создавать биндинги в разных неймспейсах из одного манифеста и по-другому упрощает жизнь кластер админа

- rbac-lookup - CLI утилита для просмотра прав юзеров. Одной строкой выводит все биндинги

- audit2rbac - читает аудит логи к8с и генерирует RBAC исходя из того, что нужно юзерам

#k8s #security #rbac
При использовании OIDC аутентификации для k8s (keycloak, например), нужно использовать особый kubeconfig - в нем вместо сертификата пользователя указаны параметры OIDC аутентификации или опции для получения этих параметров.

Для второго случая обычно используют плагин kubelogin

Но гораздо проще ввести учетные данные от Active Directory на специальной страничке, скачать оттуда конфиг и спокойно им пользоваться без установки дополнительных плагинов

Самый популярный инструмент для этого - kuberos. К сожалению, его разработка прекращена шесть лет назад. Но это не мешает ему быть очень удобным инструментом со всеми функциями, необходимыми такому инструменту.

Оригинальный Docker образ основан на уязвимом alpine:3.7 с ужасным CVE-2019-14697

Я пересобрал и выложил образ без уязвимости. Пользуйтесь на здоровье

Образ
Коммит

#oidc #keycloak #k8s
RBAC в kubernetes очень гибкий, но есть некоторые неудобства. Например:

- в одном RoleBinding нельзя назначить пользователю несколько ролей. Да, так и должен работать RoleBinding, но в системах со сложной матрицей доступа придется создавать сотни манифестов

- невозможно забиндить роль к пачке неймспейсов по маске имени или другим параметрам

- невозможно (или сложно) отследить появление нового неймпспейса и сразу выписать ему нужные доступы

С этим сильно помогает rbac-manager. Он позволяет описать все (Cluster)RoleBinding в одном манифесте, что сильно уменьшает количество строк кода. Позволяет биндить роли к неймспейсам на основании лейблов. Мы в компании пользуемся им уже несколько месяцев и очень довольны.

Я даже сделал чарт для деплоя ролей, кластерролей и манифестов для rbac-manager из единого места. Пользуйтесь на здоровье!

#k8s #rbac