GCP Console에서
워크로드로 이동(검색) 또는 Kubernetes Engine > Workloads
최초인 경우 Deploy버튼 클릭
이미 Workload가 존재하면 + 배포 클릭
Step1 : Container
. Existing container image를 선택 하면 Image path* 로 배포할 이미지를 선택(SELECT) 하라고 함.
SELECT를 누르면 우측에 Container Registry Tab과 Artifact Registry Tab 에서 기존에 push한 이미지를 선택
(참고) Artifact Registry가 비활성 되어 있으면 다음과 같이 나온다
. 하단에 continue 버튼을 눌러 다음단계를 진행한다.
Step2 : Configuration
- Application name : hellobro
- Namespace : default
. Labels
Key: app, value: hellobro
. Configuration YAML 에 VIEW YAML 버튼을 누르면 정의된 내용의 yaml 파일을 볼 수 있다.
. Cluster
Zone : aisia-south1-a (싱가폴), asia-northeast-2-a( 서울)
(Zone의 끝자리는 a,b,c 무엇이듯 상관없음. 해당 region에 여러개의 zone이 있는것임)
. Deploy 버튼을 누르면 K8S Cluster에 배포 시작
K8s cluster생성, 배포 생성, Pod에 배포
Step3 : 외부에 공개. 포트를 매핑하는 서비스를 추가해야한다.
. 배포가 정상적으로 되면 Kubernetes Engine > Clusters 에서도 확인가능하다.
. Kubernetes Engine > Workloads에 배포한 app을 클릭하여 상세화면으로 이동한다.
. 상단메뉴의 Actions > Expose를 클릭 한다( 해당메뉴는 화면이 좁을 때 세로로 점3개에 숨어있을 수 있음)
= To let othere access your deployment, expose it to create service 라고 표시된 곳이 "EXPOSE" 버튼을 눌러도 됨.
. Port mapping
. port1 : from port는 80으로 설정되어 있다. sample application에서는 8080 포트를 쓰므로 Target port를 8080 으로 설정
. Service type : Load balancer
. Service name : hellobro-service
. EXPOSE 버튼 클릭
. 생성이 완료되면 좌측메뉴에 Services * Ingress로 이동하고 External endpoints에 링크가 있다. 클릭해보면 hello화면이 나온다.
(Expose 이전에는 브라우저에서 접속이 안됐음)
Step4: 삭제
. 서비스 삭제 : Services & Ingress 에서 해당 서비스 선택 후 "DELETE"버튼 클릭
. 클러스터 삭제 : Clusters 에서 해당 클러스터 삭제
. 컨테이너 이미지 삭제 :
참조 : Deploying a containerized web application
https://cloud.google.com/kubernetes-engine/docs/tutorials/hello-app