Azure Kubernetes - prometheus развертывается как часть ISTIO, а развертывания не отображаются?
Я использовал следующую конфигурацию для настройки Istio
cat << EOF | kubectl apply -f -
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: istio-control-plane
spec:
# Use the default profile as the base
# More details at: https://istio.io/docs/setup/additional-setup/config-profiles/
profile: default
# Enable the addons that we will want to use
addonComponents:
grafana:
enabled: true
prometheus:
enabled: true
tracing:
enabled: true
kiali:
enabled: true
values:
global:
# Ensure that the Istio pods are only scheduled to run on Linux nodes
defaultNodeSelector:
beta.kubernetes.io/os: linux
kiali:
dashboard:
auth:
strategy: anonymous
components:
egressGateways:
- name: istio-egressgateway
enabled: true
EOF
и предоставил сервис prometheus, как указано ниже
kubectl expose service prometheus --type=LoadBalancer --name=prometheus-svc --namespace istio-system
kubectl get svc prometheus-svc -n istio-system -o json
export PROMETHEUS_URL=$(kubectl get svc prometheus-svc -n istio-system -o jsonpath="{.status.loadBalancer.ingress[0]['hostname','ip']}"):$(kubectl get svc prometheus-svc -n istio-system -o 'jsonpath={.spec.ports[0].port}')
echo http://${PROMETHEUS_URL}
curl http://${PROMETHEUS_URL}
Я развернул приложение, но не видел нижеприведенные развертывания в Prometheus
1 ответ
Стандартная установка prometheus от istio не настраивает ваши поды на отправку метрик в prometheus. Он просто собирает данные с ресурсов istio.
Чтобы добавить модули для очистки, добавьте следующие аннотации в deployment.yml вашего приложения:
apiVersion: apps/v1
kind: Deployment
[...]
spec:
template:
metadata:
annotations:
prometheus.io/scrape: true # determines if a pod should be scraped. Set to true to enable scraping.
prometheus.io/path: /metrics # determines the path to scrape metrics at. Defaults to /metrics.
prometheus.io/port: 80 # determines the port to scrape metrics at. Defaults to 80.
[...]
Между прочим: экземпляр prometheus, установленный с istioctl, не должен использоваться для производства. Из документов:
[...] pass --set values.prometheus.enabled= true во время установки. Это встроенное развертывание Prometheus предназначено для новых пользователей, чтобы помочь им быстро начать работу. Однако он не предлагает расширенной настройки, такой как постоянство или аутентификация, и поэтому не должен считаться готовым к производству.
Вы должны настроить свой собственный prometheus и настроить istio для отправки ему отчетов. См.: Ссылка: https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-metrics-merging
Следующий yaml, предоставленный istio, можно использовать в качестве справочника для настройки prometheus:https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/prometheus.yaml
Кроме того, если я правильно помню, установка аддонов, таких как kiali, prometheus,... с istioctl, будет удалена с istio 1.8 (дата выпуска декабрь 2020 г.). Так что вы все равно можете настроить свои собственные экземпляры с помощью helm.