Облачные платформы (Mail.ru Cloud Solutions и другие) упрощают развертывание кластеров Kubernetes. Кажется, что с ними стать администратором Kubernetes может почти любой человек — надо только уметь нажимать на кнопки в удобном веб-интерфейсе облачного провайдера. На деле всё сложнее.

Мы вдохновились одним из выступлений на @Kubernetes Conference by MCS (полное видео) и в несколько ультимативной форме изложили, какие навыки нужны настоящему Kubernetes-админу, чтобы запустить кластер с нуля.

Hard skills: что обязан знать и уметь администратор Kubernetes

  1. Linux. Его надо знать на таком уровне, чтобы разобраться в проблемах, которые могут возникнуть в процессе работы: «как определить, почему что-то тормозит», «как работают шедулеры на процессоре» и любых других.
  2. Протоколы динамической маршрутизации. Это важно, так как Kubernetes — система, которая работает с сетью. Нужно понимать в настройках сетей, уметь сделать так, чтобы два протокола работали вместе (к примеру, Calico и RIP), и решать другие задачи.
  3. Программирование. У админа Kubernetes должен быть навык программирования на уровне умения написать простой веб-сервер на Flask и/или простой сервер на Golang. Необязательно программировать как сеньор, но нужно уметь делать быстрые обвязки вокруг Kubernetes. Если из-за каждой задачи придется обращаться к разработке, это сильно замедлит процесс поставки софта в кластер, так как его надо еще развернуть.
  4. Система контейнеризации. Надо знать, как работает Docker, Podman, Creo и так далее.
  5. Английский язык. Надо быстро читать на английском, поскольку сейчас на нем почти вся документация. Конечно, есть русскоязычные статьи о Kubernetes, например на Habrahabr, но большая часть нужной информации только на английском языке.
  6. Kubernetes. Надо знать, как он работает, так как в процессе внедрения часто возникают различные вопросы: как должно быть сделано приложение, как устроены liveness- и readiness-пробы, как все запустить. Если постоянно бегать в документацию или чат по Kubernetes, это отнимает время, а всю работу нужно делать быстро.
  7. CI/CD и Git. Kubernetes внедряют по двум основным причинам: time-to-market и удобство эксплуатации. Чтобы сократить time-to-market, надо автоматизировать поставку софта. А для этого надо представлять, как работают CI/CD-пайплайны и как их делать.
  8. Терпение и любовь к людям. Вы скажете: «Но это же софт-скил», — и будете правы, но некоторым он уж слишком тяжело дается. А это важно, так как в процессе внедрения часто возникают различные трения, приходится работать с возражениями, убеждать, договариваться. Если нет терпения, ничего не получится.

Soft skills: для работы с Kubernetes важно взаимодействие внутри команды

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

Постоянный апдейт. Важно, чтобы весь процесс работы в Kubernetes был прозрачным для всей команды, чтобы все видели, что происходит. Разработчиков обычно много, администраторов — мало. Поэтому возникают ситуации, когда есть задачи от одних разработчиков, есть от других, есть от проджект-менеджеров, есть от безопасности. Если все эти люди не видят, что происходит, они постоянно дергают админов.

Быстрый отклик на запросы разработки. Важно быстро откликаться на запросы разработки, так как Kubernetes — достаточно новая технология, не все умеют писать манифесты, не все понимают, как это работает. Если разработчик пишет манифест и пытается что-то сделать, при этом не понимает, как, и ждет ответ на свой вопрос сутки — он переключится на другую задачу. Обратное переключение у него займет некоторое время. Это мешает общей цели: быстро катить софт.

Профессионализм. Надо быть профессионалом. Чтобы внедрить облачную платформу нужна мотивация. Если нет тасков, надо спросить начальника, что нужно сделать, если заметили проблему, стоит положить ее в Jira. Администратор Kubernetes должен ответственно относиться к своей работе.

Если вы обладаете нужными хард- и софт-скилами, то работа с Kubernetes не будет для вас слишком сложной. А если заходите ее еще больше автоматизировать — приходите за Kubernetes как сервис в Mail.ru Cloud Solutions.