StatefulSet 만들기

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

이 문서에서는 Azure Arc에서 사용하도록 설정된 AKS의 AKS 배포에서 Pod 수명 주기를 넘어 애플리케이션의 상태를 유지하는 데 사용되는 StatefulSets를 만들고, 업데이트하고, 삭제하는 방법을 설명합니다.

StatefulSets 개요

StatefulSets는 개별 Pod 수명 주기를 넘어 애플리케이션의 상태를 유지 관리합니다. 배포와 마찬가지로 StatefulSet은 고유한 영구 ID 및 안정적인 호스트 이름을 사용하여 하나 이상의 동일한 Pod를 만들고 관리합니다. StatefulSet의 복제본은 배포, 크기 조정 및 업그레이드에 대한 순차적 접근 방식을 따릅니다.

StatefulSet은 안정적이고 고유한 식별자, 영구 스토리지, 정렬된 배포 및 크기 조정이 필요한 애플리케이션에 유용합니다. 이러한 앱의 예로는 MySQL, MongoDB, Kafka 및 Cassandra가 있습니다. Apache 및 Tomcat과 같은 상태 비저장 애플리케이션은 사용 중인 네트워크에는 관심이 없으며 영구 스토리지가 필요하지 않습니다.

StatefulSets의 기본 구성 요소는 영구 볼륨 프로비저닝자 및 헤드리스 서비스입니다. 자세한 내용은 StatefulSets를 참조하세요.

StatefulSet을 만드는 방법

또는 명령을 사용하여 StatefulSet을 kubectl create 만듭니다 kubectl apply . 예를 들면 다음과 같습니다.

kubectl create –f statefulset.yaml

동일한 매니페스트 YAML 파일에서 StatefulSet에서 사용하는 헤드리스 서비스를 만들 수도 있습니다.

StatefulSet에 대해 만든 구성 요소를 보려면 다음 명령을 실행합니다.

kubectl get statefulset

영구 볼륨을 보려면 를 실행 kubectl get pv합니다. 영구 볼륨 클레임을 보려면 를 실행 kubectl get pvc합니다.

StatefulSets 업데이트

StatefulSet을 업데이트하려면 매니페스트 파일을 편집하고 StatefulSet을 만들 때 사용되는 것과 동일한 명령을 실행합니다 kubectl apply –f statefulset.yaml.

업데이트 전략으로 OnDelete 업데이트 또는 롤링 업데이트를 사용할 수 있습니다.

  • OnDelete 업데이트를 사용하면 매니페스트를 적용할 때 Pod가 대체되지 않지만 새 버전을 만들기 전에 기존 StatefulSet Pod를 수동으로 삭제해야 합니다.
  • 롤링 업데이트에서는 매니페스트를 적용할 때 StatefulSet Pod가 제거된 다음 역 서수 순서로 바뀝니다.

StatefulSet 삭제

kubectl delete 명령을 사용하여 StatefulSet을 삭제하고 헤드리스 서비스를 별도로 삭제합니다. StatefulSet을 삭제하려면 다음 명령을 실행합니다.

kubectl delete statefulset <statefulset_NAME>

그런 다음 헤드리스 서비스를 삭제하려면 다음 명령을 실행합니다.

kubectl delete service <svc_NAME>

영구 볼륨 및 영구 볼륨 클레임을 삭제하려면 각각 및 kubectl delete pvc 명령을 사용합니다kubectl delete pv. 데이터 손실을 방지하기 위해 StatefulSet이 삭제되면 영구 볼륨 및 영구 볼륨 클레임이 삭제되지 않습니다.

다음 단계