задний фон
В производственной среде существует множество развертываний приложений k8s.Инструмент визуализации необходим для облегчения ежедневного получения информации о состоянии кластера в режиме реального времени и предоставления своевременной и точной поддержки данных для устранения неполадок. В этом контексте появился проект Weave Scope от Weaveworks, который представляет собой инструмент визуального мониторинга для Docker и Kubernetes. Scope обеспечивает полное представление кластерной инфраструктуры и приложений сверху вниз, пользователи могут легко отслеживать и устранять неполадки в распределенных контейнерных приложениях в режиме реального времени, чтобы обеспечить стабильность и производительность контейнерных приложений, просматривая метрики / теги контекста контейнера и необработанные данные между процессами. внутри контейнера может легко определить контейнер, в котором работает служба, потребляющая больше всего ресурсов ЦП/памяти,
Подробно о двух компонентах
2.1 Функция
Weave Scope может отслеживать состояние, использование ресурсов, топологию приложений, масштабирование ряда ресурсов в кластере kubernetes, а также может напрямую входить во внутреннюю отладку контейнера через браузер и т. д.其提供的功能包括:
- Интерактивный интерфейс топологии
- Графический режим и табличный режим
- функция фильтра
- функция поиска
- метрики в реальном времени
- Устранение неполадок контейнера
- Расширение плагина
2.2 Состав
Weave Scope поApp和Probe
Он состоит из двух частей:
-
Агент зонда отвечает за сбор информации о контейнере и хосте и отправку ее в приложение.
-
Приложение отвечает за обработку этой информации, создание соответствующих отчетов и их отображение в виде интерактивного интерфейса.
2.3 Режим развертывания
-
weave-scope-agent
, программа агента области действия, которая запускается на каждом узле кластера, отвечает за сбор данных и развертывается в режиме DaemonSet. -
weave-scope-app
, приложение области, получает данные от агента, отображает их через веб-интерфейс и взаимодействует с пользователем, а также развертывает их в режиме развертывания. -
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, как веб-интерфейс, в настоящее время не имеет аутентификации при входе в систему, и аутентификация веб-сервера другими методами может использоваться для контроля безопасности.