이전 포스트에서는 클러스터 외부로 서비스를 노출하기 위해 NodePort 타입 서비스를 사용했습니다. Kubernetes에서 외부로 서비스를 노출하는 방법은 NodePort 외에 LoadBalancer 타입 서비스와 Ingress를 사용하여 방법이 있습니다. APPS에서는 LoadBalancer방식의 서비스를 지원하지 않으므로 이 문서에서는 Ingress를 이용하여 외부로 서비스를 노출하는 방법을 설명합니다.

Default Host 이용

1. 서비스맵의 서비스 탭에서 인그레스 추가 클릭

2. 대상 호스트 : 기본 호스트 선택 후 추가. 다음의 내용을 입력한다.

  • 패스 : /hello
  • 대상 서비스 명 : nginx
  • 대상 서비스 포트 : 80
앱스 Default Host를 이용하여 잉그레스(Ingress) 추가 화면

3. 기본 호스트의 Ingress URL 클릭

앱스 Default Host를 이용하여 추가한 잉그레스(Ingress) URL 클릭 화면
앱스 Default Host를 이용하여 추가한 잉그레스(Ingress)가 정상적으로 동작함을 브라우저에서 확인하는 화면

등록된 Host 를 이용

helloworld.com은 테스트를 위해 PC의 hosts 파일에 등록하였습니다. 정상적인 경우, DNS에 등록된 host 이름이라야 합니다.

1. 서비스맵의 서비스 탭에서 인그레스 추가 클릭

2. 대상 호스트 : 직접 입력 선택. helloworld.com 입력 후 추가. 다음의 내용을 입력한다.

  • 패스 : /
  • 대상 서비스 명 : nginx
  • 대상 서비스 포트 : 80
앱스 등록된 Host를 이용하여 잉그레스(Ingress) 추가 화면

3. helloworld.com의 Ingress URL 클릭

앱스 등록된 Host를 이용하여 추가한 잉그레스(Ingress) URL 클릭 화면
앱스 등록된 Host를 이용하여 추가한 잉그레스(Ingress)가 정상적으로 동작함을 브라우저에서 확인하는 화면

HTTPS 설정

1. 인증서 생성

공인 인증서를 가지고 있을 경우 1번 Step을 건너 띌 수 있습니다. 테스트 목적으로 사설 self-signed 인증서를 생성한다.

Copy to Clipboard

2. 인증서 등록

서비스맵의 [설정 정보] 탭 내의 [시크릿] 탭에서 [시크릿 생성] 클릭후, 다음의 내용을 입력한다.

  • 이름 : helloworld
  • 설명 : helloworld.com 인증서
  • 유형 : Tls
  • tls.key : 위에서 생성한 helloworld.key (PEM 형식)
  • tls.crt : 위에서 생성한 helloworld.crt (PEM 형식)
앱스 HTTPS 통신을 위한 인증서 정보를 Secret으로 등록하는 화면

3. Ingress에서 인증서 설정

서비스맵의 [서비스] 탭에서 인그레스 편집 클릭 후, TLS 탭에서 다음을 선택 후 추가

  • 시크릿 : helloworld
  • 대상 호스트 : helloworld.com
앱스 인그레스(Ingress)에서 TLS 정보를 설정하는 화면

4. helloworld.com의 Ingress URL 클릭

사설 인증서를 사용했기 때문에 경고 메세지 표시됩니다. 고급을 선택하고 페이지로 이동을 클릭하면 홈페이지를 확인할 수 있습니다.

앱스 브라우저에서 HTTPS를 적용한 인그레스(Ingress) URL을 접속하였을 때, 사설 인증서 사용에 대한 경고 메시지를  표시하는 화면
앱스 브라우저에서 HTTPS를 적용한 인그레스(Ingress) URL을 접속하는 화면