LINUX.ORG.RU

ingress в runcher

 , ,


0

1

Добрый день, Подскажите поднял поды, настроил сервисы к ним, Настраиваю ингресс к ним, когда переходишь открываешь доменное имя, он попадает на стартовую страницу rancher, хотя все поды работают, что может быть такое?

Service

apiVersion: v1
kind: Service
metadata:
  labels:
    app: app
  name: app
spec:
  ports:
  - name: "app-nginx"
    port: 80
    targetPort: 80
    protocol: TCP
  selector:
    app: app-nginx
  type: NodePort

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tk-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: test.dev.tk.ru
    http:
      paths:
      - backend:
          serviceName: app
          servicePort: 80

Ты идешь с запросом на ноду, где сам rancher запущен? Если до, то поэтому и попадаешь в морду rancher. Попробуй сходи на другую ноду, там должен 80-й порт уже в Ingress попасть.

v9lij ★★★★★ ()
Ответ на: комментарий от letema88

Ну так ты приходишь на 80-й порт самого rancher. Какого поведения ты от Ingress ждешь, если у тебя этот порт занят другим сервисом?

v9lij ★★★★★ ()
Ответ на: комментарий от letema88

И то и другое можно. Для rancher правда перераскатывать контейнер надо, чтобы порт другой пробросить. А для Ingress просто смотри в свои ямлы, ты там сам 80-й указал, это не обязательно, можно использовать другие порты.

v9lij ★★★★★ ()
Ответ на: комментарий от letema88
spec:
  rules:
  - host: test.dev.tk.ru
    http:
      paths:
      - backend:
          serviceName: app
          servicePort: 8080

Так в Ingress servicePort: 8080 ссылается на port: 80 в Services, порты должно быть одинаковы, а targetPort: 80 в Services уже ссылается на порт пода на котором и поднят веб-сервер.

Вы бы имели базовое понимание как работает сеть в kubernetes
https://habr.com/ru/company/ruvds/blog/441576/
https://habr.com/ru/company/southbridge/blog/346314/
https://habr.com/ru/company/ruvds/blog/442646/

Samamy ★★ ()
Ответ на: комментарий от Samamy

Я так и делаю Сервис

 ports:
  - name: "app-nginx"
    port: 8080
    targetPort: 80
    protocol: TCP
  selector:
    app: app-nginx
  type: NodePort

Ingress

 spec:
  rules:
  - host: test.dev.tk.ru
    http:
      paths:
      - backend:
          serviceName: app
          servicePort: 8080

Pod

 - image: nginx:1.15.9
          name: nginx
          ports:
          - containerPort: 80

Но все равно на главную rancher

letema88 ()
Ответ на: комментарий от letema88

Ну а почему ты думаешь, что твой nginx будет слушать на 80 порту? NodePort - это про диапазон 30000-32767. Тебе нужно либо поставить в сервис nginx type: LoadBalancer (если облако), либо в поды вписать hostNetwork: true и освободить порт на хосте.

deadNightTiger ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.