#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
свой мастер, и это помогло мне.