Визуальный мониторинг K8s — Weave Scope

монитор
Визуальный мониторинг K8s — Weave Scope

задний фон

В производственной среде существует множество развертываний приложений k8s.Инструмент визуализации необходим для облегчения ежедневного получения информации о состоянии кластера в режиме реального времени и предоставления своевременной и точной поддержки данных для устранения неполадок. В этом контексте появился проект Weave Scope от Weaveworks, который представляет собой инструмент визуального мониторинга для Docker и Kubernetes. Scope обеспечивает полное представление кластерной инфраструктуры и приложений сверху вниз, пользователи могут легко отслеживать и устранять неполадки в распределенных контейнерных приложениях в режиме реального времени, чтобы обеспечить стабильность и производительность контейнерных приложений, просматривая метрики / теги контекста контейнера и необработанные данные между процессами. внутри контейнера может легко определить контейнер, в котором работает служба, потребляющая больше всего ресурсов ЦП/памяти,

Подробно о двух компонентах

2.1 Функция

Weave Scope может отслеживать состояние, использование ресурсов, топологию приложений, масштабирование ряда ресурсов в кластере kubernetes, а также может напрямую входить во внутреннюю отладку контейнера через браузер и т. д.其提供的功能包括:

  • Интерактивный интерфейс топологии
  • Графический режим и табличный режим
  • функция фильтра
  • функция поиска
  • метрики в реальном времени
  • Устранение неполадок контейнера
  • Расширение плагина

2.2 Состав

Weave Scope поApp和ProbeОн состоит из двух частей:

  • Агент зонда отвечает за сбор информации о контейнере и хосте и отправку ее в приложение.

  • Приложение отвечает за обработку этой информации, создание соответствующих отчетов и их отображение в виде интерактивного интерфейса.

2.3 Режим развертывания

  1. weave-scope-agent, программа агента области действия, которая запускается на каждом узле кластера, отвечает за сбор данных и развертывается в режиме DaemonSet.
  2. weave-scope-app, приложение области, получает данные от агента, отображает их через веб-интерфейс и взаимодействует с пользователем, а также развертывает их в режиме развертывания.
  3. weave-scope-app, по умолчанию используется тип ClusterIP, который был передан для удобства.kubectl editпревратиться вNodePort.

Три установки и развертывания

3.1 Развертывание узла

Первоначально Weave Scope можно установить и развернуть на хостах, на которых запущены контейнеры Docker.

sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch

посетить послеhttp://хост-IP:4040посещать

3.2 Развертывание файла ресурсов K8s

kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"

# 修改svc 为NodePort
kubectl patch svc $(kubectl get svc -n weave |grep weave-scope-app |awk '{print $1}') -p '{"spec":{"type": "NodePort"}}' -n weave


[root@master ~]# kubectl get svc -n weave |grep weave-scope-app 
weave-scope-app   NodePort   10.96.244.177   <none>        80:30156/TCP   52s

# 查看weave 的pod
[root@master ~]# kubectl get pod -n weave -o wide
NAME                                         READY   STATUS    RESTARTS   AGE     IP             NODE     NOMINATED NODE   READINESS GATES
weave-scope-agent-49csj                      1/1     Running   0          7m58s   10.234.2.204   master   <none>           <none>
weave-scope-agent-lxjkb                      1/1     Running   0          7m58s   10.234.2.132   node1    <none>           <none>
weave-scope-agent-wp22d                      1/1     Running   0          7m58s   10.234.2.160   node2    <none>           <none>
weave-scope-app-85966885c8-9gf86             1/1     Running   0          7m59s   10.244.2.246   node2    <none>           <none>
weave-scope-cluster-agent-5c9765fff6-hsl9r   1/1     Running   0          7m58s   10.244.2.247   node2    <none>           <none>

3.2 развертывание штурвала

В настоящее время склад руля предоставляет карты, написанные с помощью weave-scope, которые можно доставить в локальную область и установить с помощью простых модификаций, что очень удобно и быстро.

[root@master common-service]# helm fetch stable/weave-scope
[root@master common-service]# tar -zxvf weave-scope-1.1.8.tgz
[root@master common-service]# sed -i "s@\ type:\ \"ClusterIP\"@ type: \"NodePort\"@" weave-scope/values.yaml 

[root@master common-service]# helm install -n weave-scope --namespace common-service -f weave-scope/values.yaml weave-scope/
NAME:   weave-scope
LAST DEPLOYED: Thu Jan 30 18:37:14 2020
NAMESPACE: common-service
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                           DATA  AGE
weave-scope-weave-scope-tests  1     1s

