7 praktik paling apik kanggo nggunakake wadhah miturut Google

Cathetan. nerjemahake.: Penulis artikel asli yaiku ThΓ©o Chamley, Arsitek Solusi Awan Google. Ing kirim iki kanggo blog Google Cloud, dheweke menehi ringkesan pandhuan perusahaan sing luwih rinci, sing diarani "Praktik Paling Apik kanggo Wadah Operasi" Ing kono, ahli Google ngumpulake praktik paling apik kanggo ngoperasikake wadhah ing konteks nggunakake Google Kubernetes Engine lan liya-liyane, ndemek macem-macem topik: saka keamanan nganti ngawasi lan logging. Dadi apa praktik wadhah sing paling penting miturut Google?

7 praktik paling apik kanggo nggunakake wadhah miturut Google

Kubernetes Engine (Layanan basis Kubernetes kanggo mbukak aplikasi wadah ing Google Cloud - kira-kira. ngartekne) minangka salah sawijining cara sing paling apik kanggo mbukak beban kerja sing kudu ditindakake. Kubernetes bakal njamin fungsi Gamelan paling aplikasi yen lagi containerized. Nanging yen sampeyan pengin aplikasi sampeyan gampang diatur lan pengin entuk manfaat saka Kubernetes, sampeyan kudu ngetutake praktik paling apik. Dheweke bakal nyederhanakake operasi aplikasi, ngawasi lan debugging, lan uga nambah keamanan.

Ing artikel iki, kita bakal ngrembug dhaptar perkara sing kudu sampeyan ngerteni lan nindakake supaya bisa mbukak kontainer kanthi efektif ing Kubernetes. Sing pengin luwih rinci kudu maca materi kasebut Praktik Paling Apik kanggo Wadah Operasi, lan uga mbayar manungsa waΓ© kanggo kita kirim sadurungΓ© bab ngrakit wadhah.

1. Gunakake mekanisme logging wadhah asli

Yen aplikasi mlaku ing kluster Kubernetes, ora akeh sing dibutuhake kanggo log. Sistem logging terpusat kemungkinan wis dibangun ing kluster sing sampeyan gunakake. Ing kasus nggunakake Kubernetes Engine, iki tanggung jawab Stackdriver Logging. (Cathetan. nerjemahake.: Lan yen sampeyan nggunakake instalasi Kubernetes dhewe, disaranake mriksa solusi Open Source - omah log.) Tansah urip prasaja lan gunakake mekanisme logging wadhah asli. Tulis log menyang stdout lan stderr - bakal ditampa kanthi otomatis, disimpen lan diindeks.

Yen dikarepake, sampeyan uga bisa nulis log menyang format JSON. Pendekatan iki bakal nggawe gampang kanggo nambah metadata kanggo wong-wong mau. Lan karo wong-wong mau, Stackdriver Logging bakal nduweni kemampuan kanggo nggoleki log nggunakake metadata iki.

2. Priksa manawa wadhah ora duwe status lan ora bisa diganti

Supaya wadhah bisa dienggo kanthi bener ing kluster Kubernetes, wadhah kasebut kudu tanpa status lan ora bisa diganti. Sawise syarat kasebut ditindakake, Kubernetes bisa nindakake tugase, nggawe lan ngrusak entitas aplikasi nalika lan ing ngendi wae.

Ora ono tegese negara apa wae (data terus-terusan apa wae) disimpen ing njaba wadhah. Kanggo iki, gumantung saka kabutuhan, macem-macem jinis panyimpenan eksternal bisa digunakake: Cloud Storage, Disk sing terus-terusan, Redis, Cloud SQL utawa database ngatur liyane. (Cathetan. nerjemahake.: Waca liyane babagan iki ing artikel kita "Operator kanggo Kubernetes: carane mbukak aplikasi stateful".)

Ora owah tegese wadhah ora bakal diowahi sajrone urip: ora ana nganyari, patch, owah-owahan konfigurasi. Yen sampeyan kudu nganyari kode aplikasi utawa aplikasi tembelan, gawe gambar anyar lan pasang. Disaranake mindhah konfigurasi wadhah (port ngrungokake, opsi lingkungan runtime, etc.) externally - kanggo Rahasia ΠΈ ConfigMaps. Padha bisa dianyari tanpa kudu mbangun gambar wadhah anyar. Kanggo gampang nggawe pipelines karo perakitan gambar, sampeyan bisa nggunakake Mbangun awan. (Cathetan. nerjemahake.: Kita nggunakake alat Open Source kanggo tujuan kasebut dapp.)

7 praktik paling apik kanggo nggunakake wadhah miturut Google
Conto nganyari konfigurasi Deployment ing Kubernetes nggunakake ConfigMap sing dipasang ing pods minangka konfigurasi

3. Ngindhari wadhah istimewa

