0

practicum

Мониторинг Managed Kubernetes

26.04.2022

На прошлом уроке вы узнали один из способов контролировать состояние работающего и нагруженного кластера:

kubectl get pod,svc,hpa,nodes -o wide 

И увидели в ответ на команду примерно следующее:

image

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

while true; do wget -q -O- http://<IP_адрес_балансировщика>; done 
  1. В веб-консоли перейдите в раздел Managed Service for Kubernetes, войдите в свой кластер и переключитесь на раздел Рабочая нагрузка (слева). Перейдите на вкладку Контроллеры Deployment.

Вы увидите список запущенных сервисов. В нём будет ваш сервис my-loadbalancer-hpa. Войдите в него. На вкладках вы можете посмотреть количество и статус подов, события и другие данные.Постарайтесь начать отслеживать состояние ресурсов сразу же после подачи нагрузки, так вы успеете застать процесс создания подов и узлов.

  1. На вкладке Поды вы увидите количество и статус подов, которые поддерживают сервис. Некоторые поды не созданы — у них в колонке Узел стоят прочерки.
image

Чтобы узнать, из-за чего поды не были созданы, войдите в любой под и переключитесь на вкладку События. Как видите, этот под не создан, потому что не хватило ресурсов процессора:

image
  1. Вернитесь в верхний раздел Кластер и перейдите к просмотру узлов. Вы увидите, что происходит автомасштабирование: создаётся или уже создан второй узел.
image

Откройте этот узел и посмотрите на дашборд мониторинга ресурсов — на общую картину и значения на конкретный момент:

image

В Yandex Managed Kubernetes у всех ресурсов кластера есть такие дашборды для мониторинга.

  1. Для эксплуатации сервиса важно отслеживать не только состояние ресурсов, но и события в кластере.

Вернитесь в головной раздел кластера и перейдите в События. Их, как видите, много. Чтобы находить события быстрее, фильтруйте их с помощью поля Фильтр по сообщению и трёх выпадающих списков.

image
  1. Вы можете настроить мониторинг и видеть только те данные, которые хотите. Вот как это делается.

В левом списке переключитесь в раздел Сеть. В последней колонке нажмите значок шестерёнки. Откроется список полей, которые выводятся в детализации. Включайте и отключайте их.

image

Теперь в разделе Сеть откройте любой сервис и убедитесь, что в детализации остались именно те поля, которые вы отметили.

  1. Попробуйте сами исследовать возможности мониторинга для ресурсов кластера: узлов, подов, балансировщика, сервисов.
  2. Закройте окно с запущенной утилитой wget. Понаблюдайте, как меняется количество активных узлов и подов. Через некоторое время лишние ресурсы освободятся. Найдите на графиках момент выключения нагрузки.

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

Подписка

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


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