모음/[쿠버네티스 인 액션]

[쿠버네티스 인 액션] 4장. 레플리케이션과 그 밖의 컨트롤러 - 레플리카셋, 데몬셋

ttoance 2024. 9. 8. 06:56

4.3 레플리카셋

- 차세대 레플리케이션컨트롤러, 레플리케이션컨트롤러를 완전히 대체

- 레플리케이션 컨트롤러의 레이블 셀렉터는 특정 레이블이 있는 파드만을 매칭 시킬 수 있는 반면,

레플리카셋의 셀렉터는 특정 레이블이 없는 파드나 레이블의 값과 상관없이 특정 레이블의 키를 갖는 파드를 매칭시킬 수 있음. 

 

kubernetes-in-action/Chapter04/kubia-replicaset.yaml at master · luksa/kubernetes-in-action (github.com)

 

kubernetes-in-action/Chapter04/kubia-replicaset.yaml at master · luksa/kubernetes-in-action

Code from the Kubernetes in Action book. Contribute to luksa/kubernetes-in-action development by creating an account on GitHub.

github.com

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 를 활용해서 레플리카셋 정의 

 

 

kubernetes-in-action/Chapter04/kubia-replicaset-matchexpressions.yaml at master · luksa/kubernetes-in-action (github.com)

 

kubernetes-in-action/Chapter04/kubia-replicaset-matchexpressions.yaml at master · luksa/kubernetes-in-action

Code from the Kubernetes in Action book. Contribute to luksa/kubernetes-in-action development by creating an account on GitHub.

github.com

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, 로그 수집기, 리소스 모니터 

ssd 갖는 노드에서 실행돼야 하는 데몬이 있는 경우, ssd를 갖고 있다고 표시된 모든노드에서 이 데몬을 실행하는 데몬셋을 만듦

kubernetes-in-action/Chapter04/ssd-monitor-daemonset.yaml at master · luksa/kubernetes-in-action (github.com)

 

kubernetes-in-action/Chapter04/ssd-monitor-daemonset.yaml at master · luksa/kubernetes-in-action

Code from the Kubernetes in Action book. Contribute to luksa/kubernetes-in-action development by creating an account on GitHub.

github.com

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 으로 지정 

 

 

반응형