들어가며
CKA를 준비하며 Pod, ReplicaSet, Deployment, Services에 대한 개념을 정리해 보려고 한다.
개념을 간단하게 정리하는 목적이고, 딥한 내용들은 나중 포스트들에서 다룰 예정이다.
하나씩 보면 헷갈리고, 같이 봐야 조금 이해되는 것 같다.

nginx:1.14.2 이미지를 실행하는 컨테이너로 구성되는 파드
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
imgae: nginx:1.14.2
ports:
- containerPort: 80
다음과 같이 실행해도 된다.
kubectl run nginx --image=nginx1.14.2
Pod의 실행 갯수를 안정적으로 유지하는 역할을 한다.그림과 같이, label을 기준으로 Pod 수를 관리한다.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
replicas: 3 # 이 부분이 Pod의 수를 정한다.
selector: # 어떤 Pod를 관리할 것인지 지정
matchLabels:
tier: frontend
template: # 어떤 Pod를 만들 것인지
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
template를 통해 Pod를 만들고, selector로 라벨을 지정했으니
selector.matchLabels와 template.metadata.labels는 동일해야 한다.
그 외 명령어
kubectl get rs
kubectl replace -f replicaset-definition.yml # 수정된 yml파일 적용
kubectl scale --replicas=6 (type) (name) # scale 수정

deployment-definition.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
lables:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
NodePort, ClusterIP, LoadBalancer가 있으며 내용은 추후 정리하도록 하겠다.
