본문 바로가기

AWS/EKS

2) EKS Application 배포하기

반응형

이제 만들어 놓은 EKS에 App을 배포해 보자 먼저 Go로 만들어 ECR에 올려 놓은 이미지를 활용한다.

 

1) hellotest-deployment.yaml 생성

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hellotest-api
spec:
  replicas: 2
  minReadySeconds: 5
  selector:
    matchLabels:
      app: hellotest-api
  template:
    metadata:
      name: hellotest-api-pod
      labels:
        app: hellotest-api
    spec:
      containers:
      - name: hellotest-api
        image: 357624679429.dkr.ecr.ap-northeast-2.amazonaws.com/hellotest:lastest
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
kubectl apply -f hellotest-deployment.yaml

 

정상적으로 pod에 배포가 되었다. 이제 배포된 App에 접속을 해봐야하는데 

 

해당 pod에 직접 접속해서 테스트하기 보다는 Load Balancer를 연결해서 외부에서 접속해보는 테스트를 해보자.

 

2) hellotest-service.yaml 생성

apiVersion: v1
kind: Service
metadata:
  name: hellotest-api
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
    service.beta.kubernetes.io/aws-load-balancer-internal: "true"
spec:
  ports:
   - port: 80
     name: http
     protocol: TCP
     targetPort: 8080
  type: LoadBalancer
  selector:
    app: hellotest-api

 

위처럼 anntations을 추가하면 정상적이라면 aws ELB에 자동으로 NLB가 하나 생성이 된다.

 

그런데 확인해 보니 service가 만들어는 졌는데 EXTERNAL-IP에 end point url도 없고 

실제 ELB도 생성 되어 있지 않았다. 확인해 보니 역시 권한 문제 사용자 권한에 ELB 권한을 추가해야 한다.

AWSElasticLoadBalancingServiceRolePolicy 를 추가한다.

 

다시 service를 생성하면 정상적으로 EXTERNAL-IP가 나온다.

 

App 실행 테스트

 

정상적으로 Hello GO! 라는 응답을 확인! 

여기까지  EKS로 테스트 APP 배포및 ELB 테스트까지 완료! 생각보다 공부하는데 시간이 좀 걸렸다.

 

이런 저런 작은 문제들을 찾으면서 해결하는데 시간이 좀 걸린듯 .. 계속 AWS의 기능들에 대해 공부해 보고자 한다.

 

근데 아무래도 비용이 좀 드는것이 문제 ㅠㅠ

'AWS > EKS' 카테고리의 다른 글

1) EKS 따라해보기.  (0) 2021.03.05