当前位置: 首页 > 知识库问答 >
问题:

通过AKS中的入口访问Prometheus和Grafana

薛烈
2023-03-14

我部署了一个AKS集群,并在监控命名空间中部署了Prometheus和Grafana。我还创建了一个入口规则,以在默认命名空间中访问这两个应用程序。为了访问这两个服务,我在默认命名空间中创建了服务作为外部名称。

kind: Service
apiVersion: v1
metadata:
  name: prometheus-server-alb
  namespace: monitoring
spec:
  selector:
    app: prometheus
  ports:
    - protocol: TCP
      port: 9090
      targetPort: 9090
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: monitoring
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port:   '3000'
spec:
  selector: 
    app: grafana  
  ports:
    - port: 3000
      targetPort: 3000
---
kind: Service
apiVersion: v1
metadata:
  name: grafana-ext
  namespace: default
spec:
  type: ExternalName
  externalName: grafana.monitoring.svc.cluster.local
  ports:
  - port: 3000
    targetPort: 3000
---
kind: Service
apiVersion: v1
metadata:
  name: prometheus-ext
  namespace: default
spec:
  type: ExternalName
  externalName: prometheus-server-alb.monitoring.svc.cluster.local
  ports:
  - port: 9090
    targetPort: 9090
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: sitecore-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - host: grafana.test.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: grafana-ext
            port: 
              number: 3000
  - host: prometheus.test.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: prometheus-ext
            port: 
              number: 9090
  tls:
  - secretName: monitoring-tls
    hosts:
    - prometheus.test.com
    - grafana.test.com

我可以在默认名称空间内本地访问服务,还提供了所有必需的东西链接证书等。但我仍然无法访问它。它给了我“502坏网关错误”。

有人能帮我吗?提前谢谢你。

共有1个答案

陶博耘
2023-03-14

•我建议您在AKS部署yaml文件中添加以下注释,以防止将私有IP用于应用网关:-

 kubernetes.io/ingress.class: azure/application-gateway
 appgw.ingress.kubernetes.io/use-private-ip: "false"

上述注释以及您在访问Graffana和Prometheus监控命名空间时,通过应用程序网关本身访问AKS集群时,用于允许应用程序网关的SSL重定向的注释,肯定会帮助您克服“坏网关”错误。

•此外,除上述内容外,我将要求您检查是否为监控命名空间定义了就绪性或活性探测。据我所知,它没有启用,因此我请求您启用它们,然后检查状态。我还建议您检查配置的默认健康探测器是否能够访问监控命名空间。关于坏网关,您面临的错误也可能是由于健康探测器无法访问后端资源。当您设置应用程序网关时,默认情况下会通过“HTTPGet”方法自动配置健康探测器。

有关上述内容的更多详细信息,请参阅以下文档链接:-

https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-troubleshooting-502

 类似资料:
  • 任何关于直接远程访问(不使用ssh->kubectl代理来避免在Kubernetes节点上进行用户管理)的详细实用指南都将不胜感激。:) 更新: 只是想说清楚点。这是在前提部署中的裸机(没有GCE、AWZ、Azure或任何其他),而且有些环境将完全脱机(这将增加获得安装包的额外问题)。 因此,当我在Kubernetes上设置入口时,我无法创建将443重定向到6443的防火墙规则。似乎唯一的选择是创

  • 我试着在谷歌上进行了多次搜索,但没有找到为什么ingress控制器的外部ip无法从浏览器中访问的任何原因。其简单的get请求没有任何身份验证或授权。 我按照本文将简单的入口控制器部署到服务。https://docs.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli 此外,当我试图从CLI在ingress nginx控制器的外部IP

  • 是否可以使用本地接口从war访问驻留在ear文件中的ejb 都部署在同一个应用服务器下。 ejb: 现在,在测试servlet(战争)中: 失败于: javax。命名。NameNotFoundException:试图在/app/webapp/FirstWebEJBTest/12292093中查找comp/env/FirstDemoEJB/Local时。; 但是远程查找可以很好地工作:

  • 问题内容: 我有一个页面,该页面向中的URL 发出JSONP ajax请求(使用jQuery的功能)。我以为(阅读:假定),其中的资源可以在服务器端访问该域中设置的任何cookie,但事实并非如此? 专门执行ajax调用以访问特定的cookie,进行一些数据操作并返回以cookie值为键的丰富信息集。原始域无法直接访问cookie值,因此我认为ajax请求将保持我需要的状态。 我会忽略关于Cook

  • 本页向您展示如何使用 kubectl port-forward 命令连接到运行在 Kubernetes 集群中的 Redis 服务器。这种类型的连接对于数据库调试很有帮助。 创建一个 Pod 来运行 Redis 服务器 创建一个 Pod: kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/redis-mas

  • 我正在尝试使用入口公开部署,其中DeamonSet具有hostNetwork=true,这将允许我跳过额外的负载平衡器层,并直接在Kubernetes外部节点IP上公开我的服务。很遗憾,我无法从外部网络访问入口控制器。 我在GCP上运行库伯内特斯版本1.11.16-gke.2。 我将刷新群集设置为: 我运行部署: 然后我创建服务: 和入口资源: 我获取节点外部IP: 检查入口是否正在运行: 然后尝