ReplicaSets 만들기

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

이 문서에서는 Azure Arc에서 사용하도록 설정된 AKS에서 ReplicaSets를 만들고, 크기를 조정하고, 삭제하는 방법을 설명합니다. ReplicaSets는 지정된 시간에 안정적인 복제본(replica) Pod 집합이 실행되도록 하는 데 사용됩니다.

ReplicaSets 개요

ReplicaSet은 Pod의 여러 인스턴스를 실행하고 지정된 수의 Pod를 상수로 유지하는 프로세스입니다. 지정된 시간에 안정적인 복제본(replica) Pod 집합이 실행되고 있으므로 지정된 수의 동일한 Pod를 사용할 수 있습니다.

Pod가 실패하면 ReplicaSet은 Pod의 새 instance 가져오고 실행 중인 인스턴스가 지정된 수에 도달하면 확장됩니다. 반대로 레이블이 같은 instance 만들어지면 Pod를 축소하거나 삭제합니다.

ReplicaSet 만들기

kubectl createkubectl apply 명령을 사용하여 ReplicaSets를 만듭니다. 다음 예제에서는 YAML 파일을 사용하여 ReplicaSet을 만듭니다.

kubectl apply –f nginx_replicaset.yaml

ReplicaSet 구성 파일의 기능은 YAML 형식으로 표시됩니다.

apiVersion: apps/v1  
kind: ReplicaSet  
metadata: 
      name: web
      labels: 
         env: dev
         role: web
spec:  
   replicas: 4
   selector: 
       matchlabels: 
       role: web
        template:
           metadata:
       labels:
           role: web
spec:  
      containers:  
           -name: nginx  
           image: nginx

ReplicaSet을 만든 후 다음 명령을 실행하여 상태 볼 수 있습니다.

kubectl get rs

명령을 사용하여 레이블을 변경하여 ReplicaSet에서 관리하는 Pod를 제거할 수 있지만 삭제할 수는 kubectl edit 없습니다. 예를 들어 를 실행하는 kubectl edit pods 7677-69h5b경우 구성 파일이 열리면 Pod 레이블을 변경할 수 있습니다.

ReplicaSet 크기 조정

ReplicaSet에서 관리하는 Pod 수를 변경하는 방법에는 두 가지가 있습니다.

  • 다음 명령을 사용하여 컨트롤러의 구성을 편집합니다.

    kubectl edit rs <ReplicaSet_NAME>
    
  • 다음 명령을 사용하여 숫자를 직접 늘리거나 줄입니다.

kubectl scale –replicas=2 rs <ReplicaSet_NAME>

매니페스트 파일을 편집할 때 기존 구성을 업데이트된 구성으로 바꿀 수 있습니다.

kubectl replace –f nginx_replicaset.yaml

그런 다음 ReplicaSet의 상태 보려면 를 실행kubectl get rs <ReplicaSet_NAME>합니다.

자동 크기 조정은 를 사용하는 ReplicaSets의 옵션이기도 합니다 kubectl autoscale rs web –max=5. 자동 크기 조정을 사용하여 노드의 CPU 부하에 따라 Pod 수를 조정할 수 있습니다.

ReplicaSet 삭제

DaemonSets와 같은 다른 Kubernetes 개체와 마찬가지로 명령을 사용하여 ReplicaSets를 삭제할 kubectl delete 수 있습니다. 예를 들어 다음 명령을 사용할 수 있습니다.

  • ReplicaSet 이름을 사용하여 ReplicaSet을 삭제하려면 다음 명령을 실행합니다.

    kubectl delete rs <ReplicaSet_NAME>
    
  • 해당 파일 이름을 사용하여 ReplicaSet을 삭제하려면 다음 명령을 실행합니다.

    kubectl delete –f nginx_replicaset.yaml
    
  • 위의 명령은 ReplicaSet 및 관리하는 모든 Pod를 삭제합니다. ReplicaSet 리소스만 삭제하고 소유자 없이 Pod를 유지하려면 수동으로 삭제해야 합니다. ReplicaSet을 수동으로 삭제하려면 다음 명령을 실행합니다.

    kubectl delete rs <ReplicaSet_NAME> --cascade=false
    

다음 단계