컨테이너/Kubernetes
[k8s 강의] Pod와 Deployment의 기능
국두리
2022. 8. 8. 17:39
이번 포스팅은 스터디 구성원들의 쿠버네티스에 대한 이해를 위해 실습형 교육자료 입니다.
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"}]}}}}'