0

グローバル HTTP(S) ロード バランサ (Google マネージド TLS 証明書で保護) で公開しようとしている gke にデプロイされた Grafana アプリで、ヘルスチェックの問題に直面しています。
Grafna と InfluxDB の 2 つのアプリを gke にデプロイしています。どちらのサービスも helm でデプロイされ、レプリカが 1 に設定されています。それらの前のサービスは次のようになります。

apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/neg: '{"ingress":true}'
    meta.helm.sh/release-name: grafana
    meta.helm.sh/release-namespace: monitoring
  creationTimestamp: "2022-01-06T13:30:16Z"
  labels:
    app.kubernetes.io/component: grafana
    app.kubernetes.io/instance: grafana
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: grafana
    helm.sh/chart: grafana-7.5.0
  name: grafana
  namespace: monitoring
spec:
  clusterIP: 10.104.7.143
  clusterIPs:
  - 10.104.7.143
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    port: 3000
    protocol: TCP
    targetPort: dashboard
  selector:
    app.kubernetes.io/component: grafana
    app.kubernetes.io/instance: grafana
    app.kubernetes.io/name: grafana
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/neg: '{"ingress":true}'
    meta.helm.sh/release-name: influxdb
    meta.helm.sh/release-namespace: monitoring
  creationTimestamp: "2022-01-06T12:22:04Z"
  labels:
    app.kubernetes.io/component: influxdb
    app.kubernetes.io/instance: influxdb
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: influxdb
    helm.sh/chart: influxdb-2.4.6
  name: influxdb
  namespace: monitoring
spec:
  clusterIP: 10.104.10.142
  clusterIPs:
  - 10.104.10.142
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    port: 8086
    protocol: TCP
    targetPort: http
  - name: rpc
    port: 8088
    protocol: TCP
    targetPort: rpc
  selector:
    app.kubernetes.io/component: influxdb
    app.kubernetes.io/instance: influxdb
    app.kubernetes.io/name: influxdb
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

Ingress を適用してロード バランサーを作成すると、Grafana がデフォルトのバックエンド サービスとして設定されていれば、ヘルスチェックが機能し、サービスに到達できます。しかし、別のサービスに新しいルールを追加すると、Grafana バックエンドが異常になります (正常性ルールは変更されませんでした)。Grafana がデフォルトのバックエンドとして設定されておらず、存在する唯一のバックエンドではない場合も同じです。正常性ルールは、レプリカセットに基づいて Google が自動的に作成するルールです。バックエンド タイプはZonal network endpoint group、grafana と influx の両方に対応しています。

  • S1 -グラファナ作品
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: managed-cert-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: gke-static-ip
    networking.gke.io/managed-certificates: managed-cert
    kubernetes.io/ingress.class: "gce"
    kubernetes.io/ingress.allow-http: "false"
spec:
  defaultBackend:
    service:
      name: grafana
      port:
        number: 3000
  • S2 -デフォルトの k8s バックエンドは機能していますが、バックエンドが正常でないため、Grafana は機能していません
spec:
  rules:
    - http:
        paths:
          - path: /grafana/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: grafana
                port:
                  number: 3000
  • S3 :デフォルトの k8s バックエンドは機能しています、influxdb バックエンドは機能しています、grafana は機能していません: 異常なバックエンド
spec:
  rules:
    - http:
        paths:
          - path: /grafana/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: grafana
                port:
                  number: 3000
          - path: /influxdb/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: influxdb
                port:
                  number: 8086
  • S4 : Inlfux バックエンドはデフォルトで動作していますがgrafana は動作していません: バックエンドが異常です
spec:
  defaultBackend:
    service:
      name: influxdb
      port:
        number: 8086
  rules:
    - http:
        paths:
          - path: /grafana/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: grafana
                port:
                  number: 3000
          - path: /influxdb/*
            pathType: ImplementationSpecific
            backend:
              service:
                name: influxdb
                port:
                  number: 8086

grafana のすべての失敗シナリオで、ロード バランサーはfailed_to_connect_to_backendタグで502をログに記録します。

InfluxDb バックエンドは、これらすべてのシナリオで正常に機能します。
ファイアウォールルールも確認しましたが、すべて問題ないようです...

4

0 に答える 0