Как дела с Kubernetes в 2022?
Многие компании в своих инфраструктурах используют k8s «по прямому назначению» — для запуска Docker-контейнеров. Вроде бы всё очень просто: Kubernetes — это платформа для запуска контейнеров. До Kubernetes был Docker Swarm, а ещё раньше — Nomad, они тоже запускали контейнеры. Если бы всё было так просто, вряд ли k8s занял бы то центральное место в карте инструментов DevOps, которое он занимает сейчас.
На текущий момент Kubernetes — давно не платформа для запуска контейнеров. И если вы используете Kubernetes просто для того, чтобы запускать в своей инфраструктуре контейнеры — вы, кажется, делаете что-то не так. Вы не пользуетесь остальными возможностями технологии и не делаете всего того, для чего Kubernetes создавался.
Kubernetes — это платформа для реализации инфраструктуры
Кроме запуска контейнеров, этот инструмент позволяет нам создавать пространства для команд. Он стал платформой, на которой развивается множество других продуктов, выполняющих самые разные инфраструктурные задачи. С помощью k8s все они легко интегрируются.
Например, Crossplane позволяет все объекты облака превратить в манифесты Kubernetes и управлять вашим облаком из k8s, используя нативные кубернетесовские инструменты, такие как Helm, Kustomize и так далее. Или, допустим, Open Policy Agent, в виде его интерфейса для Kubernetes Gatekeeper. Или Kyverno, который существует только для Kubernetes. Эти инструменты помогают проверять на соответствие каким-либо политикам всю инфраструктуру, которую вы деплоите. Подход GitOps тоже изначально развивался в k8s, он позволяет деплоить новые приложения без написания бесконечных однотипных пайплайнов.
Иными словами, Kubernetes — это ядро инфраструктуры, через которое разные сервисы интегрируются и совместно работают.