7 qhov kev coj ua zoo tshaj plaws rau kev siv cov thawv raws li Google

Nco tseg. txhais.: Tus sau thawj tsab xov xwm yog ThΓ©o Chamley, Google Cloud Solutions Architect. Hauv tsab ntawv tshaj tawm no rau Google Cloud blog, nws muab cov ntsiab lus ntawm nws lub tuam txhab cov lus qhia ntxaws ntxiv, hu ua "Cov kev coj ua zoo tshaj plaws rau kev ua haujlwm ntim khoom" Hauv nws, Google cov kws tshaj lij tau sau cov kev coj ua zoo tshaj plaws rau kev ua haujlwm ntim hauv cov ntsiab lus ntawm kev siv Google Kubernetes Cav thiab ntau dua, kov rau ntau yam ntsiab lus: los ntawm kev ruaj ntseg mus rau kev saib xyuas thiab txiav. Yog li dab tsi yog qhov tseem ceeb tshaj plaws kev coj ua raws li Google?

7 qhov kev coj ua zoo tshaj plaws rau kev siv cov thawv raws li Google

Kubernetes Cav (Kubernetes-raws li kev pabcuam rau khiav cov ntawv thov ntim hauv Google Cloud - kwv yees. txhais lus) yog ib txoj hauv kev zoo tshaj plaws los khiav cov haujlwm uas yuav tsum tau ntsuas. Kubernetes yuav xyuas kom meej kev ua haujlwm ntawm cov ntawv thov feem ntau yog tias lawv ntim khoom. Tab sis yog tias koj xav kom koj daim ntawv thov kom yooj yim rau kev tswj hwm thiab xav ua kom zoo dua ntawm Kubernetes, koj yuav tsum ua raws li cov kev coj ua zoo tshaj. Lawv yuav ua kom yooj yim rau kev khiav hauj lwm ntawm daim ntawv thov, nws cov kev saib xyuas thiab kev debugging, thiab kuj nce kev ruaj ntseg.

Hauv tsab xov xwm no, peb yuav dhau los ntawm cov npe ntawm cov khoom koj yuav tsum paub thiab ua kom khiav cov ntim tau zoo ntawm Kubernetes. Cov neeg uas xav mus tob rau hauv cov ntsiab lus yuav tsum nyeem cov ntaub ntawv Cov kev coj ua zoo tshaj plaws rau kev ua haujlwm ntim khoom, thiab kuj xyuam xim rau peb post ua ntej hais txog assembling ntim.

1. Siv cov txheej txheem ntim khoom hauv lub tebchaws

Yog tias daim ntawv thov tau khiav ntawm Kubernetes pawg, tsis xav tau ntau rau cov cav. Lub kaw lus kaw hauv nruab nrab yog qhov zoo li twb tau ua rau hauv pawg koj siv. Nyob rau hauv rooj plaub ntawm kev siv Kubernetes Cav, qhov no yog lub luag haujlwm Stackdriver Logging. (Nco tseg. txhais.: Thiab yog tias koj siv koj tus kheej Kubernetes kev teeb tsa, peb pom zoo kom ua tib zoo saib peb qhov Open Source daws - log tsev.) Ua kom koj lub neej yooj yim thiab siv cov thawv ntim khoom hauv zos. Sau cov cav rau stdout thiab stderr - lawv yuav tau txais, txuag thiab indexed.

Yog xav tau, koj tuaj yeem sau cov ntawv rau JSON format. Txoj hauv kev no yuav ua rau nws yooj yim ntxiv metadata rau lawv. Thiab nrog lawv, Stackdriver Logging yuav muaj peev xwm tshawb nrhiav los ntawm cov cav siv cov metadata no.

2. Xyuas kom cov thawv ntim khoom tsis muaj xeev thiab hloov tsis tau

Rau cov thawv kom ua haujlwm kom raug hauv Kubernetes pawg, lawv yuav tsum tsis muaj lub xeev thiab hloov tsis tau. Thaum cov xwm txheej no tau ua tiav, Kubernetes tuaj yeem ua nws txoj haujlwm, tsim thiab rhuav tshem cov ntawv thov thaum twg thiab qhov twg xav tau.

