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 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.)
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.
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.
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.