Лучше поздно, чем никогда, но я решил написать своё мнение про использование K8S. Традиционно, мнение автора может не совпадать с мнением читателей и может быть абсолютно ошибочным.
Я не буду описывать плюсы и минусы Kubernetes в этом посте. Тут не будет никаких технических деталей. Я просто поделюсь своим мнением, по его использованию. Сейчас всё больше и больше людей используют Kubernetes для развертывания всевозможных приложений начиная от статических сайтов, заканчивая запуском драйверов в контейнерах. Первое кажется стрельбой “пушкой по воробьям”, а второе - как, мягко говоря, очень странное использование технологии не так, как изначально задумывалось. Запуск веб-приложение – это, наверное, один из самых распространенных и простых способов использования K8S.
Раньше я был уверен, что у Kubernetes есть своя ниша, где очень удобно запускать state-less приложения, которые никак не взаимодействуют с хостовой операционной системой. В таких случаях деплоймент приложений очень простой, а обновления работают “из коробки”. По правде говоря, я всё ещё считаю установку драйверов в контейнерах не самой лучшей идеей. Как минимум, в текущем состоянии Kubernetes. Уж очень много подводных камней и неочевидных решений.
С другой стороны, мне всё больше и больше нравится идея использовать “кубы” для всего. Унификация как процесса разработки, так и деплоймента в команде/департаменте/компании выглядит как огромный плюс. Не нужно учить Ansible для одного проекта, разбираться в bash-скриптах во втором и настраивать Kubernetes для третьего. Один стек технологий позволяет решать стандартные задачи в разы быстрее. Унификация производства на лицо.
Конечно, не для всего подходит Kubernetes. Иногда проще/лучше/быстрее использовать containerd, виртуальный сервер или baremetal хост. Но нет идеальных технологий. Сейчас уже Kubernetes – это стандарт де-факто для развертывания приложений. И лучше следовать стандарту, а не изобретать новый.
В случае Kubernetes - все еще находится в стадии активной разработке. Не для всего есть best practices. Не все решается просто и без грязных хаков. Но мы всегда можем создать новые best practices или предложить нужную функциональность в Kubernetes для того, чтобы его использование было проще и быстрее.
Kubernetes для меня однозначно стало той технологией, которую стоит изучать как можно глубже в этом году.