【问题标题】:Kubernetes GKE ingress-nginx loki grafana prometheus setup issuesKubernetes GKE ingress-nginx loki grafana prometheus 设置问题
【发布时间】:2021-10-16 03:51:34
【问题描述】:

我正在尝试在 Google Kubernetes Engine AKA GKE 上设置新的集群。 我正在使用 helm 并添加到 repo ingress-nginx https://kubernetes.github.io/ingress-nginx 和 grafana https://grafana.github.io/helm-charts

我正在关注这个guide,但我无法访问内部 IP 或让入口工作到我可以看到仪表板的地方。然后,我使用他们的 Loki Stack(Loki、Promtail、Grafana、Prometheus)的 helm 部署尝试了这个 guide,并具有持久的卷声明。

加上打开端口 8443,我仍然收到 503 错误。我做了这个入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - http:
        paths:
          - path: /pro
            pathType: Prefix
            backend:
              service:
                name: loki-prometheus-server
                port:
                  number: 9090
          - path: /graf
            pathType: Prefix
            backend:
              service:
                name: loki-grafana
                port:
                  number: 3000

我尝试了许多不同的端口,包括 80,但都失败了。

loki-prometheus-server 服务:

Name:              loki-prometheus-server
Namespace:         ingress-nginx
Labels:            app=prometheus
                   app.kubernetes.io/managed-by=Helm
                   chart=prometheus-11.16.9
                   component=server
                   heritage=Helm
                   release=loki
Annotations:       cloud.google.com/neg: {"ingress":true}
                   meta.helm.sh/release-name: loki
                   meta.helm.sh/release-namespace: ingress-nginx
Selector:          app=prometheus,component=server,release=loki
Type:              ClusterIP
IP Families:       <none>
IP:                10.***
IPs:               10.***
Port:              http  80/TCP
TargetPort:        9090/TCP
Endpoints:         10.***:9090
Session Affinity:  None
Events:            <none>

loki-grafana 服务:

Name:              loki-grafana
Namespace:         ingress-nginx
Labels:            app.kubernetes.io/instance=loki
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=grafana
                   app.kubernetes.io/version=7.5.0
                   helm.sh/chart=grafana-5.7.10
Annotations:       cloud.google.com/neg: {"ingress":true}
                   meta.helm.sh/release-name: loki
                   meta.helm.sh/release-namespace: ingress-nginx
Selector:          app.kubernetes.io/instance=loki,app.kubernetes.io/name=grafana
Type:              ClusterIP
IP Families:       <none>
IP:                10.***
IPs:               10.***
Port:              service  80/TCP
TargetPort:        3000/TCP
Endpoints:         10.***:3000
Session Affinity:  None
Events:            <none>

一步一步:

在 gcloud 上创建新集群:

  1. GKE 标准
  2. default-pool->Nodes->机器类型:e2-small
  3. default-pool->Security-> 允许完全访问所有选定的 Cloud API 创建
  4. 创建。

连接到控制台或云外壳

然后:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

kubectl create namespace ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx

到目前为止一切正常。

转到 VPC 网络-> 防火墙 -> 在 Protocols/ports 中找到具有 80,443 的那个 然后将 8443 添加到它。

安装 loki:

helm upgrade --install loki grafana/loki-stack --namespace ingress-nginx  --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false,loki.persistence.enabled=true,loki.persistence.storageClassName=standard,loki.persistence.size=5Gi

一切似乎都还不错,但是如果我去我的外部负载均衡器,我会得到 404 not found / nginx

我添加了这个入口:

使用kubectl apply -f ingress.yml -n ingress-nginx

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: "nginx"
    prometheus.io/scrape: "true"
spec:
  rules:
    - http:
        paths:
          - path: /pro
            pathType: Prefix
            backend:
              service:
                name: loki-prometheus-server
                port:
                  number: 80
          - path: /graf
            pathType: Prefix
            backend:
              service:
                name: loki-grafana
                port:
                  number: 80

然后在 /pro 上的文本中找不到 404 页面 并使用 /graf 的 404 not found nginx 页面重定向到 /login

我做错了什么?

【问题讨论】:

    标签: nginx kubernetes google-kubernetes-engine prometheus kubernetes-ingress


    【解决方案1】:

    跑步:

    helm upgrade ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx  --set controller.metrics.enabled=true --set-string controller.podAnnotations."prometheus\.io/scrape"="true" --set-string controller.podAnnotations."prometheus\.io/port"="10254"
    

    使用这个入口,我能够让它工作:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-resource
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/use-regex: "true"
        nginx.ingress.kubernetes.io/ssl-redirect: "false"
        nginx.ingress.kubernetes.io/rewrite-target: /$1
        prometheus.io/port: "10254"
        prometheus.io/scrape: "true"
    spec:
      rules:
        - http:
            paths:
              - path: /?(.*)
                pathType: Prefix
                backend:
                  service:
                    name: loki-grafana
                    port:
                      number: 80
    
    

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 2019-04-17
      • 2019-08-08
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      相关资源
      最近更新 更多