microk8s Ingress не может получить доступ к службам (503)

Я запускаю microk8s v1.18.5 из оснастки на Ubuntu 20.04 с надстройками ingress, dns, dashboard, helm3, storage.

Я пытаюсь получить внешний доступ к работающим службам, таким как grafana и dashboard. Я настроил прокси-сервисы и входы в соответствии с документами:

kind: Service
apiVersion: v1
metadata:
  name: grafana
  namespace: ingress
spec:
  type: ExternalName
  externalName: monitoring-grafana.kube-system.svc.cluster.local
  ports:
    - port: 80
---
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: grafana-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    kubernetes.io/tls-acme: "true"
spec:
  tls:
    - hosts:
        - "grafana.example.com"
      secretName: grafana-tls
  rules:
    - host: grafana.example.com
      http:
        paths:
          - backend:
              serviceName: grafana
              servicePort: 80
            path: /
---

а также

kind: Service
apiVersion: v1
metadata:
  name: dashboard
  namespace: ingress
spec:
  type: ExternalName
  externalName: kubernetes-dashboard.kube-system.svc.cluster.local
  ports:
    - port: 443
---
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: dashboard-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    kubernetes.io/tls-acme: "true"
spec:
  tls:
    - hosts:
        - "dashboard.example.com"
      secretName: dashboard-tls
  rules:
    - host: dashboard.example.com
      http:
        paths:
          - backend:
              serviceName: dashboard
              servicePort: 443
            path: /
---

Пытаясь получить доступ к панели управления или графане, я получаю:

503 Service Temporarily Unavailable
openresty/1.15.8.1

Что я могу сделать, чтобы найти первопричину?

Я также использую cert-manager и external-dns от helm3, может ли их конфигурация быть связана с проблемой?


person demiters    schedule 23.07.2020    source источник
comment
Вы можете опубликовать вывод kubectl get svc -A? Ваши стручки работают?   -  person Mariusz K.    schedule 24.07.2020
comment
@KFC_ мой результат: pastebin.com/iDkH1CEc и спасибо, что посмотрели. Все стручки работают. Я подозреваю, что пространство имен ingress - это не то, что мне нужно для установки прокси, хотя nginx-ingress-microk8s-controller находится в пространстве имен ingress.   -  person demiters    schedule 25.07.2020


Ответы (1)


Сначала вам нужно изменить панель мониторинга и тип службы grafana. на NodePort для правильной работы входа.

Кроме того, панель Kubernetes для microk8s доступна по <master_node_ip>:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ пути, поэтому вы должны указать ее либо в своем URL-адресе, либо в своем входном манифесте. Когда вы curl dashboard.example.com, выдает 503 Service Temporarily Unavailable ошибку. Однако, когда вы введете полный путь, он покажет веб-сайт:

curl http://dashboard.example.com:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy

<!--
Copyright 2017 The Kubernetes Authors.

[...]

Это пример входа, который перепишет /api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy на /dashboard/

kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: grafana-ingress
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: nginx
    # Add https backend protocol support for ingress-nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Accept-Encoding "";
      sub_filter '<base href="/">' '<base href="/dashboard/">';
      sub_filter_once on;
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - host: dashboard.example.com
      http:
        paths:
          - path: /dashboard(/|$)(.*)
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443
person Mariusz K.    schedule 29.07.2020