Sampeyan ora mbukak aplikasi minangka root ing server sampeyan, ta? Yen panyerang mlebu ing aplikasi kasebut, dheweke bakal entuk akses root. Pertimbangan sing padha ditrapake kanggo ora mbukak wadhah sing duwe hak istimewa. Yen sampeyan kudu ngganti setelan ing inang, sampeyan bisa menehi wadhah tartamtu kemampuan nggunakake pilihan securityContext ing Kubernetes. Yen sampeyan kudu ngganti sysctls, Kubernetes wis abstrak kapisah kanggo iki. UmumΓ©, nyoba kanggo nggawe paling saka init- lan kontaner sidecar kanggo nindakake operasi hak istimewa padha. Padha ora perlu diakses kanggo lalu lintas internal utawa eksternal.

Yen sampeyan ngatur kluster, sampeyan bisa nggunakake Kebijakan Keamanan Pod kanggo Watesan ing nggunakake wadhah istimewa.

4. Aja mlaku minangka ROOT

Wadah sing duwe hak istimewa wis dibahas, nanging bakal luwih apik yen, saliyane iki, sampeyan ora mbukak aplikasi ing wadhah kasebut minangka oyod. Yen panyerang nemokake kerentanan remot ing aplikasi kanthi hak ROOT sing ngidini eksekusi kode, sawise dheweke bisa ninggalake wadhah kasebut liwat kerentanan sing durung dingerteni, dheweke bakal entuk root ing host.

Cara paling apik kanggo ngindhari iki yaiku ora mbukak apa-apa minangka root ing wiwitan. Kanggo nindakake iki, sampeyan bisa nggunakake arahan USER Π² Dockerfile utawa runAsUser ing Kubernetes. Administrator kluster uga bisa ngatur prilaku penegakan nggunakake Kebijakan Keamanan Pod.

5. Nggawe aplikasi gampang kanggo ngawasi

Kaya logging, ngawasi minangka bagean integral saka manajemen aplikasi. Solusi pemantauan sing populer ing komunitas Kubernetes yaiku Prometheus - sistem sing kanthi otomatis ndeteksi pods lan layanan sing mbutuhake ngawasi. (Cathetan. nerjemahake.: Deleng uga kita laporan rinci babagan topik pemantauan nggunakake Prometheus lan Kubernetes.) Stackdriver bisa ngawasi kluster Kubernetes lan kalebu versi Prometheus dhewe kanggo ngawasi aplikasi.

7 praktik paling apik kanggo nggunakake wadhah miturut Google
Dashboard Kubernetes ing Stackdriver

Prometheus ngarepake aplikasi kasebut nerusake metrik menyang titik pungkasan HTTP. Kasedhiya kanggo iki Pustaka klien Prometheus. Format sing padha digunakake dening piranti liyane kaya OpenCensus ΠΈ Istio.

6. Nggawe status kesehatan app kasedhiya

Manajemen aplikasi ing produksi dibantu dening kemampuan kanggo komunikasi negara kanggo kabeh sistem. Apa aplikasi mlaku? Apa ora apa-apa? Apa sampeyan siap nampa lalu lintas? Kepriye kelakuane? Cara sing paling umum kanggo ngatasi masalah iki yaiku ngleksanakake pemeriksaan kesehatan (pemeriksaan kesehatan). Kubernetes duwe rong jinis: liveness lan probe kesiapan.

Kanggo probe liveness (pemeriksaan vitalitas) aplikasi kudu endpoint HTTP sing ngasilake "200 OK" respon yen iku fungsi lan dependensi dhasar wareg. Kanggo probe kesiapan (pemeriksaan kesiapan layanan) aplikasi kudu duwe titik pungkasan HTTP liyane sing ngasilake respon "200 OK" yen aplikasi ing negara sehat, langkah initialization wis rampung lan panjalukan bener ora nyebabake kesalahan. Kubernetes mung bakal nuntun lalu lintas menyang wadhah yen aplikasi wis siyap miturut pamriksan kasebut. Loro titik pungkasan bisa digabung yen ora ana bedane antarane status liveness lan kesiapan.

Sampeyan bisa maca liyane babagan iki ing artikel sing gegandhengan saka Sandeep Dinesh, Advokat Pangembang saka Google: "Praktik paling apik Kubernetes: Nyiyapake pemeriksaan kesehatan kanthi probe kesiapan lan liveness".

7. Pilih versi gambar kanthi teliti

Umume gambar umum lan pribadi nggunakake sistem menehi tag sing padha karo sing diterangake ing Praktek Paling Apik kanggo Wadhah Bangunan. Yen gambar nggunakake sistem cedhak versi semantik, iku perlu kanggo njupuk menyang akun spesifik menehi tag. Contone, tag latest bisa kerep pindhah saka gambar menyang gambar - ora bisa dipercaya yen sampeyan mbutuhake mbangun lan instalasi sing bisa ditebak lan bisa diulang.

Sampeyan bisa nggunakake tag X.Y.Z (padha meh tansah panggah), nanging ing kasus iki, nglacak kabeh patches lan nganyari kanggo gambar. Yen gambar sing sampeyan gunakake duwe tag X.Y, iki pilihan apik kanggo tegese emas. Kanthi milih, sampeyan kanthi otomatis nampa patch lan ing wektu sing padha gumantung ing versi stabil saka aplikasi.

PS saka penerjemah

Waca uga ing blog kita:

Source: www.habr.com

Add a comment