쿠버네티스의 기본 단위 pod들의 집합이다. pod안에는 독립성을 보장하기 위해 하나의 컨테이너만 올리는 것이 가장 이상적이다. 하지만 보통의 애플리케이셔을 가동시키기 위해서는 DB, backend 등 여러 컨테이너를 필요로한다. 한개 이상의 컨테이너가 필요한 경우 레플리케이션이라는 쿠버네티스 Object를 활용하는 것이 여러 컨테이너를 관리하는데 유리하게 작용한다.
레플리케이션이 가진 장점은 명확하다.
'실행중 포드가 중지되거나 삭제되어도 정해진 포드의 수를 유지한다.'
즉 장애가 생기더라도 즉각적으로 다른 노드에서 포드를 재 생성한다는 것을 의미한다.
yaml 생성
#example-replica.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: example-nginx
spec:
replicas: 3 # ┐
selector: # │
matchLabels: # │ replicaset 정보
app: nginx-pods-label # │
# ┘
template: # ┐
metadata: # │
name: nginx-pod # │ pod 정보
labels: # │
app: nginx-pods-label # ┘
spec: # ┐
containers: # │
- name: nginx-container # │ container 정보
image: nginx:latest # │
ports: # │
- containerPort: 80 # ┘
selector
'replicaset' 오브젝트에 대한 정보
- marchLables.app: 포드를 관리하기 위한 lable 이름
template
replicaset에서 관리할 'pod'의 정보
- metadata.name: pod들의 이름
- metadata.labels.app: replcaset에서 관리되기 위한 라벨
kubenates 실행
kubectl apply -f example-replica.yaml
'Kubernetes' 카테고리의 다른 글
6. Kubernetes Secret (0) | 2024.08.13 |
---|---|
5. Kubernetes Configmap (0) | 2024.08.13 |
4. Kubernetes Service (0) | 2024.08.07 |
3. Kubernetes Deployment (0) | 2024.08.07 |
1. Kubernetes Pod (0) | 2024.08.01 |