Hỏi & Đáp
섹션6:인그레스(ingress) 실습 - 인그레스 통한 접속 시 IP 문제
인그레스의 ip는 별도로 할당받으신것으로 보이는데 베어메탈lb 같은것을 쓰셔서 할당받으신걸까요? 그래서 노드의 ip와 동일한 기능을 수행하는 ip를 할당 받으신것 같습니다. ==> 별도로 IP를 할당받지는 않았습니다. 자원을 모두 지우고 강의 자료에 명시된 아래 명령어만 사용하였습니다. kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io ingress-nginx-admission cat 일단 말씀주신 kubectl get node -o wide 실행 결과는 아래와 같습니다. root@master0:/home/user01# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master0 Ready control-plane 110d v1.26.0 192.168.32.133 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 node0 Ready 110d v1.26.0 192.168.32.134 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 node1 Ready 110d v1.26.0 192.168.32.135 Ubuntu 20.04 LTS 5.4.0-26-generic containerd://1.6.12 기타 명령어 결과는 아래와 같습니다. root@master0:/home/user01# kubectl get ing -o wide NAME CLASS HOSTS ADDRESS PORTS AGE http-go-ingress * 192.168.32.135 80 9m48s root@master0:/home/user01# kubectl get ing -o yaml apiVersion: v1 items: - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/rewrite-target":"/welcome/test"},"name":"http-go-ingress","namespace":"default"},"spec":{"rules":[{"http":{"paths":[{"backend":{"service":{"name":"http-go","port":{"number":80}}},"path":"/welcome/test","pathType":"Exact"}]}}]}} kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: /welcome/test creationTimestamp: "2023-05-02T21:44:34Z" generation: 1 name: http-go-ingress namespace: default resourceVersion: "233537" uid: 0d9ab748-f44c-4f27-9b49-286bf7a07583 spec: rules: - http: paths: - backend: service: name: http-go port: number: 80 path: /welcome/test pathType: Exact status: loadBalancer: ingress: - ip: 192.168.32.135 kind: List metadata: resourceVersion: "" root@master0:/home/user01# kubectl get all NAME READY STATUS RESTARTS AGE pod/http-go-56686cfd44-r2h2w 1/1 Running 0 15m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/http-go ClusterIP 10.111.165.210 80/TCP 15m service/kubernetes ClusterIP 10.96.0.1 443/TCP 19m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/http-go 1/1 1 1 15m NAME DESIRED CURRENT READY AGE replicaset.apps/http-go-56686cfd44 1 1 1 15m ----- root@master0:/home/user01# kubectl get all -n ingress-nginx NAME READY STATUS RESTARTS AGE pod/ingress-nginx-admission-create-vn94g 0/1 Completed 0 14m pod/ingress-nginx-admission-patch-wdds2 0/1 Completed 0 14m pod/ingress-nginx-controller-6b58ffdc97-kgnwm 1/1 Running 0 14m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ingress-nginx-controller NodePort 10.111.219.190 80:32022/TCP,443:31308/TCP 14m service/ingress-nginx-controller-admission ClusterIP 10.101.105.172 443/TCP 14m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ingress-nginx-controller 1/1 1 1 14m NAME DESIRED CURRENT READY AGE replicaset.apps/ingress-nginx-controller-6b58ffdc97 1 1 1 14m NAME COMPLETIONS DURATION AGE job.batch/ingress-nginx-admission-create 1/1 6s 14m job.batch/ingress-nginx-admission-patch 1/1 5s 14m 노드 IP를 이용한 결과는 아래와 같습니다. root@master0:/home/user01# curl 192.168.32.135:32022 404 Not Found 404 Not Found nginx ----- root@master0:/home/user01# curl 192.168.32.135:32022/welcome/test Welcome! http-go-56686cfd44-r2h2w ----- root@master0:/home/user01# curl 192.168.32.135:80 curl: (7) Failed to connect to 192.168.32.135 port 80: Connection refused root@master0:/home/user01# curl 192.168.32.135:80/welcome/test curl: (7) Failed to connect to 192.168.32.135 port 80: Connection refused ----- # 아래는 인그레스 클러스터 IP로의 접속 시도 입니다. root@master0:/home/user01# curl -v 10.111.219.190:80/welcome/test * Trying 10.111.219.190:80... * TCP_NODELAY set * connect to 10.111.219.190 port 80 failed: Connection refused * Failed to connect to 10.111.219.190 port 80: Connection refused * Closing connection 0 curl: (7) Failed to connect to 10.111.219.190 port 80: Connection refused root@master0:/home/user01# curl -v 10.111.219.190:32022/welcome/test * Trying 10.111.219.190:32022... * TCP_NODELAY set * connect to 10.111.219.190 port 32022 failed: Connection refused * Failed to connect to 10.111.219.190 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 10.111.219.190 port 32022: Connection refused 위 질문에서 제가 잘못 표기했던 부분이 있네요ㅜ 죄송합니다. 실행 ❌ : curl 127.0.0.1:{ingress-nginx-controller NodePort의 PORT} 실행 ⭕ : curl {인그레스 노드 IP}:{ingress-nginx-controller NodePort의 PORT} 제가 궁금했던 부분은 영상에서는 kubectl get ing 에서 인그레스 노드 IP가 192.168.154.156 이고, kubectl get all -n ingress-nginx 에서 ingress-nginx-controller의 IP가 10.103.171.41 에 80:30921 포트가 할당된 상태입니다. 여기서 curl 127.0.0.1:30921/welcome/test 명령을 실행했을때 정상적으로 인그레스를 거쳐 서비스의 응답을 받는 것을 확인했는데요, 저는 루프백 127.0.0.1:{ingress-nginx-controller의 port 로 요청을 보내도 연결 자체가 되지 않는게 왜 그런것인지 궁금합니다..ㅜ 영상에서는 인그레스 노드의 IP가 마스터 노드와 같은 IP를 가진 것도 아닌데, 루프백 주소를 쓰신 것이 이해가 가지 않습니다, 제가 빠트린 개념이 있을까요...? 아래는 127.0.0.1로의 요청입니다. root@master0:/home/user01# curl -v 127.0.0.1:32022 * Trying 127.0.0.1:32022... * TCP_NODELAY set * connect to 127.0.0.1 port 32022 failed: Connection refused * Failed to connect to 127.0.0.1 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 127.0.0.1 port 32022: Connection refused ----- root@master0:/home/user01# curl -v 127.0.0.1:32022/welcome/test * Trying 127.0.0.1:32022... * TCP_NODELAY set * connect to 127.0.0.1 port 32022 failed: Connection refused * Failed to connect to 127.0.0.1 port 32022: Connection refused * Closing connection 0 curl: (7) Failed to connect to 127.0.0.1 port 32022: Connection refused ----- #인그레스 서비스 정보입니다. root@master0:/home/user01# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller NodePort 10.111.219.190 80:32022/TCP,443:31308/TCP 42m ingress-nginx-controller-admission ClusterIP 10.101.105.172 443/TCP 42m
- Lượt thích
- 2
- Số bình luận
- 2
- Lượt xem
- 1493

