LINUX.ORG.RU

ingress nginx controller - как получить доступ к приложению

 


0

1

День добрый, есть тестовый кластер на bare metal(3 ноды, 3 мастера) - ноды находятся в сети 192.168.57.0/24.

[root@kub-master-1 practice]# kubectl get nodes -o wide
NAME           STATUS   ROLES    AGE     VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                 CONTAINER-RUNTIME
kub-master-1   Ready    master   4d17h   v1.19.2   192.168.57.169   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3
kub-master-2   Ready    master   4d17h   v1.19.2   192.168.57.173   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3
kub-master-3   Ready    master   4d17h   v1.19.2   192.168.57.174   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3
kub-worker-1   Ready    node     4d17h   v1.19.2   192.168.57.207   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3
kub-worker-2   Ready    node     4d17h   v1.19.2   192.168.57.203   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3
kub-worker-3   Ready    node     4d17h   v1.19.2   192.168.57.204   <none>        CentOS Linux 8   4.18.0-240.10.1.el8_3.x86_64   docker://20.10.3


Поставил ingres-nginx controller для bare metal:
[root@kub-master-1 practice]# kubectl get pods -n ingress-nginx -o wide
NAME                                        READY   STATUS      RESTARTS   AGE    IP              NODE           NOMINATED NODE   READINESS GATES
ingress-nginx-admission-create-wjkj9        0/1     Completed   0          151m   10.233.69.25    kub-worker-2   <none>           <none>
ingress-nginx-admission-patch-t9mm8         0/1     Completed   0          151m   10.233.69.26    kub-worker-2   <none>           <none>
ingress-nginx-controller-67897c9494-pzd9w   1/1     Running     0          151m   10.233.69.27    kub-worker-2   <none>           <none>

Для теста ingres controller`a задеплоил приложение (слушает на порут 8080), service (пробовал и clusterIp и nodePort) вот пример с nodePort:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: test
  type: NodePort

Ingress manifest:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: "tomcat.tom"
    http:
      paths:
      - pathType: Prefix
        path: "/tomcat"
        backend:
          service:
            name: tomcat-service
            port:
              number: 80
      - pathType: Prefix
        path: "/nodejs"
        backend:
          service:
            name: my-service
            port:
              number: 80

[root@kub-master-1 practice]# kubectl get -n ingress-nginx svc
NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.233.60.106   <none>        80:30192/TCP,443:30222/TCP   160m
ingress-nginx-controller-admission   ClusterIP   10.233.33.131   <none>        443/TCP                      160m
my-service                           NodePort    10.233.22.254   <none>        80:32741/TCP                 113m
tomcat-service                       ClusterIP   10.233.11.6     <none>        80/TCP                       37m
[root@kub-master-1 practice]# kubectl get -n ingress-nginx ingress
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME              CLASS    HOSTS        ADDRESS          PORTS   AGE
minimal-ingress   <none>   tomcat.tom   192.168.57.203   80      24m

В логах пода ingress controller`a ошибок нет, services получили все нужные endpoints подов, ingress так же увидел прописаные services. Вопрос в следующем как мне получить доступ к моему приложению из моей сети где крутятся ноды - 192.168.57.0/24? ingress controller встал на воркер ноду с ip 192.168.57.203, ingress тоже получил этот address. На машинке с которой проверяю доступ в etc/hosts прописал 192.168.57.203 tomcat.tom. Пробую по 192.168.57.203:80/«мой путь в ingress» - не заходит. Пробовал по ip каждой ноды - тоже без результатов. Должен ли я вообще попасть в приложение таким способом, потому что не совсем догоняю как вообще должен работать nginx-ingress-controller и есть сомнения что где-то что-то недонастроил или что-то встало криво в кластере ? ПОка что могу получить доступ только через nodeport(192.168.57.203:nodeport) в service или через metalLB.



Последнее исправление: whynotm (всего исправлений: 1)

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