Tsis muaj neeg txhais tau hais tias txhua lub xeev (cov ntaub ntawv tsis tu ncua ntawm txhua yam) yog khaws cia sab nraum lub thawv. Rau qhov no, nyob ntawm qhov xav tau, ntau hom kev cia sab nraud tuaj yeem siv tau: huab Cia, Persistent Disks, Redis, Huab SQL los yog lwm yam tswj databases. (Nco tseg. txhais.: Nyeem ntxiv txog qhov no hauv peb tsab xov xwm "Cov neeg khiav dej num rau Kubernetes: yuav ua li cas khiav cov ntawv thov muaj cai".)

Txhim kho tsis tau txhais tau hais tias lub thawv yuav tsis raug hloov kho thaum lub sijhawm nws lub neej: tsis muaj kev hloov kho, thaj ua rau thaj, kev hloov pauv. Yog tias koj xav tau hloov kho koj daim ntawv thov code lossis siv thaj chaw, tsim cov duab tshiab thiab xa nws mus. Nws raug nquahu kom txav lub thawv configuration (nrhiav chaw nres nkoj, runtime ib puag ncig xaiv, thiab lwm yam) sab nraud - mus rau secrets ΠΈ ConfigMaps. Lawv tuaj yeem hloov kho yam tsis tas yuav tsim lub thawv tshiab. Yuav kom yooj yim tsim cov kav dej nrog cov duab sib dhos, koj tuaj yeem siv Huab Tsim. (Nco tseg. txhais.: Peb siv cov cuab yeej Qhib Qhov Chaw rau cov hom phiaj no dapp ua.)

7 qhov kev coj ua zoo tshaj plaws rau kev siv cov thawv raws li Google
Ib qho piv txwv ntawm kev hloov kho qhov teeb tsa Deployment hauv Kubernetes siv ConfigMap mounted hauv pods li config

3. Tsis txhob ntim cov thawv ntim khoom muaj cai

Koj tsis khiav daim ntawv thov raws li hauv paus ntawm koj cov servers, txoj cai? Yog tias tus neeg tawm tsam tawg rau hauv daim ntawv thov, nws yuav nkag mus rau hauv paus. Tib qhov kev txiav txim siab siv rau kev tsis siv cov thawv ntim khoom muaj cai. Yog tias koj xav tau hloov chaw ntawm tus tswv tsev, koj tuaj yeem muab lub thawv tshwj xeeb muaj peev xwm siv qhov kev xaiv securityContext hauv Kubernetes. Yog tias koj xav tau hloov sysctls ua, Kubernetes muaj cais abstract rau qhov no. Feem ntau, sim ua kom zoo tshaj plaws init- thiab cov thawv sab hauv los ua cov haujlwm zoo sib xws. Lawv tsis tas yuav nkag mus rau sab hauv lossis sab nraud.

Yog tias koj tswj hwm pawg, koj tuaj yeem siv Pod Security Policy rau kev txwv ntawm kev siv cov thawv ntim khoom muaj cai.

4. Tsis txhob khiav raws li hauv paus

Cov thawv ntim muaj cai tau tham txog lawm, tab sis nws yuav zoo dua yog tias, ntxiv rau qhov no, koj tsis khiav cov ntawv thov hauv lub thawv raws li hauv paus. Yog tias tus neeg tawm tsam pom qhov muaj qhov tsis zoo nyob rau hauv ib daim ntawv thov nrog cov cai hauv paus uas tso cai rau kev ua txhaum cai, tom qab ntawd nws muaj peev xwm tawm hauv lub thawv los ntawm qhov tsis paub qhov tsis zoo, nws yuav tau txais hauv paus ntawm tus tswv tsev.

Txoj hauv kev zoo tshaj plaws kom tsis txhob muaj qhov no yog kom tsis txhob khiav dab tsi li hauv paus hauv thawj qhov chaw. Txhawm rau ua qhov no, koj tuaj yeem siv cov lus qhia USER Π² Dockerfile los yog runAsUser hauv Kubernetes. Tus thawj tswj hwm pawg kuj tuaj yeem teeb tsa kev tswj hwm tus cwj pwm siv Pod Security Policy.

5. Ua daim ntawv thov kom yooj yim saib xyuas

