컨트롤러의 한 종류
역할
지정된 수의 파드가 항상 실행되도록 보장하는 역할(고가용성)
로드밸런싱
생성
예시)
apiVersion: v1
kind: ReplicationContoller
metadata:
name: myapp-rc
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
replicas: 3
kubectl create -f rc-definition.yml
kubectl get replicationcontroller
kubectl get pods
replica controller와 동일한 목적 but 서로 다름
생성
예시)
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
replicas: 3
selector:
matchLabels:
type: front-end
kubectl create -f replicaset-definition.yml
kubectl get replicaset
kubectl get pods
라벨과 selector개념은 k8s의 다른 많은 곳에서도 사용됨
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx
replicas: 6
selector:
matchLabels:
type: front-end
kubectl replace -f replicaset-definition.yml
kubectl scale --replicas=6 -f replicaset-definition.yml
이렇게 파일명으로 명령어 사용해도, 파일의 내용이 변경되지는 않음 kubectl scale --replicas=6 {type} {name}
kubectl scale --replicas=6 replicaset myapp-replicaset
자동 확장 옵션도 추후 배울 것임생성
kubectl create -f rs-definition.yml
목록 확인
kubectl get replicaset
삭제
kubectl delete replicaset myapp-replicaset
업데이트
kubectl replace -f rs-definition.yml
kubectl scale --replicas=6 -f rs-definition.yml