Что такое Kubernetes? [Версия для ИТ-переводчиков, с английскими терминами]

Эта статья — логическое продолжение работы по проектам серии Kubernetes для одного из наших клиентов (о том, как всё начиналось, мы рассказывали на главной странице, п. 04). Мы решили не делать глоссарии, т. к. глоссарии — это просто  бессвязный набор терминов. Мы решили вернуться к старому и проверенному формату — ликбезным статьям для переводчиков, где указаны термины в скобках и понятно, кто на ком стоит и за какие веревочки дергает. У меня всё, дальше — ликбез. 


Kubernetes (или K8s) — это система оркестрации [orchestration engine] контейнеров [container], например контейнеров Docker или rkt, ставшая очень популярной в последние пару лет.

Кроме того, Kubernetes ускоряет процесс разработки, упрощает и автоматизирует развертывания (деплои) [deployment] и последовательные обновления [rolling-update] и управляет нашими приложениями и сервисами, так что простой [downtime] выходит почти нулевой. И он сам себя восстанавливает [self-healing] — если в контейнере случился сбой, Kubernetes находит и перезапускает виновные сервисы.

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

Любой, кто хоть немного разбирается в Docker, может упаковать приложение в контейнер и развернуть его в Kubernetes.

Основные понятия в Kubernetes

Kubectl:

1. CLI (интерфейс командной строки) для Kubernetes.

CLI (интерфейс командной строки) для Kubernetes

Мастер-нода [master node]

1. Главный компьютер, который управляет нодами.

2. Главная точка входа [entry point] для всех административных задач.

3. Управляет оркестрацией рабочих нод.

Мастер-нода [master node]

 

Рабочая нода [worker node]

 

1. Это рабочий компьютер в Kubernetes.

2. Этот компьютер выполняет поставленные задачи. Каждая нода управляется мастер-нодой.

3. Запускает контейнеры внутри подов.

4. Здесь Docker загружает образы [image] и запускает контейнеры.

Рабочая нода [worker node]

Kubelet

 

1. Это агент, запущенный на ноде.

2. Следит за тем, чтобы контейнеры нормально работали.

Kubelet

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

Под

 

1. На поде размещено несколько контейнеров и томов хранения [storage volume].

2. Поды — это экземпляры [instance] развертываний.

3. У одного развертывания может быть несколько подов.

4. С функцией горизонтального автомасштабирования [horizontal autoscaling] поды одного развертывания можно автоматически запускать и останавливать в зависимости от использования ЦП.

5. Контейнеры в одном поде используют тома совместно.

6. У каждого пода есть уникальный IP-адрес в кластере [cluster].

7. Поды работают, пока их не уничтожит пользователь или контроллер.

8. Все данные в поде будут навсегда удалены.

Поды — это экземпляры [instance] развертываний.


Развертывание

 

1. Развертывание — это схема создания подов.

2. Управляет обновлением своих подов.

3. Создает под по спецификации из шаблона.

4. Цель — поддерживать работоспособность подов и последовательно обновлять их, контролируя эти операции.

5. Использование ресурсов подов можно указать в развертывании.

6. Развертывания могут увеличивать масштаб реплик [replica] подов.

Развертывание — это схема создания подов.


Секрет [secret]

 

1. Секрет — это объект, который хранит конфиденциальные данные, например, имена пользователей и пароли.

2. В файлах секретов значения имеют кодировку base64.

3. Чтобы использовать секрет, нужно сослаться на него в поде.

4. Или поместить его внутрь тома и подключить к контейнеру.

5. По умолчанию секреты не зашифрованы. Следовательно, для шифрования нужно создать конфигурацию EncryptionConfig.

 

Сервис

 

1. Сервис обеспечивает доступ к подам внутри сети или из интернета.

2. Сервис узнает поды по селектору меток [label selector].

Есть три типа сервисов:

IP кластера [ClusterIP]

– Развертывание доступно только внутри кластера.
– Каждому развертыванию присваивается внутренний IP-адрес кластера.
–Трафик распределяется между подами развертывания через балансировку нагрузки.

Порт ноды [node port]

– Развертывание доступно внутри кластера.
– Развертывание привязано к порту мастер-ноды.
– Каждая нода будет проксировать этот порт для вашего сервиса.
– Сервис доступен по http(s)://:/.
–Трафик распределяется между подами развертывания через балансировку нагрузки.

Балансировщик нагрузки [load balancer]

– Развертывание получает общедоступный IP-адрес.
– Сервис доступен по http(s)://:<80||42>/.
–Трафик распределяется между подами развертывания через балансировку нагрузки.

 

 

С уважением,
Марина Попович и Евгений Бартов,
переводчики-редакторы бюро переводов «Альянс ПРО».