Junio ​​10, 2022

3 Plej bonaj Praktikoj, kiujn Vi Devas Koni Kiam Uzanta Kubernetes StatefulSet

Krei amasigitan medion de ajna speco implicas multan laboron por permesi konsekvencan deplojon kaj skalon. 

La bona novaĵo estas ke vi povas administri ujojn laŭskale uzante StatefulSets en Kubernetes. 

StatefulSets estas destinitaj por ruli ŝtatajn aplikojn en Kubernetes kun dediĉita, konstanta stokado.

En ĉi tiu gvidilo, ni kovros tri plej bonajn praktikojn por lerni de kiam uzado de Kubernetes StatefulSets.  

Sed unue ...

Kio estas Kubernetes StatefulSet?

Kubernetes StatefulSet estas la laborŝarĝa Aplikaĵo-Programinterfaco (API) objekto uzata por administri ŝtatajn aplikojn. 

Vi povas uzi StatefulSets por disfaldi kaj grimpi aron da Pods, kiu provizas garantiojn por la ordo kaj unikeco de la Pod.  

Simile al Deplojo, Kubernetes StatefulSet povas administri Pods surbaze de identa ujspecifo. 

Tamen, male al Deplojo, StatefulSet povas konservi gluiĝemajn identecojn por ĉiu Pod. Dum la podoj estas kreitaj el la sama specifo, ili ne estas interŝanĝeblaj, kio signifas, ke ĉiu Pod havas konstantan identigilon, kiun ĝi konservas dum ajna reprogramado. 

Se vi volas provizi persiston por laborŝarĝo uzante stokajn volumojn, utiligu StatefulSet kiel parto de la solvo. 

Dum individuaj Pods en StatefulSet povas esti inklinaj al eraroj, la konstanta Pod-identigilo povas faciligi kongrui la ekzistantajn volumojn al la novaj Pods kiuj anstataŭas tiujn, kiuj malsukcesis.  

Tipa uzkazo de StatefulSet estas kiam vi bezonas disfaldi primarajn aŭ malĉefajn servilojn, kiel datumbazon, kie vi devas scii la gastigan nomon de ĉiu servilo por komenci la areton. 

Alia ofta uzokazo de StatefulSet estas kiam vi grimpas supren kaj malsupren en specifa ordo, kiel kiam vi volas komenci kun la primara nodo sekvita de la sekundara nodo. 

Plej bone estas uzi StatefulSet kiam vi bezonas:

  • Stabilaj kaj apartaj retaj identecoj
  • Ordigita kaj unika deplojo kaj skalo
  • Konstanta kaj konstanta stokado tra la tuta programado kaj reprogramado de via aplikaĵo

Provita kaj provita konsiletoj kiam vi uzas StatefulSet

Malsupre estas kelkaj plej bonaj praktikoj por uzi Kubernetes StatefulSet.

1. Uzu la kubectl apliki komandon por krei StatefulSet-rimedon

La komando uzas manifestajn dosierojn por krei, ĝisdatigi kaj forigi rimedojn ene de viaj aretoj. Ĝi estas deklara metodo de objekta agordo, kiu konservas skribaĵojn, kiuj estis faritaj al vivaj objektoj sen kunfandi ŝanĝojn reen en la objektajn agordajn dosierojn. 

Memoru kreu StorageClass kiam vi uzas aretojn kun Windows Server-nodaj naĝejoj ekde la defaŭlta StorageClass utiligas ext4 kiel la dosiersistemo tipo (kiu funkcias nur por Linuksaj ujoj).

Ankaŭ uzu NTFS kiel la dosierstokado se vi uzas persistan diskon de Compute Engine. 

Kreu StatefulSet manifeston uzante la StorageClass, kiun vi difinis. 

Ekzemple, via manifesto povas krei kvar PersistentVolumeClaim kaj Persistenta Volumo paroj reprezentante kvar Computer Engine persistajn diskojn. Ĉiu Pod ene de la StatefulSet konsumas ununuran konstantan diskon. 

Aldone, inkluzivu nod-elektilon al via Pod-specifo por certigi, ke viaj Pods estas ĝuste planitaj sur Windows Server-nodoj. 

Fine, kreu StatefulSet-rimedon rulante ĉi tiun komandon: 

kubectl apliki -f STATEFULSET_FILE

Memoru anstataŭigi STATEFULSET_FILE kun la manifest-dosiernomo. 

2. Sciu la diversajn metodojn por ĝisdatigi StatefulSet

Vi povas ĝisdatigi StatefulSets diversmaniere, per la deklara metodo kubectl apliki esti la plej ordinara. 

