Kubernetes Traefik, сервис недоступен

Кто-нибудь знает, почему я продолжаю получать сервис, недоступный для приведенного ниже кода YAML. Вход указывает на службу, которая указывает на контейнер, и он должен работать. В этом примере я просто использую контейнер NGINX для тестирования.

apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  selector:
    k8s-app: traefik-ingress-lb
    app: nginx
  ports:
  - name: web
    port: 80
    targetPort: 80

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend
spec:
  rules:
  - host: test.example.services
    http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: web

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.15.4
        ports:
        - containerPort: 80

---

person Rutnet    schedule 02.08.2019    source источник
comment
чтобы отладить проблему, запустите модуль с curl в той же среде и попробуйте получить доступ к службе напрямую, без входа (интерфейс). если это работает, попробуйте использовать правило входа без хоста, в противном случае проверьте журналы модулей nginx на наличие подсказок.   -  person Markus Dresch    schedule 02.08.2019
comment
Как вы пытаетесь получить доступ к услуге?   -  person Thomas    schedule 02.08.2019
comment
Хорошо, ребята, это решено, мне пришлось удалить селектор: k8s-app: traefik-ingress-lb, потому что он не был частью конечной точки   -  person Rutnet    schedule 02.08.2019


Ответы (2)


У службы был селектор, которого не было в приложении. После того, как ярлык k8s-app: traefik-ingress-lb был удален, все заработало.

Спасибо Даниэлю Томчею на канале Traefik Slack за то, что помог мне здесь.

person Rutnet    schedule 02.08.2019

Если вы используете traefik в качестве контроллера входящего трафика, документация может ввести в заблуждение. Ниже вы можете увидеть пример входящего контроллера с сайта traefik. Та же конфигурация вернула ошибку 503 для моего приложения. Оказалось, что мне пришлось изменить servicePort: http на servicePort: 80, и это изменение устранило проблему!

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cheese
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: stilton.minikube
    http:
      paths:
      - path: /
        backend:
          serviceName: stilton
          servicePort: http
      ...
person Lukasz Dynowski    schedule 25.05.2020