Mbinu 7 bora za kutumia vyombo kulingana na Google

Kumbuka. tafsiri.: Mwandishi wa makala asili ni ThΓ©o Chamley, Mbunifu wa Google Cloud Solutions. Katika chapisho hili la blogu ya Wingu la Google, anatoa muhtasari wa mwongozo wa kina zaidi wa kampuni yake, unaoitwa "Mbinu Bora za Kuendesha Makontena" Ndani yake, wataalamu wa Google walikusanya mbinu bora za vyombo vya uendeshaji katika muktadha wa kutumia Injini ya Google Kubernetes na zaidi, wakigusa mada mbalimbali: kutoka kwa usalama hadi ufuatiliaji na ukataji miti. Kwa hivyo ni mbinu gani muhimu zaidi za kontena kulingana na Google?

Mbinu 7 bora za kutumia vyombo kulingana na Google

Injini ya Kubernetes (Huduma ya Kubernetes ya kuendesha programu zilizowekwa kwenye Google Cloud - takriban. tafsiri) ni mojawapo ya njia bora za kuendesha mzigo wa kazi ambao unahitaji kuongeza. Mabernet itahakikisha utendakazi mzuri wa programu nyingi ikiwa zimefungwa. Lakini ikiwa ungependa programu yako iwe rahisi kudhibiti na unataka kutumia kikamilifu Kubernetes, unahitaji kufuata mbinu bora zaidi. Watarahisisha utendakazi wa programu, ufuatiliaji na utatuzi wake, na pia kuongeza usalama.

Katika makala haya, tutapitia orodha ya mambo unayopaswa kujua na kufanya ili kuendesha vyombo kwa ufanisi kwenye Kubernetes. Wale wanaotaka kuingia kwa undani zaidi wanapaswa kusoma nyenzo Mbinu Bora za Kuendesha Makontena, na pia makini na yetu chapisho la awali kuhusu kukusanya vyombo.

1. Tumia njia za uwekaji kumbukumbu za vyombo vya asili

Ikiwa programu inaendeshwa kwenye nguzo ya Kubernetes, haihitajiki sana kwa kumbukumbu. Mfumo wa kati wa kukata miti kuna uwezekano tayari umejengwa kwenye nguzo unayotumia. Katika kesi ya kutumia Kubernetes Engine, hii inawajibika Kuingia kwa Stackdriver. (Kumbuka. tafsiri.: Na ikiwa unatumia usakinishaji wako wa Kubernetes, tunapendekeza uangalie kwa karibu suluhisho letu la Open Source - nyumba ya magogo.) Rahisisha maisha yako na utumie mbinu asilia za ukataji miti. Andika kumbukumbu kwa stdout na stderr - zitapokelewa kiotomatiki, zitahifadhiwa na kuorodheshwa.

Ikiwa inataka, unaweza pia kuandika kumbukumbu kwa Umbizo la JSON. Mbinu hii itarahisisha kuongeza metadata kwao. Na pamoja nao, Uwekaji kumbukumbu wa Stackdriver utakuwa na uwezo wa kutafuta kumbukumbu kwa kutumia metadata hii.

2. Hakikisha kontena hazina uraia na hazibadiliki

Ili kontena zifanye kazi ipasavyo katika kundi la Kubernetes, lazima ziwe zisizo na uraia na zisizobadilika. Masharti haya yakishatimizwa, Kubernetes inaweza kufanya kazi yake, kuunda na kuharibu huluki za maombi wakati na inapohitajika.

Haina maana inamaanisha kuwa hali yoyote (data inayoendelea ya aina yoyote) imehifadhiwa nje ya kontena. Kwa hili, kulingana na mahitaji, aina tofauti za hifadhi ya nje zinaweza kutumika: Uhifadhi wa Wingu, Diski zinazoendelea, Rejea, SQL ya Wingu au hifadhidata zingine zinazosimamiwa. (Kumbuka. tafsiri.: Soma zaidi kuhusu hili katika makala yetu "Waendeshaji wa Kubernetes: jinsi ya kuendesha programu za hali ya juu".)

Haiwezekani inamaanisha kuwa chombo hakitarekebishwa wakati wa maisha yake: hakuna sasisho, viraka, mabadiliko ya usanidi. Ikiwa unahitaji kusasisha msimbo wako wa programu au kutumia kiraka, unda picha mpya na uitumie. Inashauriwa kuhamisha usanidi wa kontena (bandari ya kusikiliza, chaguzi za mazingira ya wakati wa kukimbia, nk) nje - kwa Siri ΠΈ ConfigMaps. Wanaweza kusasishwa bila kulazimika kuunda picha mpya ya kontena. Ili kuunda mabomba kwa urahisi na mkusanyiko wa picha, unaweza kutumia Kujenga Wingu. (Kumbuka. tafsiri.: Tunatumia zana ya Open Source kwa madhumuni haya dapp.)

Mbinu 7 bora za kutumia vyombo kulingana na Google
Mfano wa kusasisha usanidi wa Upelekaji katika Kubernetes kwa kutumia ConfigMap iliyowekwa kwenye maganda kama usanidi.

3. Epuka vyombo vya upendeleo

