7 labing maayo nga mga gawi sa paggamit sa mga sudlanan sumala sa Google

Nota. transl.: Ang tagsulat sa orihinal nga artikulo mao si ThΓ©o Chamley, Arkitekto sa Google Cloud Solutions. Sa kini nga post para sa Google Cloud blog, naghatag siya usa ka summary sa mas detalyado nga giya sa iyang kompanya, nga gitawag nga "Labing Maayo nga Mga Praktis alang sa Naglihok nga mga Container" Niini, ang mga eksperto sa Google nagkolekta sa labing maayo nga mga gawi alang sa pag-operate sa mga sudlanan sa konteksto sa paggamit sa Google Kubernetes Engine ug uban pa, nga nagpunting sa usa ka halapad nga mga hilisgutan: gikan sa seguridad hangtod sa pag-monitor ug pag-log. Mao nga unsa ang labing hinungdanon nga mga gawi sa sulud sumala sa Google?

7 labing maayo nga mga gawi sa paggamit sa mga sudlanan sumala sa Google

Kubernetes Engine (Serbisyo nga nakabase sa Kubernetes alang sa pagpadagan sa mga containerized nga aplikasyon sa Google Cloud - gibanabana. transl.) mao ang usa sa pinakamaayong paagi sa pagpadagan sa mga workloads nga kinahanglang sukdon. Kubernetes masiguro ang hapsay nga paglihok sa kadaghanan nga mga aplikasyon kung kini gisudlan. Apan kung gusto nimo nga dali madumala ang imong aplikasyon ug gusto nimong pahimuslan ang Kubernetes, kinahanglan nimo nga sundon ang labing kaayo nga mga gawi. Pasimplehon nila ang operasyon sa aplikasyon, pag-monitor ug pag-debug niini, ug dugangan usab ang seguridad.

Niini nga artikulo, atong susihon ang usa ka lista sa mga butang nga angay nimong masayran ug buhaton aron epektibong makadagan ang mga sudlanan sa Kubernetes. Kadtong gusto nga moadto sa mas lawom nga mga detalye kinahanglan nga magbasa sa materyal Labing Maayo nga Mga Praktis alang sa Naglihok nga mga Container, ug pagtagad usab sa atong naunang post mahitungod sa pag-assemble sa mga sudlanan.

1. Paggamit ug lumad nga container logging nga mga mekanismo

Kung ang aplikasyon nagdagan sa usa ka Kubernetes cluster, dili kaayo kinahanglan alang sa mga troso. Ang usa ka sentralisadong sistema sa logging lagmit natukod na sa cluster nga imong gigamit. Sa kaso sa paggamit sa Kubernetes Engine, kini ang responsable Pag-log sa Stackdriver. (Nota. transl.: Ug kung mogamit ka sa imong kaugalingon nga pag-install sa Kubernetes, among girekomenda nga susihon pag-ayo ang among solusyon sa Open Source - balay nga troso.) Himoa nga simple ang imong kinabuhi ug gamita ang lumad nga mga mekanismo sa pag-log sa sudlanan. Isulat ang mga troso sa stdout ug stderr - kini awtomatiko nga madawat, ma-save ug ma-indeks.

Kung gusto, mahimo usab nimo isulat ang mga troso JSON nga format. Kini nga pamaagi makapasayon ​​sa pagdugang sa metadata ngadto kanila. Ug uban kanila, ang Stackdriver Logging adunay katakus sa pagpangita pinaagi sa mga troso gamit kini nga metadata.

2. Siguroha nga ang mga sudlanan walay estado ug dili mausab

Aron ang mga sudlanan moandar sa husto sa usa ka Kubernetes cluster, sila kinahanglan nga walay estado ug dili mausab. Kung matuman na kini nga mga kondisyon, mahimo na sa Kubernetes ang trabaho niini, paghimo ug pagguba sa mga entidad sa aplikasyon kung kanus-a ug kung kinahanglan.

