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.

Другие вопросы по тегам