Zoo li kev kaw lus, kev saib xyuas yog ib feem tseem ceeb ntawm kev tswj xyuas daim ntawv thov. Kev tshuaj xyuas nrov hauv cov zej zog Kubernetes yog Prometheus - lub kaw lus uas cia li ntes cov pods thiab cov kev pabcuam uas yuav tsum tau saib xyuas. (Nco tseg. txhais.: Saib peb thiab qhia ntxaws ntawm lub ntsiab lus ntawm kev saib xyuas siv Prometheus thiab Kubernetes.) Stackdriver muaj peev xwm saib xyuas Kubernetes pawg thiab suav nrog nws tus kheej version ntawm Prometheus rau kev soj ntsuam daim ntawv thov.

7 qhov kev coj ua zoo tshaj plaws rau kev siv cov thawv raws li Google
Kubernetes Dashboard ntawm Stackdriver

Prometheus cia siab tias daim ntawv thov xa mus rau metrics mus rau HTTP kawg. Muaj rau qhov no Prometheus cov tsev qiv ntawv. Tib hom yog siv los ntawm lwm yam cuab yeej xws li OpenCensus ΠΈ Istio.

6. Ua kom lub app muaj kev noj qab haus huv

Daim ntawv thov kev tswj hwm hauv kev tsim khoom yog pab los ntawm nws lub peev xwm los sib txuas lus nws lub xeev rau tag nrho cov kab ke. Puas yog daim ntawv thov ua haujlwm? Puas yog? Koj puas npaj tau txais kev khiav tsheb? Nws coj li cas? Txoj hauv kev zoo tshaj plaws los daws qhov teeb meem no yog siv kev kuaj mob (kev kuaj mob). Kubernetes muaj ob hom: kev ua neej nyob thiab kev npaj tshuaj ntsuam xyuas.

Rau kev soj ntsuam kev ua neej (Kev tshawb xyuas tseem ceeb) daim ntawv thov yuav tsum muaj qhov kawg HTTP uas xa rov qab "200 OK" cov lus teb yog tias nws ua haujlwm tau zoo thiab nws cov kev vam meej tau txaus siab. Rau kev soj ntsuam kev npaj (kev pabcuam kev kuaj xyuas) daim ntawv thov yuav tsum muaj lwm qhov kawg HTTP uas rov qab "200 OK" cov lus teb yog tias daim ntawv thov nyob rau hauv lub xeev noj qab haus huv, cov kauj ruam pib tau ua tiav thiab txhua qhov kev thov siv tau tsis ua rau muaj qhov yuam kev. Kubernetes tsuas yog khiav tsheb mus rau lub thawv yog tias daim ntawv thov npaj tau raws li cov tshev no. Ob lub ntsiab lus kawg tuaj yeem sib sau ua ke yog tias tsis muaj qhov sib txawv ntawm lub neej thiab kev npaj txhij.

Koj tuaj yeem nyeem ntxiv txog qhov no hauv tsab xov xwm cuam tshuam los ntawm Sandeep Dinesh, Tus Tsim Tawm Tswv Yim los ntawm Google: "Kubernetes cov kev coj ua zoo tshaj plaws: Teeb tsa kev kuaj mob nrog kev npaj txhij thiab kev soj ntsuam kev ua neej".

7. Xaiv koj cov duab version kom zoo zoo

Feem ntau cov duab pej xeem thiab ntiag tug siv lub cim cim npe zoo ib yam li qhov tau piav qhia hauv Kev coj ua zoo tshaj plaws rau lub tsev ntim khoom. Yog daim duab siv lub kaw lus ze rau semantic versioning, nws yog ib qho tsim nyog yuav tsum coj mus rau hauv tus account qhov tshwj xeeb ntawm tagging. Piv txwv li, tag latest tuaj yeem txav mus los ntawm cov duab mus rau cov duab - tsis tuaj yeem tso siab rau yog tias koj xav tau kev kwv yees thiab rov ua dua thiab txhim kho.

Koj tuaj yeem siv tag X.Y.Z (lawv yuav luag ib txwm tsis hloov), tab sis nyob rau hauv cov ntaub ntawv no, khaws tag nrho cov thaj ua rau thaj thiab hloov tshiab rau daim duab. Yog tias daim duab koj siv muaj tag X.Y, qhov no yog ib qho kev xaiv zoo rau lub ntsiab lus golden. Los ntawm kev xaiv nws, koj tau txais thaj ua rau thaj thiab tib lub sijhawm cia siab rau qhov ruaj khov version ntawm daim ntawv thov.

PS los ntawm tus txhais lus

Nyeem kuj ntawm peb blog:

Tau qhov twg los: www.hab.com

Ntxiv ib saib