Распределения Kubernetes - что это такое?

Kate

Administrator
Команда форума
Одним из крупнейших анонсов последних сессий AWS re: Invent 2020 стал выпуск EKS-D от Amazon. EKS-D - это их дистрибутив Kubernetes с открытым исходным кодом, который теперь доступен для всех, чтобы начать использовать в своем облачном провайдере или даже локально.
Он основан на прошлых исследованиях и на всем процессе, который Amazon претерпела при управлении своей управляемой платформой Kubernetes, Amazon EKS.
Эти объявления заставляют многих людей спрашивать себя: «Хорошо, я знаю Kubernetes, но что такое дистрибутив Kubernetes? И почему меня это должно волновать? »
Поэтому я постараюсь ответить на этот вопрос, зная, что у меня есть, и я всегда стараюсь использовать один и тот же подход: сравнение моделей Kubernetes и Linux.
Kubernetes - это проект с открытым исходным кодом, как вы знаете, начатый Google и теперь управляемый сообществом и Cloud Native Computing Foundation (CNCF), и вы можете найти весь код, доступный здесь:


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

Какие основные компоненты поставляются в дистрибутиве Kubernetes?
Основные компоненты, которые могут отличаться, когда мы говорим о дистрибутиве Kubernetes, следующие:

Среда выполнения контейнера и реестры
Мы все знаем, что существует больше, чем одна среда выполнения контейнера, и даже если вы не знали об этом, вы, вероятно, читали все статьи об удалении поддержки Docker в Kubernetes v1.20, как вы можете прочитать в этой замечательной статье. от Эдгара Родригеса.
На данный момент кажется, что все среды выполнения должны поддерживать существующий интерфейс среды выполнения контейнера https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/, а такие среды выполнения, как CRI-O, Containerd или Kata, теперь, похоже, являются параметрами по умолчанию.


Сети
Другая тема, которая часто отличается, когда мы говорим о дистрибутивах Kubernetes, - это то, как они управляют своей сетью, и это один из наиболее важных аспектов всей платформы.
Как и в случае со средой выполнения контейнера, существует стандартная спецификация, охватывающая эту тему, и это сетевой интерфейс контейнера (CNI). На эту тему существует несколько проектов, таких как Flannel, Calico, Canal и Wave. Кроме того, некоторые платформы предоставляют свой собственный компонент, например оператор Openshift SDN.


Место хранения
Как управлять хранилищем в Kubernetes также очень важно, особенно потому, что мы применяем эту модель в развертываниях, требующих моделей с отслеживанием состояния. Различные платформы могут поддерживать разные варианты хранения, например файловые системы и так далее.

Кто лучшие игроки?
Первое, о чем нам нужно знать, это огромное количество дистрибутивов Kubernetes.
Мы посчитаем тех, у кого есть сертификат CNCF, и вы можете ознакомиться со всеми здесь. На момент написания этой статьи мы говорим о 72 сертифицированных дистрибутивах.


Logos of the various CNCF-certified distributions.

Image via the Cloud Native Computing Foundation

Вот те, которые я хотел бы выделить сегодня:

Red Hat OpenShift


Red Hat OpenShift платформа может быть одной из наиболее часто используемых платформ, особенно в режиме частного облака. Он может включать в себя большинство сервисов Red Hat, связанных с хранением данных, таких как GlusterFS и создание сетей с OpenShift DNS. У него есть OKD как проект с открытым исходным кодом, который поддерживает платформу OpenShift и способствует ее развитию.

Mirantis

Бывшее предприятие Docker, которое было приобретено Mirantis, является еще одним обычным выбором, когда мы говорим о поддерживаемых платформах.

VMware Tanzu


VMware Tanzu, также возникшая в результате приобретения Pivotal у VMware, представляет собой платформу Kubernetes.

Canonical

Canonical (с открытым исходным кодом) - это платформа от компании, которая разрабатывает и поддерживает Ubuntu. Это еще один важный выбор, который предлагает множество вариантов, ориентированных не только на общий центральный режим, но и на периферийные развертывания Kubernetes с такими проектами, как MicroK8S и другими вариантами.


Rancher


Rancher (с открытым исходным кодом) - еще один крупный игрок, который фокусируется на следовании и расширении стандартов CNCF, а также предлагает большой толчок для периферийного развертывания с K3S. Он также предлагает автоматические обновления.

Резюме

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




Перевод статьи с сайта https://betterprogramming.pub/
 
Сверху