Вход K3S Kubernetes с несколькими веб-приложениями в одном домене: получение 404

#kubernetes #traefik-ingress

#kubernetes #traefik-вход

Вопрос:

Привет, я очень новичок в kubernetes. У меня есть k3s.настройка кластера ввода-вывода (версия сервера 1.20), и я хочу запустить несколько веб-приложений в одном домене. Я использую входной контроллер k3s по умолчанию (traefik).

В зависимости от указанного пути запрос должен быть перенаправлен в настроенное веб-приложение.

  • dev.xxxxxxx.de/app -> должен перейти к моему самостоятельно разработанному приложению .net blazor webassembly
  • dev.xxxxxxx.de/graf -> следует перейти в службу grafana / pod

Оба приложения / службы запущены в браузере и могут быть успешно доступны по имени их службы через NodePort (без входа). Поэтому я подозреваю, что проблема во входной маршрутизации.

Мой ingress.yaml:

 apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  labels:
    environment: dev
  annotations:
    kubernetes.io/ingress.class: "traefik"
spec:
  tls:
  - hosts:
    - dev.xxxxxxx.de
      
  rules:
  - host: dev.xxxxxxx.de
    http:
      paths:
      - path: /app
        pathType: ImplementationSpecific
        backend:
          service:
            name: iot-app
            port: 
              number: 80
                
      - path: /graf
        pathType: ImplementationSpecific
        backend:
          service:
            name: grafana
            port: 
              number: 3000
 

Проблема теперь в том, что при просмотре dev.xxxxxxx.de/app или dev.xxxxxxx.de/graf , в обоих случаях первоначальный запрос возвращается с 200, но последующие запросы, такие как assets (css, js), возвращают 404.

введите описание изображения здесь

Я подозреваю, что URL-адрес

  • dev.xxxxx.de/app/bootstrap.min.css

преобразуется в

  • dev.xxxxx.de/bootstrap.min.css

что приводит к 404.

Все подсказки, почему я не могу полностью просмотреть оба приложения, оценены! Спасибо.

Ответ №1:

Поскольку я решил ту же проблему прямо сейчас в своем K3s-кластере:

Вы пытались запустить свой мастер с помощью этой --cluster-domain опции (см. Документы)?

Я добавил эту опцию в /etc/systemd/system/k3s.service свой мастер, и это помогло мне.