Как перейти от учебных задач Kubernetes к рабочим: реальный опыт инженеров

В изучении Kubernetes наступает момент, когда всю теорию знаешь, практику отработал — и вроде бы пора приступать к реальной работе в боевых условиях. Но с этим все непросто — рабочие задачи по Kubernetes нередко отличаются от учебных, а последствия ошибок кажутся гораздо более страшными. Мы поговорили с бывшими студентами Слёрма, которые учились, практиковались и уже давно работают с реальными кластерами Kubernetes. Они поделились своим опытом и дали пару советов тем, кто еще учится или уже выучился, но не знает, с какой стороны подступиться к реальной работе.

Что точно нужно знать из теории, чтобы успешно перейти к практике

Понимать, как работать с Linux. Знать хотя бы базу, уметь его настраивать и работать в нем, разбираться в Linux essential. Со знакомством может помочь книга Э. Немет «Unix и Linux: руководство системного администратора. 5-е издание».

Уметь работать с Docker. Понимать, как работает технология контейнеризации, уметь запускать контейнеры в Docker. Желательно иметь минимальную практику, например, потыкать что-то в Minicube на личном компьютере.

Иметь общие знания о веб-серверах. Понимать, как работает nginx, как его поднять. Знать, как работают сети. Модель OSI, протоколы TCP/IP. Это важно, потому что связь между микросервисами строится на сетевом взаимодействии.

Знать основные абстракции. Деплоймет, репликасет, под. Как они работают и как взаимосвязаны. Как работает service, ingress. Понимать, для чего и как, что куда указывается.

Понимать работу системы в целом. Не углубляться в один компонент или инструмент, а знать, как работают все компоненты, как они связаны, как реагируют друг на друга.

Уметь запустить оркестратор. Поднять несколько серверов, посмотреть на их взаимодействие и скорость работы.

Чтобы подготовиться к работе в боевых условиях, полезно будет самому поставить себе задачу и попробовать ее решить. Например, поднять маленький сайт, «сломать» один сервер и посмотреть, что произойдет и как вы эту проблему сможете решить.

С какими неожиданностями вы наверняка столкнетесь и к чему стоит подготовиться

  • Ресурсы могут вести себя не так, как вы привыкли в обучении. К ним нужно быть очень внимательными, иначе производительность приложений сильно деградирует.

  • На курсах Слёрма по k8s не очень много рассказывают об Istio и Service Mesh, а в работе это может пригодиться. Стоит это изучить.

  • Лучше заранее локально отрепетировать рискованные операции, типа обновления кластера. Чтобы понять, не допускаете ли вы каких-то ошибок и сможете ли быстро отреагировать, если что-то пойдет не так.

  • Приготовьтесь, что вы можете столкнуться со специфическими настройками приложений и сервисов. Важно понимать, где эти настройки находятся, как их искать, как они влияют на работу.

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

  • Лучшее, что можно сделать — внимательно изучать документацию. Там часто есть ответы на все вопросы, в том числе на большинство ошибок, которые возникают у новичков.

Почему бояться перехода на реальные задачи не стоит

Главное, что стоит понимать — неопытному инженеру Kubernetes никогда не дадут сложные и серьезные задачи. На старте вы наверняка даже не будете работать на проде, так что цена вашей ошибки невысока.

В сфере ИТ все понимают, что учеба ≠ реальному опыту, какой бы ориентированной на практику она не была. И нанимая новичка всегда готовы, что он будет тупить, тормозить и ошибаться. От вас не будут ждать ничего сверхъестественного, и вы спокойно сможете учиться дальше и набивать шишки.

Кроме того помните, что в небольшой компании базовых знаний вам точно хватит — там не понадобится тонкая настройка Kubernetes, не будет огромных нагрузок, не придется сталкиваться с чем-то, не описанным в документации.

В крупной компании это все есть, но там обязательно работает большой штат инженеров. И они вас научат и все подскажут, так что проблем тоже не возникнет. Все, что вам нужно, это терпение и постоянное самообучение — а остальное приложится.

Для тех, кому нужны базовые знания по Kubernetes, в Слёрме есть курсы «Kubernetes База: стартовый курс для администраторов» и «Kubernetes для разработчиков».