본문 바로가기

컨테이너/Kubernetes

[k8s 강의] Pod와 Deployment의 기능

이번 포스팅은 스터디 구성원들의 쿠버네티스에 대한 이해를 위해 실습형 교육자료 입니다.

 

 

1. Pod란? 

 

Pod 는 Kubernetes에서 만들고 관리할 수 있는 가장 작은 배포 가능한 컴퓨팅 단위입니다.

Pod는  1개 이상의 docker image로 구성되어 있습니다.

 

1. 네임스페이스를 만듭니다.

$ kubectl create ns {{ bc , sy , sw , jc etc }}

 

2. nginx:1.14.2  이미지를 한번 배포해보겠습니다.

$ kubectl apply -f simple-pod.yaml

# github 소스 이동 https://github.com/themapisto/JenkinsPipeline/tree/master/kubernetes

3. pod 안에 들어가서 확인

$ kubectl exec -it nginx /bin/bash
$ cat /etc/nginx/nginx.conf


# nginx 파일 확인

 

 

2. Pod와 Deployment 관계

Delpoyment 는 pod / Replicaset을 만들어 주는 kubernetes 리소스입니다.

 

Replicaset

 

Replicaset은  지정된 수의 동일한 Pod의 가용성을 보장하는데 사용하는 kubernetes 리소스입니다.

실제 운영에서는 Deployment를 사용하는것을 권장합니다.

https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/

 

 

Deployment

 

Replicaset 이후에 개발된 k8s 리소스이다. 역시 지정된 수의 동일한 POD의 가용성을 보장하는데 사용된다.

 

1. rollout 기능 사용 

 

2. scale 기능 사용

$ kubectl scale deployment/nginx-deployment --replicas=10

3. patch 기능 사용 

$ kubectl patch deployment patch-demo --patch '{"spec": {"template": {"spec": {"containers": [{"name": "patch-demo-ctr-2","image": "redis"}]}}}}'