이세개발
article thumbnail

쿠버네티스에서 ReplicaSet은 지정된 수의 Pod 복제본이 항상 실행되도록 보장하는 역할을 합니다. 이는 ReplicationController와 비슷하지만, 더욱 유연한 Pod 선택 기능을 제공합니다.

다음은 myapp-rs-exp라는 이름의 ReplicaSet를 생성하는 myapp-rs-exp.yaml 파일입니다. 이 ReplicaSet는 app 레이블의 값이 myapp-rs-exp이며, env 레이블이 존재하는 Pod를 3개 유지하도록 설정되어 있습니다.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: myapp-rs-exp
spec:
  replicas: 3
  selector:
    matchExpressions:
      - key: app
        operator: In
        values:
          - myapp-rs-exp
      - key: env
        operator: Exists
  template:
    metadata:
      labels:
        app: myapp-rs-exp
        env: dev
    spec:
      containers:
      - name: myapp
        image: ghcr.io/c1t1d0s7/go-myweb:alpine
        ports:
        - containerPort: 8080

다음은 myapp-rs라는 이름의 ReplicaSet를 생성하는 myapp-rs.yaml 파일입니다. 이 ReplicaSet는 app 레이블의 값이 myapp-rs인 Pod를 3개 유지하도록 설정되어 있습니다.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: myapp-rs
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp-rs
  template:
    metadata:
      labels:
        app: myapp-rs
    spec:
      containers:
      - name: myapp
        image: ghcr.io/c1t1d0s7/go-myweb:alpine
        ports:
        - containerPort: 8080

ReplicaSet를 사용하면 애플리케이션의 가용성을 높이고, Pod의 수를 쉽게 조절할 수 있습니다. 또한, 레이블 선택자를 사용하여 관리할 Pod를 더욱 유연하게 선택할 수 있습니다.

ReplicaSet를 생성하려면 다음 명령어를 사용합니다:

kubectl create -f myapp-rs.yaml

ReplicaSet의 상태를 확인하려면 다음 명령어를 사용합니다:

kubectl get rs

ReplicaSet에 의해 관리되는 Pod의 상태를 확인하려면 다음 명령어를 사용합니다:

kubectl get pods -l app=myapp-rs

ReplicaSet의 로그를 확인하려면 다음 명령어를 사용합니다:

kubectl logs rs/myapp-rs

마지막으로, ReplicaSet를 삭제하려면 다음 명령어를 사용합니다:

kubectl delete rs myapp-rs

이렇게 ReplicaSet를 사용하면 애플리케이션의 가용성을 높이고, Pod의 수를 쉽게 조절할 수 있습니다. 또한, 레이블 선택자를 사용하여 관리할 Pod를 더욱 유연하게 선택할 수 있습니다.

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!