▶️▶️▶️ ДевОпс Инсайт: #devops_engineer_insights
Как легче всего зайти в Kubernetes?На реальном опыте отвечает
Сергей Михно (в жизни Серенький, в телеграме
@Serhii_Mikhno). Уникально и только для подписчиков канала ДевОпс Инженер.
Путь ознакомления k8s зависит от задач, которые перед Вами стоят.
Тут есть два варианта - или для галочки у себя в резюме, или когда нужно поднять существующую инфраструктуру в кубере (как было у меня).
В обоих случаях лучше начинать с тестового проекта в
GKE:
https://cloud.google.com/kubernetes-engine/.
Например, поднять там какой-то сервис, который Вы уже умеете готовить. Далее можно добавить
HA, настроив нужное колличество реплик и добавив
healthchecks, а так же заекспоузить сервисы через
ingress.
Все основные примитивы и концепции Kubernetes легче и быстрее всего освоить тут:
http://kubernetesbyexample.com/ (обязательно добавить в закладочки). 💡
При решении этого задания, в любом случае нужно будет опираться на документацию, и очень желательно опираться на
api reference k8s:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/Подобный подход даст не только знания сущностей и абстракций, а так же даст понимание того, какие приложения и как ложатся в концепцию кубера.
Пару слов насчет
Helm. Эта штука полезная и стоит уметь ею пользоваться, но далеко не во всех случаях. Потому что это дополнительный уровень абстракции над уже существующей моделью сущностей. Это облегчает управление и группировку громоздких сервисов, но затрудняет понимание того, какие реальные манифесты уходят в исполняемую среду.
По этому плагин helm template обязателен к установке, и важно понимать реализацию
go template: (
https://golang.org/pkg/text/template/), он очень похож на jinja2 (как в Ansible), так что с этим проблем не будет.
Теперь по поводу CI\CD. Написано уже очень много о том, как правильно готовить процессы с кубером. Мне лично помог
блог компании Флант на Хабре:
https://habr.com/company/flant/ , у них есть пару хороших видосов, которые проясняют lifecycle в кубере.
Далее, когда приложение уже запущено и работает, освоены основные концепции и примитивы - можно приступать к разворачиванию всяких штук вроде
istio, подкручиванию
network policy, RBAC, эксперименты с разными ingress controller и тестированию оверлейных сетей.
Простой пример - мы с тремя коллегами перевезли весь прод (с большим кол-вом сервисов и зависимостей в кубер) менее чем за месяц, при этом знания о Kubernetes были на уровне - "слышал, но не трогал".
Главное помнить, что кубер, это всего лишь платформа (фреймворк) со своими требованиями, и если им следовать и знать некоторое кол-во деталей - можно внедрять крутые штуки, полезные бизнесу, хоть каждый день.
Желаю удачи в изучении Kubernetes! 💪💪💪