Huendeshi programu kama mzizi kwenye seva zako, sivyo? Ikiwa mshambuliaji anaingia kwenye programu, atapata ufikiaji wa mizizi. Mazingatio yale yale yanatumika kwa kutoendesha vyombo vya upendeleo. Ikiwa unahitaji kubadilisha mipangilio kwenye seva pangishi, unaweza kutoa chombo mahususi uwezo kwa kutumia chaguo securityContext katika Kubernetes. Ikiwa unahitaji kubadilisha sysctls, Kubernetes ana mukhtasari tofauti kwa hii; kwa hili. Kwa ujumla, jaribu kutumia zaidi ndani yake- na kontena za kando kufanya shughuli za upendeleo sawa. Hazihitaji kufikiwa na trafiki ya ndani au nje.

Ikiwa unasimamia kikundi, unaweza kutumia Sera ya Usalama ya Pod kwa vikwazo juu ya matumizi ya vyombo vya upendeleo.

4. Epuka kukimbia kama mzizi

Vyombo vya upendeleo tayari vimejadiliwa, lakini itakuwa bora zaidi ikiwa, pamoja na hayo, hutaendesha programu ndani ya chombo kama mzizi. Mshambulizi akipata athari ya mbali katika programu iliyo na haki za mizizi inayoruhusu utekelezaji wa msimbo, kisha anaweza kuondoka kwenye kontena kupitia athari ambayo bado haijajulikana, atapata mizizi kwa seva pangishi.

Njia bora ya kuzuia hii ni kutoendesha kitu chochote kama mzizi hapo kwanza. Kwa kufanya hivyo, unaweza kutumia maelekezo USER Π² Dockerfile au runAsUser katika Kubernetes. Msimamizi wa nguzo pia anaweza kusanidi tabia ya utekelezaji kwa kutumia Sera ya Usalama ya Pod.

5. Fanya programu iwe rahisi kufuatilia

Kama vile ukataji miti, ufuatiliaji ni sehemu muhimu ya usimamizi wa programu. Suluhisho maarufu la ufuatiliaji katika jumuiya ya Kubernetes ni Prometheus - mfumo unaotambua kiotomatiki maganda na huduma zinazohitaji ufuatiliaji. (Kumbuka. tafsiri.: Tazama pia yetu ripoti ya kina juu ya mada ya ufuatiliaji kwa kutumia Prometheus na Kubernetes.) Stackdriver ina uwezo wa kufuatilia makundi ya Kubernetes na inajumuisha toleo lake la Prometheus kwa ufuatiliaji wa programu.

Mbinu 7 bora za kutumia vyombo kulingana na Google
Dashibodi ya Kubernetes kwenye Stackdriver

Prometheus anatarajia programu kusambaza vipimo hadi mwisho wa HTTP. Inapatikana kwa hii Maktaba za mteja wa Prometheus. Umbizo sawa hutumiwa na zana zingine kama FunguaSensa ΠΈ Istio.

6. Fanya hali ya afya ya programu ipatikane

Usimamizi wa maombi katika uzalishaji unasaidiwa na uwezo wake wa kuwasiliana hali yake kwa mfumo mzima. Je, maombi yanaendeshwa? Je, ni sawa? Je, uko tayari kupokea trafiki? Je, ana tabia gani? Njia ya kawaida ya kutatua tatizo hili ni kutekeleza ukaguzi wa afya (kaguzi za afya). Kubernetes ina aina mbili: uchangamfu na utayari.

Kwa uchunguzi wa uhai (ukaguzi wa uhai) programu lazima iwe na sehemu ya mwisho ya HTTP ambayo inarejesha jibu la "Sawa 200" ikiwa inafanya kazi na tegemezi zake za kimsingi zimeridhika. Kwa uchunguzi wa utayari (angalia utayari wa huduma) programu lazima iwe na sehemu nyingine ya mwisho ya HTTP ambayo inarejesha jibu la "Sawa 200" ikiwa programu iko katika hali nzuri, hatua za uanzishaji zimekamilika na ombi lolote halali halisababishi hitilafu. Kubernetes itaelekeza trafiki kwenye kontena ikiwa programu iko tayari kulingana na ukaguzi huu. Miisho miwili inaweza kuunganishwa ikiwa hakuna tofauti kati ya hali ya uhai na utayari.

Unaweza kusoma zaidi kuhusu hili katika makala inayohusiana kutoka kwa Sandeep Dinesh, Wakili wa Wasanidi Programu kutoka Google: β€œMbinu bora za Kubernetes: Kuweka ukaguzi wa afya kwa utayari na uchunguzi wa uhai'.

7. Chagua toleo lako la picha kwa uangalifu

Picha nyingi za umma na za kibinafsi hutumia mfumo wa kuweka lebo sawa na ulioelezewa ndani Mbinu Bora za Kujenga Vyombo. Ikiwa picha hutumia mfumo karibu na toleo la kisemantiki, ni muhimu kuzingatia maalum ya kuweka alama. Kwa mfano, tag latest inaweza kusonga mara kwa mara kutoka kwa picha hadi picha - haiwezi kutegemewa ikiwa unahitaji miundo na usakinishaji unaotabirika na unaorudiwa.

Unaweza kutumia tag X.Y.Z (wao ni karibu daima bila kubadilika), lakini katika kesi hii, fuatilia patches zote na sasisho kwa picha. Ikiwa picha unayotumia ina lebo X.Y, hii ni chaguo nzuri kwa maana ya dhahabu. Kwa kuichagua, unapokea viraka kiotomatiki na wakati huo huo unategemea toleo thabiti la programu.

PS kutoka kwa mtafsiri

Soma pia kwenye blogi yetu:

Chanzo: mapenzi.com

Kuongeza maoni