관리 메뉴

피터의 개발이야기

[kubernetes] 외부 IP 주소를 노출하여 클러스터의 애플리케이션에 접속하기 본문

Kubernetes/Infra작업

[kubernetes] 외부 IP 주소를 노출하여 클러스터의 애플리케이션에 접속하기

기록하는 백앤드개발자 2022. 8. 1. 19:32
반응형

 

ㅁ 개요

 ㅇ AWS 환경에서 쿠버네티스의 튜터리얼 실습과정을 정리

 ㅇ Hello World 애플리케이션을 다섯 개의 인스턴스 실행
 ㅇ 외부 IP 주소를 노출하는 서비스를 생성
 ㅇ 실행 중인 애플리케이션에 접근하기 위해 서비스 오브젝트를 사용

 ㅇ Network Load Balancer를 생성하여 도메인에 연결

 

 

클러스터에서 Hello World 애플리케이션을 실행

apiVersion: apps/v1

kind: Deployment

metadata:
  labels:
    app.kubernetes.io/name: load-balancer-example
  name: hello-world
  
spec:
  replicas: 5
  selector:
    matchLabels:
      app.kubernetes.io/name: load-balancer-example
  template:
    metadata:
      labels:
        app.kubernetes.io/name: load-balancer-example
    spec:
      containers:
      - image: gcr.io/google-samples/node-hello:1.0
        name: hello-world
        ports:
        - containerPort: 8080

  ㅇ service/load-balancer-example.yaml 을 생성하여 실행 할 수 있고, 아래의 명령으로도 실행할 수 있다.

 

kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml

 

 

ㅁ 디플로이먼트에 대한 정보를 확인

# deployment 확인
kubectl get deployments hello-world

 

 

# 디플로이 상세 확인
kubectl describe deployments hello-world

 

 

레플리카셋 오브젝트에 대한 정보를 확인

kubectl get replicasets
kubectl describe replicasets

 

 

디플로이먼트를 외부로 노출시키는 서비스 오브젝트를 생성

kubectl expose deployment hello-world --type=LoadBalancer --name=my-service

 

 

서비스에 대한 정보를 확인

kubectl get services my-service

 ㅇ External IP가 생성되었다.

 

kubectl describe services my-service

 

 

ㅁ AWS 로드밸런스 확인

 ㅇ 쿠버네티스에 서비스를 생성하면 로드밸런스에도 ad75a85d6bdc04d30952b74f89405bfc-1386427692 로 생성이 되었다.

 

 

ㅁ External IP 접속 확인

 ㅇ http:// e.ap-northeast-2.elb.amazonaws.com:8080/로 접속 확인하였다.

 

 

ㅁ 서브 도메인 세팅

 

 ㅇ 서브도메인으로 접속을 확인하였다.

 

 

ㅁ 테스트 환경 정리

[ec2-user@ip-172-31-43-214 ~]$ kubectl delete services my-service
service "my-service" deleted
[ec2-user@ip-172-31-43-214 ~]$ kubectl get service
serviceaccounts  services
[ec2-user@ip-172-31-43-214 ~]$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   6h28m

 

 ㅇ 로드 밸런서에서도 삭제가 되었다.

 

 

ㅁ 함께 보면 좋은 사이트

 

외부 IP 주소를 노출하여 클러스터의 애플리케이션에 접속하기

이 페이지에서는 외부 IP 주소를 노출하는 쿠버네티스 서비스 오브젝트를 생성하는 방법에 대해 설명한다. 시작하기 전에 kubectl을 설치한다. Google Kubernetes Engine 또는 Amazon Web Services와 같은 클라

kubernetes.io

반응형
Comments