Server Programming/DevOps

Kubernetes 대화형 튜토리얼

Dev.BeryL 2022. 2. 4. 10:29
728x90
  • 컨테이너화된 애플리케이션을 클러스터에 배포하기.
  • 디플로이먼트를 스케일링하기.
  • 컨테이너화된 애플리케이션을 새로운 소프트웨어 버전으로 업데이트하기.
  • 컨테이너화된 애플리케이션을 디버그하기.

→ 쿠버네티스는 컴퓨터들을 연결하여 단일 형상으로 동작하도록 컴퓨팅 클러스터를 구성하고 높은 가용성을 제공하도록 조율한다.

→ 쿠버네티스는 컴퓨터 클러스터에 애플리케이션 컨테이너의 배치(스케줄링) 및 실행을 오케스트레이션하는 운영 수준의 오픈소스 플랫폼이다.

→ 쿠버네티스는 이러한 애플리케이션 컨테이너를 클러스터에 분산시키고 스케줄링하는 일을 더욱 효율적으로 자동화한다.

  • 마스터는 클러스터를 조율한다.
    • 마스터는 실행 중인 애플리케이션을 호스팅하기 위해 사용되는 노드와 클러스터를 관리한다.
  • 노드는 애플리케이션을 구동하는 작업자(worker)이다.
    • 노드는 마스터가 제공하는 쿠버네티스 API를 통해서 마스터와 통신한다.
    • 노드는 쿠버네티스 클러스터 내 워커 머신으로 동작하는 VM 또는 물리적인 컴퓨터다.
$minikube version

$minikube start

$kubectl version

$kubectl cluster-info

$kubectl get nodes

쿠버네티스 디플로이먼트

  • 디플로이먼트는 애플리케이션 인스턴스를 생성하고 업데이트하는 역할을 담당한다.
  • 디플로이먼트가 만들어지면, 쿠버네티스 마스터가 해당 디플로이먼트에 포함된 애플리케이션 인스턴스가 클러스터의 개별 노드에서 실행되도록 스케줄한다.
  • 머신의 장애나 정비에 대응할 수 있는 자동 복구(self-healing) 메커니즘을 제공한다.

애플리케이션이 쿠버네티스 상에 배포되려면 지원되는 컨테이너 형식 중 하나로 패키지 되어야한다.

 

$kubectl create deployment kubernetes-bootcamp
 --image=gcr.io/google-samples/kubernetes-bootcamp:v1

$kubectl get deployments

$echo -e "\n\n\n\e[92mStarting Proxy. After starting it will not output a response. Please click the first Terminal Tab\n";

$curl http://localhost:8001/version

$export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
echo Name of the Pod: $POD_NAME
반응형

'Server Programming > DevOps' 카테고리의 다른 글

AWS - RDS  (0) 2022.02.04
Minikube CLI  (0) 2022.02.04
Docker, Kube 등 명령어 조금..  (0) 2022.02.04
AWS - EC2 instance 생성  (0) 2022.02.03
AWS - Route53  (0) 2022.02.03