Kubernetes

Сервер метрик Kubernetes

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

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

Ошибки, которые в большинстве случаев остаются незамеченными, - это те, при которых приложения не дают сбоев, а в конечном итоге чрезмерно используют системные ресурсы и снижают производительность кластеров. Это особенно неприятные случаи, и Kubernetes Metrics Server может быть полезным инструментом для отслеживания их.

Проект официально является частью проекта Kubernetes, но не включен в большинство сертифицированных Kubernetes дистрибутивов. Он состоит из двух важных частей, которые стоит обсудить: Metrics API и сам Metrics Server. Но сначала давайте настроим его на наш кластер Kubernetes (K8).

Экспериментальная установка Kubernetes

По состоянию на июль 2018 года Docker для Mac и Windows поставляются с сертифицированной Kubernetes реализацией самого K8. Сделать это так же просто, как установить K8 в дистрибутив Linux. Вы можете перейти в настройки Docker, и, если экземпляр Docker обновлен, вы найдете вкладку Kubernetes в меню. Просто включите Kubernetes вместо Docker Swarm, и у вас будет готовый к экспериментам кластер с одним узлом.

Затем нам нужно запустить и запустить простой набор приложений для нашего варианта использования. Создайте папку Deployments и внутри нее создадим nginx-развертывание.ямл файлы, которые будут развертывать модули Nginx без сохранения состояния.

apiVersion: apps / v1 # для версий до 1.9.0 использовать приложения / v1beta2
вид: Развертывание
метаданные:
имя: nginx-развертывание
спецификация:
селектор:
matchLabels:
приложение: nginx
Replicas: 2 # указывает развертыванию запустить 2 модуля, соответствующие шаблону
шаблон:
метаданные:
ярлыки:
приложение: nginx
спецификация:
контейнеры:
- имя: nginx
изображение: nginx: 1.7.9
порты:
- containerPort: 80

Сохраните файл и в том же каталоге, где находится этот файл, выполните команду:

$ kubectl create -f nginx-развертывание.ямл

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

$ kubectl получить поды

Как видите, у нас есть два экземпляра модуля, так как .yaml файл прописал.

Теперь, когда у нас есть что отслеживать, нам нужно включить Metrics Server. Сначала проверьте версию Kubernetes, которую вы используете. Если версия 1.8 или выше, мы бы запустили другое развертывание, и если оно равно 1.7, затем мы возвращаемся к устаревшему:

версия $ kubectl

Вы можете получить официальный образ и начать работу, клонировав этот репозиторий GitHub, а затем в корне репозитория запустите kubectl create -f с соответствующими .yaml в зависимости от версии K8, которую вы используете.

$ git clone https: // github.com / кубернетес-инкубатор / метрик-сервер.мерзавец
 
$ cd metrics-server
# Если вы используете Kubernetes версии 1.8 или выше
$ kubectl create -f развертывание / 1.8 + /
# Если версия 1.7, то
$ kubectl create -f развертывание / 1.7 /

Дайте кубернетам время загрузить изображения и запустить сервер метрик. Это может занять несколько минут. Как только это будет сделано, вы готовы запустить сервер метрик. Основная команда основана на вершина команда, которая часто запускается для мониторинга системы Linux. Но у него есть два варианта: один для проверки использование ресурсов на вычислении узлы а во-вторых, чтобы оценить потребленный ресурс развернутыми стручки и. Вот как можно увидеть эти две детали:

верхний узел $ kubectl
$ kubectl top pod

Вы можете увидеть, насколько модуль нагружает вашу систему с точки зрения памяти или процессорного времени, и, используя Metrics API, вы также можете настроить оповещения в соответствии с.

Куда это пойдет отсюда?

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

Точно так же Horizontal Pod Autoscaler получит большую выгоду от проекта и поможет вам увеличить или уменьшить масштаб, чтобы ресурсы оптимально использовались приложениями.

Рекомендации

  1. Развертывания Nginx
  2. Сервер метрик Kubernetes
  3. Документацию по дизайну для Metrics API можно найти здесь, и аналогичную информацию о Metrics Server можно найти здесь.
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...