강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của bo3141068
bo3141068

câu hỏi đã được viết

Xu hướng chính là Kubernetes (Phiên bản sơ cấp~trung cấp)

Ingress - Thực hành

ingress를 이용해서 클러스터를 외부로 노출시키고 싶을 떄

Viết

·

1.8K

1

안녕하세요. 태민님 강의 잘 듣고있습니다.

Ingress를 이용하던 중 궁금증이 생겨 글 남깁니다.

Ingress Controller를 service로 expose함으로써 외부에서 접근할 수 있잖아요?

강의의 경우 NodePort를 이용했던 걸로 기억합니다.

근데 NodePort는 range가 아마 3만번대로 설정이 되어있는 걸로 알고 있는데, LoadBalancer로 노출시키는 방법 외에, 그냥 Node의 80번포트로 접속시키는 방법은 없을까요?

예를 들어 foo.com 에 어떤 노드 하나의 IP(예를 들어 123.123.123.123)만 설정함으로써

foo.com:80접속 =>123.123.123.123:80으로 번역됨=> ingress controller 서비스로 접속=> 다양한 노드의 pod로 요청 뿌려짐.

이러한 작업을 원하는데, LoadBalancer을 이용할 수 없고 NodePort를 이용하는 경우엔

foo.com:80접속 =>123.123.123.123:80으로 번역됨=>노드의 Nginx를 거쳐 80번에 대한 요청이 NodePort로 넘어감 => ingress controller 서비스로 접속=> 다양한 노드의 pod로 요청 뿌려짐.

이렇게 Ngnix나 Apache 등을 중간에 끼워넣어야하나 싶습니다.

질문이 좀 장황할 수 있는 점 죄송합니다. 애매한 부분은 다시 되물어주세요.ㅜㅜ

kubernetesdocker

Câu trả lời 2

1

Umi님의 프로필 이미지
Umi
Người đặt câu hỏi

192.168.0.30 은 자신의 내부망 아이피를 말씀하시는 거죠?

저는 제 내부망 IP로 설정하니 잘 되네요! 감사합니다. ㅎㅎ

external IP가 LoadBalancer type을 이용하지 않아도 사용가능한 것이었군요.

1

1pro님의 프로필 이미지
1pro
Người chia sẻ kiến thức

안녕하세요. 열심히 하시네요!

질문을 잘 적어줘서 어떤부분이 안되는건지 잘 이해가 됩니다

Ingress Controller에 꼽는 Service(실습 1-2 nodePort Service 생성)를 만들때 그대로 하시지 말고 

아래 내용처럼 만드시면 됩니다.

------------------------------------------------
apiVersion: v1 kind: Service metadata: name: ingress-nginx namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx spec: ports: - name: http port: 80 targetPort: 80 protocol: TCP - name: https port: 443 targetPort: 443 protocol: TCP externalIPs: - 192.168.0.30 selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx
------------------------------------------------

보시면 type에 NodePort는 제외하고,  externalIPs로 직접 IP를 설정하고, Port는 그대로 80을 주면됩니다.

그러면 192.168.0.30으로 접근할수 있어요. 80은 아시다시피 넣어도 되고 안넣어도 되고요.

Hình ảnh hồ sơ của bo3141068
bo3141068

câu hỏi đã được viết

Đặt câu hỏi