==> v1/DaemonSet
NAME                           DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE SELECTOR  AGE
weave-scope-agent-weave-scope  4        4        0      4           0          <none>         1s

==> v1/Deployment
NAME                                   READY  UP-TO-DATE  AVAILABLE  AGE
weave-scope-cluster-agent-weave-scope  0/1    1           0          1s
weave-scope-frontend-weave-scope       0/1    1           0          1s

==> v1/Pod(related)
NAME                                                    READY  STATUS             RESTARTS  AGE
weave-scope-agent-weave-scope-5xskf                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-76t2s                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-qb74g                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-zggff                     0/1    ContainerCreating  0         1s
weave-scope-cluster-agent-weave-scope-5b8bf77f5f-7jkhq  0/1    ContainerCreating  0         1s
weave-scope-frontend-weave-scope-6d985ccff6-xmz2d       0/1    ContainerCreating  0         1s

==> v1/Service
NAME                     TYPE      CLUSTER-IP   EXTERNAL-IP  PORT(S)       AGE
weave-scope-weave-scope  NodePort  10.233.41.4  <none>       80:31709/TCP  1s

==> v1/ServiceAccount
NAME                                   SECRETS  AGE
weave-scope-cluster-agent-weave-scope  1        1s

==> v1beta1/ClusterRole
NAME                                   AGE
weave-scope-cluster-agent-weave-scope  1s

==> v1beta1/ClusterRoleBinding
NAME                     AGE
weave-scope-weave-scope  1s


NOTES:
You should now be able to access the Scope frontend in your web browser, by
going to the address or hostname of any node in the cluster, using http 
and the port given by:

SCOPE_PORT=$(kubectl -n common-service get svc weave-scope-weave-scope \
-o jsonpath='{.spec.ports[?(@.name==http)].nodePort}'); echo $SCOPE_PORT

Most likely one or more of the URLs given by this pipeline will work:

SCOPE_PORT=$(kubectl -n common-service get svc  \
-o jsonpath='{.spec.ports[?(@.name==http)].nodePort}'); \
kubectl get nodes -o jsonpath='{.items[0].status.addresses[*].address}' | \
xargs -I{} -d" " echo http://{}:$SCOPE_PORT
For more details on using Weave Scope, see the Weave Scope documentation:

https://www.weave.works/docs/scope/latest/introducing/

четыре использования

4.1 Просмотр объектов ресурсов

Возьмем в качестве примера объект ресурса POD,Weave ScopeК объектам мониторинга относятся процессы, контейнеры, модули, хосты и т. д., а к объектам мониторинга относятся процессор, память и средняя загрузка.

4.1.1 Метод диаграммы

图片描述

4.1.2 Формы

图片描述

4.2 Использование ресурсов объекта

При нажатии на модуль отображается подробная информация, такая как статус, использование ресурсов, процессы и т. д.

图片描述

4.3 Информация журнала

Щелкните получить журналы определенного POD, чтобы открыть окно терминала для просмотра журналов.

图片描述

4.4 Описательная информация

Нажмите «Описать» для определенного POD, чтобы просмотреть информацию о ресурсах POD через Терминал.

图片描述

4.5 Масштабирование ресурсов

Нажмите Контроллеры типа развертывания, вы можете перейти в веб-интерфейс, чтобы развернуть или уменьшить и просмотреть количество и сведения о POD.

图片描述

4.6 Контейнерные операции

Вы можете прикреплять, запускать оболочку, перезапускать, приостанавливать и останавливать операции и просматривать журналы контейнеров в контейнерах.

图片描述

4.7 Условный запрос

Нижний левый угол может отображаться в зависимости от условий, включая тип контейнера (система или приложение), статус контейнера (остановлен или запущен), пространство имен и т. д.

图片描述

4.8 Функция поиска

4.8.1 Имя

图片描述

4.8.2 Использование ресурсов

图片描述

5 Отражение

  • Weave Scope может более наглядно показать нам управление объектами ресурсов, такими как служба/контроллер/модуль, и простые операции веб-интерфейса с его краткой визуализацией, удобной для устранения неполадок и своевременного позиционирования.
  • Область Weave, как веб-интерфейс, в настоящее время не имеет аутентификации при входе в систему, и аутентификация веб-сервера другими методами может использоваться для контроля безопасности.

Ссылка на ссылку