AKS 하이브리드에서 StatefulSet 만들기
이 문서에서는 AKS 하이브리드의 Azure Kubernetes Serice 배포에서 Pod 수명 주기를 넘어 애플리케이션의 상태를 유지하는 데 사용되는 StatefulSets를 만들고, 업데이트하고, 삭제하는 방법을 설명합니다.
StatefulSets 개요
StatefulSets 는 개별 Pod 수명 주기를 넘어 애플리케이션의 상태를 유지 관리합니다. 배포와 마찬가지로 StatefulSet은 고유한 영구 ID 및 안정적인 호스트 이름을 사용하여 하나 이상의 동일한 Pod를 만들고 관리합니다. StatefulSet의 복제본은 배포, 크기 조정 및 업그레이드에 대한 순차적 접근 방식을 따릅니다.
StatefulSet은 안정적이고 고유한 식별자, 영구 스토리지, 정렬된 배포 및 크기 조정이 필요한 애플리케이션에 유용합니다. 이러한 앱의 예로는 MySQL, MongoDB, Kafka 및 Cassandra가 있습니다. Apache 및 Tomcat과 같은 상태 비저장 애플리케이션은 사용 중인 네트워크에 신경 쓰지 않으며 영구 스토리지가 필요하지 않습니다.
StatefulSets의 주요 구성 요소는 영구 볼륨 프로비저닝기와 헤드리스 서비스입니다. 자세한 내용은 StatefulSets를 참조하세요.
StatefulSet 만들기
또는 명령을 사용하여 kubectl create
StatefulSet을 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이 삭제되면 영구 볼륨 및 영구 볼륨 클레임이 삭제되지 않습니다.