1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/AliyunContainerService-prometheus-operator

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 10:20 d2c5128

Оператор Prometheus

Build Status

Go Report Card

Статус проекта: бета. Не все запланированные функции завершены. API, спецификации, статус и другие объекты, с которыми взаимодействует пользователь, могут измениться, но таким образом, чтобы обеспечить обратную совместимость.

Оператор Prometheus для Kubernetes предоставляет простые определения мониторинга для служб Kubernetes и развёртывания и управления экземплярами Prometheus.

После установки оператор Prometheus предоставляет следующие возможности:

  • Создание/уничтожение: легко запускайте экземпляр Prometheus для вашего пространства имён Kubernetes, конкретного приложения или команды с помощью оператора.
  • Простая конфигурация: настройте основы Prometheus, такие как версии, постоянство, политики хранения и реплики, из нативного ресурса Kubernetes.
  • Целевые службы через метки: автоматически генерируйте конфигурации мониторинга целевых объектов на основе знакомых запросов меток Kubernetes; нет необходимости изучать специфический язык конфигурации Prometheus.

Для ознакомления с оператором Prometheus см. начальный пост в блоге.

Оператор Prometheus против kube-prometheus

Оператор Prometheus делает конфигурацию Prometheus нативной для Kubernetes и управляет кластерами Prometheus и Alertmanager. Это часть головоломки, касающейся полного сквозного мониторинга.

kube-prometheus объединяет оператор Prometheus с набором манифестов, чтобы помочь начать мониторинг самого Kubernetes и приложений, работающих поверх него.

Предварительные требования

Версия >=0.18.0 оператора Prometheus требует кластера Kubernetes версии >=1.8.0. Если вы только начинаете работать с оператором Prometheus, настоятельно рекомендуется использовать последнюю версию.

Если у вас работает более старая версия Kubernetes и оператора Prometheus, мы рекомендуем сначала обновить Kubernetes, а затем оператор Prometheus.

CustomResourceDefinitions

Оператор действует на следующие определения пользовательских ресурсов (CRDs):

  • Prometheus, который определяет желаемое развёртывание Prometheus. Оператор всегда обеспечивает соответствие развёртывания определению ресурса.
  • ServiceMonitor, который декларативно указывает, как группы служб должны отслеживаться. Оператор автоматически генерирует конфигурацию очистки Prometheus на основе определения.
  • PrometheusRule, которое определяет желаемый файл правил Prometheus, который может быть загружен экземпляром Prometheus, содержащим правила оповещения и записи Prometheus.
  • Alertmanager, который определяет желаемое развёртывание Alertmanager. Оператор всегда обеспечивает соответствие развёртывания определению ресурса.

Чтобы узнать больше об CRD, представленных оператором Prometheus, ознакомьтесь с проектом документа.

Установка

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

kubectl apply -f bundle.yaml

Примечание: убедитесь, что вы адаптировали пространство имён в ClusterRoleBinding при развёртывании в другом пространстве имён, отличном от пространства имён по умолчанию.

Чтобы запустить оператор вне кластера:

make
hack/run-external.sh <имя кластера kubectl>

Удаление

Чтобы удалить оператор и Prometheus, сначала удалите любые пользовательские ресурсы, которые вы создали в каждом пространстве имён. Оператор автоматически отключит и удалит модули Prometheus и Alertmanager, а также связанные с ними конфигурационные карты.

for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
  kubectl delete --all --namespace=$n prometheus,servicemonitor,alertmanager
done

Через пару минут вы можете приступить к удалению самого оператора.

kubectl delete -f **bundle.yaml**

Оператор автоматически создаёт сервисы в каждом пространстве имён, где вы создали ресурсы Prometheus или Alertmanager, и определяет три пользовательских определения ресурсов. Вы можете очистить их сейчас.

```sh
for n in $(kubectl get namespaces -o jsonpath={..metadata.name}); do
  kubectl delete --ignore-not-found --namespace=$n service prometheus-operated alertmanager-operated
done

kubectl delete --ignore-not-found customresourcedefinitions \
  prometheuses.monitoring.coreos.com \
  servicemonitors.monitoring.coreos.com \
  alertmanagers.monitoring.coreos.com

Разработка

Предварительные условия

  • среда golang;
  • docker (используется для создания образов контейнеров и т. д.);
  • minikube (необязательно).

Тестирование

Убедитесь, что вы запускаете тесты по следующему пути: $GOPATH/src/github.com/coreos/prometheus-operator, так как тесты ожидают совпадения путей. Если вы работаете с форком, просто добавьте разветвлённый репозиторий в качестве удалённого и извлеките данные из вашей локальной проверки coreos перед запуском тестов.

Запуск модульных тестов:

make test-unit

Выполнение сквозных тестов на локальном кластере minikube:

  1. minikube start --kubernetes-version=v1.10.0 --memory=4096 --extra-config=apiserver.Authorization.Mode=RBAC
  2. eval $(minikube docker-env) && make image — сборка образа докера оператора Prometheus на докере minikube;
  3. make test-e2e.

Вклад

Многие файлы (документация, манифесты и т.д.) в этом репозитории создаются автоматически. Например, bundle.yaml происходит из файлов Jsonnet в /jsonnet/prometheus-operator. Прежде чем предлагать запрос на вытягивание:

  1. Зафиксируйте свои изменения.
  2. Выполните команду make generate-in-docker.
  3. Зафиксируйте сгенерированные изменения.

Безопасность

Если вы обнаружите уязвимость в системе безопасности, связанную с оператором Prometheus, пожалуйста, не сообщайте об этом, открывая проблему GitHub, а отправьте электронное письмо сопровождающим проекта, указанным в файле OWNERS.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/AliyunContainerService-prometheus-operator.git
git@api.gitlife.ru:oschina-mirror/AliyunContainerService-prometheus-operator.git
oschina-mirror
AliyunContainerService-prometheus-operator
AliyunContainerService-prometheus-operator
master