Dili katuohan nagpasabot nga ang bisan unsang estado (nagpadayon nga datos sa bisan unsang matang) gitipigan sa gawas sa sudlanan. Alang niini, depende sa mga panginahanglanon, ang lainlaing mga lahi sa gawas nga pagtipig mahimong magamit: Pagbalaan sa Ulan, Nagpadayon nga mga Disk, Redis, Cloud SQL o uban pang gidumala nga mga database. (Nota. transl.: Basaha ang dugang bahin niini sa among artikulo β€œMga operator para sa Kubernetes: unsaon pagpadagan ang stateful applications".)

Dili mabalhin nagpasabot nga ang sudlanan dili mausab sa panahon sa iyang kinabuhi: walay updates, patch, configuration kausaban. Kung kinahanglan nimo nga i-update ang imong code sa aplikasyon o i-apply ang usa ka patch, paghimo usa ka bag-ong imahe ug i-deploy kini. Kini girekomendar sa pagbalhin sa container configuration (pagpaminaw port, runtime nga mga kapilian sa palibot, ug uban pa) sa gawas - sa Sekreto ΠΈ ConfigMaps. Mahimo silang ma-update nga dili kinahanglan nga maghimo usa ka bag-ong imahe sa sulud. Aron dali nga makahimo og mga pipeline nga adunay asembliya sa imahe, mahimo nimong gamiton Cloud Build. (Nota. transl.: Gigamit namo ang usa ka himan nga Open Source alang niini nga mga katuyoan dapp.)

7 labing maayo nga mga gawi sa paggamit sa mga sudlanan sumala sa Google
Usa ka pananglitan sa pag-update sa configuration sa Deployment sa Kubernetes gamit ang ConfigMap nga gi-mount sa mga pod isip config

3. Likayi ang pribilihiyo nga mga sudlanan

Dili ka magpadagan sa mga aplikasyon ingon gamut sa imong mga server, di ba? Kung ang usa ka tig-atake mosulod sa aplikasyon, makakuha siya og root access. Ang sama nga mga konsiderasyon magamit sa dili pagpadagan sa mga pribilihiyo nga mga sudlanan. Kung kinahanglan nimo nga usbon ang mga setting sa host, mahimo nimong hatagan ang sulud nga piho Kapabilidad gamit ang opsyon securityContext sa Kubernetes. Kung kinahanglan ka magbag-o sysctls, ang Kubernetes adunay bulag nga abstract alang niini. Sa kinatibuk-an, sulayi ang paghimo sa labing kaayo init- ug mga sudlanan sa sidecar aron mahimo ang parehas nga pribilihiyo nga mga operasyon. Dili kinahanglan nga ma-access sila sa internal o eksternal nga trapiko.

Kung nagdumala ka usa ka cluster, mahimo nimong gamiton Patakaran sa Seguridad sa Pod alang sa mga pagdili sa paggamit sa mga pribilihiyo nga mga sudlanan.

4. Likayi ang pagdagan isip gamut

Ang mga pribilihiyo nga mga sudlanan nahisgutan na, apan kini mas maayo kung, dugang pa niini, dili ka magpadagan sa mga aplikasyon sa sulod sa sudlanan isip gamut. Kung makit-an sa usa ka tig-atake ang usa ka hilit nga kahuyang sa usa ka aplikasyon nga adunay mga katungod sa gamut nga nagtugot sa pagpatuman sa code, pagkahuman mahimo niya nga biyaan ang sulud pinaagi sa usa ka wala pa nahibal-an nga kahuyangan, makagamot siya sa host.

Ang labing kaayo nga paagi aron malikayan kini mao ang dili pagpadagan sa bisan unsang butang ingon gamut sa una nga lugar. Aron mahimo kini, mahimo nimong gamiton ang direktiba USER Π² Dockerfile o runAsUser sa Kubernetes. Mahimo usab nga i-configure sa tagdumala sa cluster ang pamatasan sa pagpatuman gamit Patakaran sa Seguridad sa Pod.

5. Himoa nga sayon ​​​​ang pagmonitor sa aplikasyon

Sama sa pag-log, ang pagmonitor usa ka hinungdanon nga bahin sa pagdumala sa aplikasyon. Usa ka sikat nga solusyon sa pagmonitor sa komunidad sa Kubernetes mao ang Prometheus - usa ka sistema nga awtomatikong nakamatikod sa mga pod ug mga serbisyo nga nanginahanglan pag-monitor. (Nota. transl.: Tan-awa usab ang among detalyado nga report sa hilisgutan sa pagmonitor gamit ang Prometheus ug Kubernetes.) Stackdriver makahimo sa pagmonitor sa mga cluster sa Kubernetes ug naglakip sa kaugalingon nga bersyon sa Prometheus alang sa pagmonitor sa aplikasyon.

7 labing maayo nga mga gawi sa paggamit sa mga sudlanan sumala sa Google
Kubernetes Dashboard sa Stackdriver

Gilauman ni Prometheus nga ang aplikasyon ipasa ang mga sukatan sa katapusan nga punto sa HTTP. Anaa alang niini Mga librarya sa kliyente sa Prometheus. Ang parehas nga format gigamit sa ubang mga himan sama sa OpenCensus ΠΈ Istio.

6. Himua nga magamit ang kahimtang sa kahimsog sa app

Ang pagdumala sa aplikasyon sa produksiyon gitabangan sa abilidad niini nga ipahibalo ang kahimtang niini sa tibuuk nga sistema. Nagdagan ba ang aplikasyon? Okay ra ba? Andam ka ba sa pagdawat sa trapiko? Giunsa niya paggawi? Ang labing komon nga paagi sa pagsulbad niini nga problema mao ang pagpatuman sa mga pagsusi sa panglawas (mga pagsusi sa panglawas). Ang Kubernetes adunay duha ka klase: liveness ug kaandam probes.

Para sa liveness probe (mga pagsusi sa kalagsik) ang aplikasyon kinahanglan adunay usa ka HTTP endpoint nga nagbalik sa usa ka "200 OK" nga tubag kung kini magamit ug ang mga sukaranan nga dependency natagbaw. Para sa pagkaandam probe (mga pagsusi sa kaandam sa serbisyo) ang aplikasyon kinahanglan nga adunay lain nga HTTP endpoint nga nagbalik sa usa ka "200 OK" nga tubag kung ang aplikasyon naa sa usa ka himsog nga kahimtang, ang mga lakang sa pagsugod nahuman ug ang bisan unsang balido nga hangyo dili moresulta sa usa ka sayup. Ang mga Kubernetes moruta lamang sa trapiko ngadto sa sudlanan kung ang aplikasyon andam na sumala niini nga mga pagsusi. Duha ka mga endpoint mahimong i-merge kung walay kalainan tali sa liveness ug readyness states.

Mahimo nimong mabasa ang dugang bahin niini sa may kalabutan nga artikulo gikan sa Sandeep Dinesh, Developer Advocate gikan sa Google: "Labing maayo nga mga gawi sa Kubernetes: Pag-set up sa mga pagsusi sa kahimsog nga adunay kaandam ug buhi nga pagsusi".

7. Pilia pag-ayo ang imong bersyon sa hulagway

Kadaghanan sa publiko ug pribado nga mga imahe naggamit og sistema sa pag-tag nga susama sa gihulagway sa Labing maayo nga mga Praktis alang sa Pagtukod og mga Container. Kung ang imahe naggamit sa usa ka sistema nga duol sa semantiko nga bersyon, kinahanglan nga tagdon ang mga detalye sa pag-tag. Pananglitan, tag latest mahimong magbalhinbalhin kanunay gikan sa usa ka imahe ngadto sa usa ka imahe - dili masaligan kung kinahanglan nimo ang matag-an ug masubli nga mga pagtukod ug pag-install.

Mahimo nimong gamiton ang tag X.Y.Z (halos sila kanunay nga wala mausab), apan sa kini nga kaso, pagsubay sa tanan nga mga patch ug mga update sa imahe. Kung ang imahe nga imong gigamit adunay tag X.Y, kini usa ka maayong kapilian alang sa bulawan nga kahulogan. Pinaagi sa pagpili niini, awtomatiko ka nga makadawat mga patch ug sa parehas nga oras nagsalig sa lig-on nga bersyon sa aplikasyon.

PS gikan sa tighubad

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment