You will be fine

<GCP 쿠버네티스로 웹서비스하기> 배포하기 (1)

by BFine
반응형

가.  yaml 파일 설정하기

 a. 설정 .yaml

  -  저번에 만든 구성도 대로 .yaml 파일을 만들어본다.

  -  Service 타입은 LoadBalancer로 설정하고 포트포워딩은 8080으로 해야한다.

apiVersion: v1
kind: Service
metadata:
  name: drawinglots-svc
  labels:
    app: drawinglots
spec:
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: drawinglots
    tier: application
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: drawinglots-deploy
  labels:
    app: drawinglots
spec:
  selector:
    matchLabels:
      app: drawinglots
      tier: application
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: drawinglots
        tier: application
    spec:
      containers:
      - image: //Cloud Build한 이미지 이름을 입력한다. 
        name: drawinglots
        ports:
        - containerPort: 8080
          name: drawinglots

나. Application 수정하기

 a. Profile 분리

  -  application-{프로파일이름}.yml 로 local과 gcp 두개로 만들었다.

  -  gcp는 service name을 통해 DNS 통신을 하기때문에 {service 이름}.{namespace} 로 Host를 설정했다.

올린후에 create-drop -> update로 바꿔야한다.

다. 배포하기

 a. 명령어

  -  kubectl create -f {파일명}.yml로 실행하자

 

 b. 확인하기

  -  kubectl get pod -o wide 로 잘올라가있는지 확인!

  -  kubectl get svcEXTERNAL IP를 확인하자

-  잘보면 Port가 80:8080 이어야 할 것 같은데 첨보는 3만번대 port가 보인다 확인해보면

kubectl get svc {svc이름} -o yaml 맨 아래에 보면 저 3만번대 port 노드포트인걸 확인할 수 있다.

 HTTP요청 --80--> LoadBalancer --31432--> [ NodePort - Service ] -- 8080---> Container

 

 c. 테스트

  -  EXTERNAL IP로 접속해보면... 잘나온다!!

  - ※ 요렇게 할 경우 하루에 약 오천원 정도 무료크래딧이 사라진다...  

반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기