목표

  • 애플리케이션 디플로이먼트에 대해 학습 한다.

  • kubectl로 첫 애플리케이션을 쿠버네티스에 배포한다.

쿠퍼네티스 디플로이먼트

Kubernetes Deployment란?

 구동중인 k8s 클러스터위에 컨테이너화된 애플리케이션을 배포하기 위해 애플리케이션의 인스턴스를 어떻게 생성하고 업데이트해야 하는지 지시를 하는 설정이다.

  애플리케이션 인스턴스가 생성되면, k8s depoloyment controller는 지속적으로 인스턴스를 모니터링 하면서, 인스턴스가 다운되거나 삭제되면, 인스턴스를 클러스트 내부의 다른 노드의 인스턴스로 교체시켜준다.

쿠버네티스 앱 배포

kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

kubectl run 명령어는 deployment를 생성한다. deployment 이름과, app 이미지 위치, port번호를 함께 입력한다.

kubectl get deployments

kubectl get deployments 명령어로 , 실행중인 deployment를 확인할 수 있다.

 Pods는 Kubecnetes 내부에서 독립적인 네트워크에서 실행중인 상태이다. default값으로 pods는 같은 클러스터의 노드에서만 접근이 가능하다. API endpoint 설정을 통해서 외부로 노출시켜야 한다.

kubectl proxy

  실제 쿠버네티스에 pods를 올릴때는, 쿠버네티스 Service를 통해서 외부에서 pods에 접근이 가능하도로 해야 한다. 이번글은 쿠버네티스 앱 배포에 초점을 맞췄기 때문에 kubectl proxy 를 톻해서 외부에서 접근이 가능하도록 하였다.

 명령어를 입력하면 Kubernetes cluster의 endpoint가 설정되면서, 실행중인 pods에 접근이 가능하다.