StatefulSet 만들기

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 pvkubectl delete pvc삭제합니다. 데이터 손실을 방지하기 위해 StatefulSet이 삭제될 때 영구 볼륨 및 영구 볼륨 클레임은 삭제되지 않습니다.

다음 단계