0

practicum

Оркестрация и Kubernetes

26.04.2022

На прошлых уроках мы обсудили, для чего нужны контейнеры. Вы уже знаете, что хорошей практикой считается упаковывать каждый сервис в отдельный контейнер. Даже для простого интернет-сайта создаются как минимум два контейнера: для CMS-системы (например, WordPress) и для БД. Для работы серьёзного приложения и тем более набора приложений в облаке обычно приходится создавать множество контейнеров. Ими нужно управлять: отслеживать работоспособность и перезапускать при сбоях, обновлять, разворачивать, масштабировать, останавливать. Такое управление называется оркестрацией.Наиболее популярная система управления контейнерами — Kubernetes®, также известная как K8s. Это система с открытым исходным кодом, которая автоматизирует операции с контейнерами: мониторинг, распределение нагрузки, предоставление ресурсов и пр.С помощью Kubernetes решают разнообразные прикладные задачи. Например, кластеры Kubernetes разворачивают на телеком-вышках, при организации умного дома и даже для управления узлами автомобиля.

Из чего состоит Kubernetes

В Kubernetes контейнеры или наборы контейнеров размещаются на подах. Под (pod) — это логический хост. Один или несколько подов, а также сервисы для управления подами образуют узел, или ноду (node). Узел — это рабочая машина, виртуальная либо физическая. Однотипные узлы образуют группу узлов.В свою очередь, узлы объединяются в кластер. У каждого кластера есть своя панель управления (control plane), именно она и обеспечивает оркестрацию. Один из узлов кластера становится главным — мастером (master), он запускает управляющие процессы Kubernetes: сервер Kubernetes API, планировщик и контроллеры основных ресурсов.

image

В одном физическом кластере могут находиться несколько виртуальных. Виртуальный кластер называется пространством имён (namespace). В отличие от нод и подов, которые в кластере есть всегда, пространства имён надо использовать тогда, когда в них возникает реальная необходимость. Например, если приложение состоит из сервисов, то для каждого сервиса стоит создать пространство имён. Это поможет управлять разделением ресурсов физического кластера между сервисами.В кластер Kubernetes можно устанавливать расширения, облегчающие управление. Например, графический веб-интерфейс Dashboard или инструмент для мониторинга ресурсов кластера Container Resource Monitoring. Они необязательны. Единственное обязательное расширение — это внутренний DNS-сервер кластера. Он необходим для общения сервисов между собой.

Что делает Kubernetes

  • Автоматическое развёртывание. Вы можете описать состояние контейнеров в виде конфигурации, и Kubernetes автоматически обеспечит заданное состояние: будет развёртывать и удалять контейнеры, перераспределять ресурсы.
  • Мониторинг сервисов и балансировка. Kubernetes распределяет сетевой трафик так, чтобы развёртывание было стабильным.
  • Оркестрация хранилища. Kubernetes позволяет автоматически смонтировать систему хранения: локальное или облачное хранилище.
  • Самоконтроль. Kubernetes перезапускает отказавшие контейнеры, заменяет их и завершает работу контейнеров, которые не соответствуют заданному уровню работоспособности.

Yandex Managed Service for Kubernetes

Как вы наверняка догадались, Kubernetes довольно сложно администрировать, даже если использовать его вместе с облачным хранилищем и не заботиться о физическом предоставлении ресурсов. Чтобы упростить администрирование и интеграцию,  Yandex предлагает собственный сервис Managed Service for Kubernetes для работы в Yandex.Cloud.

  • При использовании Yandex Managed Kubernetes вы создаёте кластер и группы узлов. При этом мастер-ноды, пространство имён, сервис DNS и прочие необходимые элементы развёртываются автоматически. А за обслуживание и обновление всей инфраструктуры кластера отвечает облачный провайдер.
  • Приложения, помещённые в такой кластер, автоматически масштабируются: при пиковых нагрузках подтягивают ресурсы, при спаде — освобождают.
  • У Yandex Managed Kubernetes есть свой графический интерфейс. Дополнительные расширения не требуются.
  • Для хранения Docker-образов используйте Yandex Container Registry.
  • Мастер-узел можно настроить так, что он будет автоматически реплицироваться во всех зонах доступности Yandex.Cloud.
  • Благодаря интеграции с Yandex Identity and Access Management можно добавлять пользователей в кластеры Kubernetes по учётным записям вашей организации или почте на @yandex.ru.

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:380 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 380