微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Kubernetes-Prometheus是作为ISTIO的一部分进行部署的,未显示部署?

如何解决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

并按如下所述暴露了普罗米修斯服务

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中看不到以下部署

enter image description here

解决方法

istio的标准Prometheus安装未配置您的Pod来向Prometheus发送指标。它只是从istio资源中收集数据。

要将您的Pod添加到要抓取的位置,请在应用程序的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.
[...]

顺便说一句:随istioctl安装的prometheus实例不应用于生产。来自文档:

[...]在安装过程中传递--set values.prometheus.enabled = true。 Prometheus的内置部署旨在供新用户使用,以帮助他们快速入门。但是,它不提供高级的自定义功能,例如持久性或身份验证,因此不应视为已准备好投入生产。

您应该设置自己的方法,并配置istio向其报告。看到: 参考:https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-metrics-merging

istio提供的以下Yaml可用作设置Prometheus的参考: https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/prometheus.yaml

此外,如果我没有记错的话,将使用istio 1.8(发布日期为2020年12月)删除安装带有kiali,prometheus,...和istioctl的插件。因此,无论如何,您可能想要设置带有头盔的自己的实例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。