모음/[쿠버네티스 인 액션]
[쿠버네티스 인 액션] 4장. 레플리케이션과 그 밖의 컨트롤러 - 레플리카셋, 데몬셋
ttoance
2024. 9. 8. 06:56
4.3 레플리카셋
- 차세대 레플리케이션컨트롤러, 레플리케이션컨트롤러를 완전히 대체
- 레플리케이션 컨트롤러의 레이블 셀렉터는 특정 레이블이 있는 파드만을 매칭 시킬 수 있는 반면,
레플리카셋의 셀렉터는 특정 레이블이 없는 파드나 레이블의 값과 상관없이 특정 레이블의 키를 갖는 파드를 매칭시킬 수 있음.
apiVersion: apps/v1beta2
kind: ReplicaSet
metadata:
name: kubia
spec:
replicas: 3
selector:
matchLabels:
app: kubia
template:
metadata:
labels:
app: kubia
spec:
containers:
- name: kubia
image: luksa/kubia
- 레플리카셋이 v1 API 가 아니기 때문에 apiVersion 지정 필요
- matchLabels 를 활용해서 레플리카셋 정의
apiVersion: apps/v1beta2
kind: ReplicaSet
metadata:
name: kubia
spec:
replicas: 3
selector:
matchExpressions:
- key: app
operator: In
values:
- kubia
template:
metadata:
labels:
app: kubia
spec:
containers:
- name: kubia
image: luksa/kubia
in : 레이블의 값이 지정된 값 중 하나와 일치
notin : 레이블의 값이 지정된 값과 일치하지 않아야 함
exists : 지정된 키를 가진 레이블이 포함돼야함
doesnotexiss : 지정된 키를 가진 레이블이 포함돼있지 않아야함
4.4 데몬셋
- 클러스터의 모든 노드에 , 노드당 하나의 파드만 실행되길 원하는 경우
ex, 로그 수집기, 리소스 모니터
apiVersion: apps/v1beta2
kind: DaemonSet
metadata:
name: ssd-monitor
spec:
selector:
matchLabels:
app: ssd-monitor
template:
metadata:
labels:
app: ssd-monitor
spec:
nodeSelector:
disk: ssd
containers:
- name: main
image: luksa/ssd-monitor
kind: DaemonSet 으로 지정
반응형