Руководство. Подключение к локальной службе Prometheus в кластере AKS с помощью управляемой частной конечной точки
В этом руководстве описаны шаги по установке Prometheus, набора средств мониторинга и оповещений с открытым кодом в кластере Служба Azure Kubernetes (AKS). Затем вы используете управляемую частную конечную точку Azure Grafana для подключения к этому серверу Prometheus и отображения данных Prometheus на панели мониторинга Grafana.
В этом руководстве описано следующее:
- Создание кластера Служба Azure Kubernetes
- Установка Prometheus
- Добавление службы приватного канала на сервер Prometheus
- Подключение к управляемой частной конечной точке
- Отображение данных Prometheus на панели мониторинга Grafana
Необходимые компоненты
Прежде чем начать, убедитесь, что у вас есть следующее:
Создание кластера Служба Azure Kubernetes
Войдите в Azure CLI, выполнив
az login
команду.az login
Если у вас несколько подписок Azure, выберите подписку Azure с помощью команды
az account set -s <your-azure-subscription-id>
.Установите или обновите kubectl.
az aks install-cli
Создайте две переменные bash/zsh, которые будут использоваться в последующих командах. Измените приведенный ниже синтаксис, если вы используете другую оболочку.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Создать группу ресурсов. В этом примере мы создадим группу ресурсов в регионе Azure "Западная часть США".
az group create --name $RESOURCE_GROUP --location westcentralus
Создайте новый кластер AKS с помощью команды az aks create . Здесь мы создадим кластер с тремя узлами с помощью типа виртуальной машины с возможностью расширения серии B, который является экономически эффективным и подходит для небольших рабочих нагрузок тестирования и разработки, таких как это.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Выполнение этой операции займет несколько минут.
Проверка подлинности в созданном кластере.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
Теперь вы можете получить доступ к кластеру Kubernetes с помощью kubectl.
Используйте kubectl для просмотра созданных узлов.
kubectl get nodes
Установка Prometheus
Популярным способом установки Prometheus является оператор prometheus-operator, который обеспечивает собственное развертывание Kubernetes и управление prometheus и связанных компонентов мониторинга. В этом руководстве мы используем диаграммы Helm kube-prometheus-stack Helm для развертывания оператора prometheus-operator.
Добавьте репозиторий helm-chart и обновите список репозитория.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Установите диаграмму Helm в пространство имен, называемое мониторингом. Это пространство имен создается автоматически.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
Командная строка helm проверяет состояние развернутых модулей pod. Выполните следующую команду.
kubectl --namespace monitoring get pods
Перед продолжением убедитесь, что модули pod все "Запущены". Если в маловероятном случае они не достигают состояния выполнения, их может потребоваться устранить.
Добавление службы приватного канала на сервер Prometheus
Служба Azure Приватный канал позволяет использовать службу Kubernetes через приватный канал между различными виртуальными сетями Azure. AKS имеет встроенную интеграцию со службой Приватный канал Azure и помогает создать соответствующую службу приватного канала в Azure.
См. ниже содержимое файла pls-prometheus-svc.yaml:
apiVersion: v1
kind: Service
metadata:
name: prom-pls-svc
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true" # Use an internal LB with PLS
service.beta.kubernetes.io/azure-pls-create: "true"
service.beta.kubernetes.io/azure-pls-name: promManagedPls
service.beta.kubernetes.io/azure-pls-proxy-protocol: "false"
service.beta.kubernetes.io/azure-pls-visibility: "*"
spec:
type: LoadBalancer
selector:
# app: myApp
app.kubernetes.io/name: prometheus
prometheus: prometheus-kube-prometheus-prometheus # note that this is related to the release name
ports:
- name: http-web
protocol: TCP
port: 9090
targetPort: 9090
Выполните следующую команду, чтобы добавить службу приватного канала на сервер Prometheus.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
Служба приватного канала с именем
promManagedPls
создается в управляемой группе ресурсов AKS. Этот процесс займет несколько минут.
Подключение к управляемой частной конечной точке
Если у вас еще нет рабочей области Azure Managed Grafana, создайте ее, выполнив краткое руководство по Azure Managed Grafana.
Откройте рабочую область Azure Managed Grafana и перейдите в раздел "Добавление управляемой частной конечной точки>сети".>
Введите имя управляемой частной конечной точки и выберите подписку Azure.
Для типа ресурса выберите Microsoft.Network/privateLinkServices (службы приватного канала) и для целевого ресурса выберите
promManagedPls
службу приватного канала, созданную на предыдущем шаге. Каждая управляемая частная конечная точка получает частный IP-адрес. Вы также можете указать доменное имя для этой управляемой частной конечной точки. Служба Azure Managed Grafana гарантирует разрешение этого домена на частный IP-адрес управляемой частной конечной точки в среде Azure Managed Grafana. Например, задайте для домена значение*.prom.my-own-domain.com
.Подтвердите подключение к частной конечной точке, перейдя к ресурсу promManagedPls. В разделе "Параметры" перейдите к подключениям к частной конечной точке и установите флажок " Утвердить".
После утверждения подключения к частной конечной точке вернитесь к ресурсу Azure Managed Grafana и нажмите кнопку "Обновить " на вкладке "Управляемая частная конечная точка", чтобы синхронизировать этот
Connection state
ресурс. Теперь он должен отображаться как утвержденный.
Отображение данных Prometheus на панели мониторинга Grafana
Добавьте источник данных Prometheus в Grafana на портале Grafana. Дополнительные сведения см. в описании "Добавление источника данных". Наш URL-адрес Prometheus — это
http://prom-service.prom.my-own-domain.com:9090
.Чтобы использовать локальный источник данных Prometheus, попробуйте использовать панель мониторинга "Экспортер узлов" , идентификатор
1860
. Дополнительные рекомендации см. в руководстве по импорту панели мониторинга из Grafana Labs.
Следующий шаг
Узнайте, как использовать учетные записи служб.