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 pvpří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í.

Další kroky