Ekzemple, se vi uzas la Google Kubernetes Engine kaj volas ĝisdatigi la StatefulSet en via preferata redaktilo aŭ rekte de via ŝelo, uzu kubectl redakti. Vi ankaŭ povas elekti la redaktilon YAML en la menuo GKW Workloads ene de la Cloud-konzolo. 

Ankaŭ, vi povas lanĉi ĝisdatigojn al la Pods-specifo (por StatefulSet-rimedo), kiel ĝia agordo, bildo aŭ rimedo-petoj kaj uzado.  

Apliki ĝisdatigitan aŭ novan manifestdosieron kiam vi ĝisdatigas la StatefulSet uzante kubectl apliki. Ĝi estas helpema kiam vi faras diversajn ŝanĝojn al StatefulSet, kiel kiam vi skalas aŭ specifas novajn aplikaĵversiojn.  

Noto: Uzado kubectl apliki ĝisdatigi rimedon funkcias nur kiam la rimedo estis kreita uzante kubectl krei – -save-config or kubectl apliki.

Vi ankaŭ povas uzi StatefulSet ĝisdatigi Strategion kampo, kiu ebligas al vi agordi kaj malŝalti aŭtomatigitajn daŭrajn ĝisdatigojn por rimedpetoj, etikedoj, limoj, ujoj kaj komentarioj por la Pods en StatefulSet.  

Sciu la diversajn metodojn por ĝisdatigi vian StatefulSet kaj determini kiu funkcias plej bone por vi. 

3. Determini kiam uzi StatefulSets

Estas okazoj, kiam vi pli bone uzas Kubernetes StatefulSets ol Deplojojn.

Iuj el ĉi tiuj situacioj povas inkluzivi la jenajn.

  • Malgrandigante aŭ forigante StatefulSet. Viaj datumoj povas resti sekuraj dum malgrandiĝo aŭ forigo de StatefulSet ĉar fari tion ne forigos la volumojn asociitajn kun la Stateful-apo. 

Ĝi estas kutime pli valora ol aŭtomate purigi ĉiujn rilatajn rimedojn de StatefulSet. 

Ekzemple, se la MySQL Pod rekomencas aŭ estas forigita, vi povas aliri la datumojn en la sama volumeno. 

  • Disvolvado kaj skalado de MySQL-datumbazo. Ni diru, ke vi deplojis MySQL-datumbazon ene de la K8s-areto kaj skalis ĝin al tri kopioj. Interfabla aplikaĵo ankaŭ volas aliri vian deplojitan MySQL-grupon por legi kaj skribi datumojn.  

La legpeto estas plusendita al tri Pods, sed la skribpeto estas plusendita nur al la ĉefa aŭ unua Pod. Tiam, la datumoj estas sinkronigitaj kun la aliaj Pods. 

Ĉio ĉi eblas kiam vi uzas StatefulSets. 

Kubernetes StatefulSet-limigoj

Kvankam estas grave scii la plej bonajn praktikojn en uzado de Kubernetes StatefulSet, estas same grave kompreni ĝiajn limojn, kiuj inkluzivas la jenajn. 

  • La stokado de donita Pod devas esti antaŭprovizita de administranto aŭ provizita de PersistentVolume Provisioner (surbaze de la petita stokado klaso).  
  • StatefulSets ne ofertas garantiojn pri pod-fino kiam StatefulSets estas forigitaj. Por atingi gracie kaj ordigitan finaĵon de balgoj dum viŝado de StatefulSet, vi povas malpligrandigi la StatefulSet ĝis nulo antaŭ ol forigi. 
  • StatefulSets postulas Senkapan Servon respondecan pri la retidenteco de la Pods. Vi devos krei ĉi tiun servon. 
  • Vi povas eniri en rompitan staton, kiu bezonas manan intervenon por ripari kiam vi uzas Rolling Updates per la defaŭlta Pod-Administra Politiko (Ordonita Preta). 

Utiligu Kubernetes StatefulSet la ĝustan manieron

Administrado de distribuitaj sistemoj kaj ŝtataj aplikoj en Kubernetes povas esti ampleksa kaj kompleksa entrepreno, sed ĝi ne estas raketscienco. 

Komencu kun la bazaĵoj kaj sekvu plej bonajn praktikojn kiam vi uzas StatefulSets por fari la administradon kaj funkciadon de ŝtataj aplikaĵoj en Kubernetes pli efika kaj efika. 

Pri la aŭtoro 

Kyrie Mattos


{"email": "Retpoŝta adreso nevalida", "url": "Reteja adreso nevalida", "required": "Bezonata kampo mankas"}