반응형

NKS를 구축한 뒤 서비스를 외부에 노출시키려면 ALB(Application Load Balancer)를 통해 쉽게 할 수 있다.

 

필자는 일단 tomcat pod 를 올리고

아주 간단한 service를 등록해주었다.

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

 

ALB Ingress Controller 설치

kubernetes 1.19 버전 이상(한국)

kubectl apply -f https://raw.githubusercontent.com/NaverCloudPlatform/nks-alb-ingress-controller/main/docs/install/pub/install.yaml

 

Ingress 등록

필자는 간단히 http 프로토콜로 앞서 생성한 my-tomcat-svc 서비스에 연결시키는 내용을 작성하였다.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alb-ingress-my-tomcat
  annotations:
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
    alb.ingress.kubernetes.io/description: 'my tomcat alb ingress controller'
  labels:
    app: alb-ingress-my-tomcat
spec:
  ingressClassName: alb
  defaultBackend:
    service:
      name: my-tomcat-svc
      port:
        number: 80

이제 ingress 를 등록해주면

kubectl apply -f ingress.yaml -n <네임스페이스>

 

NCP콘솔>VPC>LoadBalancer 에 자동으로 생성된다.

생성된 로드밸런서가 연결된 타겟을 확인해보면 내가 생성한 서비스에 잘 연결되어져 있다.

 

LB에 접속정보를 들어가보면

정상적으로 tomcat 을 호출하는 것을 확인할 수 있다.

 

도메인

NCP의 global DNS 서비스를 이용하면 손쉽게 내가 생성한 LB서비스와 연결할 수 있다.

외부DNS에서 도메인을 구입한 후 NCP 네임서버를 등록하는 방식인데,

필자는 내도메인.한국에서 무료도메인을 발급받아 하려고했으나, 여기선 네임서버 등록 기능이 없다.

아쉬운대로 CNAME을 설정하면 간단한 도메인호스팅을 경험할 수 있다.

마치며

클라우드에선 이런 서비스 노출들이 굉장히 쉽다...

혼자서 모든것을 touch 할 수 있는 클라우드..!

잘 활용할 수 있는 사람이 되자.

반응형
복사했습니다!