Vytvoření statefulSet v hybridním prostředí AKS
Tento článek popisuje, jak vytvořit, aktualizovat a odstranit statefulSets, které se používají k udržování stavu aplikace nad rámec životního cyklu podů v nasazení Azure Kubernetes Serice v hybridním prostředí AKS.
Přehled statefulSets
StatefulSets udržují stav aplikací nad rámec životního cyklu jednotlivých podů. Stejně jako nasazení i StatefulSet vytváří a spravuje alespoň jeden identický pod s jedinečnými trvalými identitami a stabilními názvy hostitelů. Repliky v sadě StatefulSet se řídí sekvenčním přístupem k nasazení, škálování a upgradu.
StatefulSet je užitečná pro aplikace, které vyžadují stabilní a jedinečné identifikátory, trvalé úložiště, seřazené nasazení a škálování. Mezi příklady těchto aplikací patří MySQL, MongoDB, Kafka a Cassandra. Bezstavové aplikace, jako jsou Apache a Tomcat, se nezajímají o to, jakou síť používají, a nevyžadují trvalé úložiště.
Hlavními komponentami StatefulSets jsou trvalý zřizování svazků a bezobslužná služba. Další informace najdete v tématu StatefulSets.
Vytvoření statefulSet
StatefulSet vytvoříte pomocí kubectl create
příkazu nebo kubectl apply
, například:
kubectl create –f statefulset.yaml
Ve stejném souboru YAML manifestu můžete také vytvořit bezobslužnou službu, kterou StatefulSet používá.
Pokud chcete zobrazit komponenty, které jste vytvořili pro StatefulSet, spusťte následující příkaz:
kubectl get statefulset
Pokud chcete zobrazit trvalé svazky, spusťte kubectl get pv
příkaz . Pokud chcete zobrazit trvalou deklaraci identity svazku, spusťte příkaz kubectl get pvc
.
Aktualizace stavových sad
Pokud chcete aktualizovat StatefulSet, upravte soubor manifestu a spusťte stejný příkaz jako při vytváření StatefulSet: kubectl apply –f statefulset.yaml
.
Jako strategii aktualizace můžete použít buď aktualizaci OnDelete , nebo aktualizaci se zajištěním provozu:
- Při aktualizaci OnDelete se pody při použití manifestu nenahradí, ale před vytvořením nové verze budete muset ručně odstranit existující pody StatefulSet.
- V kumulativní aktualizaci se pody StatefulSet odeberou a při použití manifestu se nahradí v pořadí v obráceném pořadí.
Odstranění statefulSet
kubectl delete
Pomocí příkazu odstraňte StatefulSet a samostatně odstraňte bezobslužnou službu. Pokud chcete odstranit StatefulSet, spusťte následující příkaz:
kubectl delete statefulset <statefulset_NAME>
Pokud pak chcete bezobslužnou službu odstranit, spusťte následující příkaz:
kubectl delete service <svc_NAME>
Pokud chcete odstranit trvalý svazek a deklaraci identity trvalého svazku, použijte kubectl delete pv
a kubectl delete pvc
. Aby se zabránilo ztrátě dat, trvalý svazek a deklarace identity trvalého svazku se při odstranění StatefulSet neodstraní.