7 Praktek Pangalusna Wadah Google

Catetan. narjamahkeun.: Panulis artikel aslina nyaéta Théo Chamley, Arsiték Solusi Awan Google. Dina tulisan ieu pikeun blog Google Cloud, anjeunna nyayogikeun kasimpulan pituduh anu langkung rinci perusahaanna, anu disebut "Prakték Pangalusna pikeun Wadah Operasi" Di jerona, para ahli Google ngumpulkeun prakték pangsaéna pikeun wadah operasi dina konteks ngagunakeun Google Kubernetes Engine sareng seueur deui, nyabak kana rupa-rupa jejer: tina kaamanan dugi ka ngawaskeun sareng logging. Janten naon prakték wadah anu paling penting numutkeun Google?

7 Praktek Pangalusna Wadah Google

Kubernetes Engine (Layanan basis Kubernetes pikeun ngajalankeun aplikasi containerized dina Google Cloud - kira-kira. tarjamahan) mangrupikeun salah sahiji cara anu pangsaéna pikeun ngajalankeun beban kerja anu kedah skala. Kubernetes bakal mastikeun fungsi lemes tina paling aplikasi lamun aranjeunna containerized. Tapi upami anjeun hoyong aplikasi anjeun gampang diatur sareng hoyong ngamangpaatkeun pinuh ku Kubernetes, anjeun kedah nuturkeun prakték anu pangsaéna. Aranjeunna bakal nyederhanakeun operasi aplikasi, ngawaskeun sareng debuggingna, sareng ogé ningkatkeun kaamanan.

Dina tulisan ieu, urang bakal ngaliwat daptar hal-hal anu anjeun kedah terang sareng laksanakeun pikeun ngajalankeun wadah sacara efektif dina Kubernetes. Anu hoyong langkung jero kana detil kedah maca bahan Prakték Pangalusna pikeun Wadah Operasi, sarta ogé nengetan kami pos saméméhna ngeunaan assembling wadahna.

1. Paké mékanisme logging wadahna asli

Lamun aplikasi dijalankeun dina klaster Kubernetes, teu pira diperlukeun pikeun log. Sistem logging terpusat sigana parantos diwangun kana kluster anu anjeun anggo. Dina hal ngagunakeun Kubernetes Engine, ieu tanggung jawab Stackdriver Logging. (Catetan. narjamahkeun.: Sareng upami anjeun nganggo pamasangan Kubernetes anjeun nyalira, kami nyarankeun ningali langkung caket kana solusi Open Source kami - imah log.) Tetep hirup anjeun saderhana sareng nganggo mékanisme logging wadah asli. Tulis log ka stdout sareng stderr - aranjeunna bakal otomatis ditampi, disimpen sareng diindeks.

Upami hoyong, anjeun ogé tiasa nyerat log kana format JSON. Pendekatan ieu bakal ngagampangkeun pikeun nambihan metadata ka aranjeunna. Sareng sareng aranjeunna, Stackdriver Logging bakal gaduh kamampuan milarian log nganggo metadata ieu.

2. Pastikeun wadah anu stateless na immutable

Pikeun wadahna tiasa dianggo leres dina klaster Kubernetes, aranjeunna kedah henteu aya kaayaan sareng teu tiasa dirobih. Saatos kaayaan ieu dicumponan, Kubernetes tiasa ngalaksanakeun tugasna, nyiptakeun sareng ngancurkeun éntitas aplikasi iraha sareng dimana diperyogikeun.

Teu aya stateless hartina kaayaan naon baé (data pengkuh nanaon) disimpen di luar wadahna. Pikeun ieu, gumantung kana kabutuhan, sababaraha jinis panyimpenan éksternal tiasa dianggo: awan Panyimpenan, Diska Persistent, Redis, Awan SQL atawa database junun séjén. (Catetan. narjamahkeun.: Baca langkung seueur ngeunaan ieu dina tulisan kami "Operator pikeun Kubernetes: kumaha ngajalankeun aplikasi stateful".)

Teu kabeuratan hartina wadahna moal dirobah salila hirupna: euweuh apdet, patch, parobahan konfigurasi. Upami anjeun kedah ngapdet kode aplikasi anjeun atanapi nerapkeun patch, jieun gambar énggal sareng sebarkeunana. Disarankeun mindahkeun konfigurasi wadahna (ngadangukeun port, pilihan lingkungan runtime, jeung sajabana) externally - ka Rahasia и ConfigMaps. Éta bisa diropéa tanpa kudu ngawangun gambar wadahna anyar. Pikeun gampang nyieun pipelines kalawan assembly gambar, Anjeun bisa make Ngawangun awan. (Catetan. narjamahkeun.: Kami nganggo alat Open Source pikeun tujuan ieu dapp.)

7 Praktek Pangalusna Wadah Google
Conto ngamutahirkeun konfigurasi Deployment di Kubernetes nganggo ConfigMap dipasang dina pods salaku config.

3. Hindarkeun wadah anu dihormat

Anjeun henteu ngajalankeun aplikasi salaku root dina server anjeun, leres? Upami panyerang asup kana aplikasi, anjeunna bakal nampi aksés root. Pertimbangan anu sami lumaku pikeun henteu ngajalankeun wadah anu istimewa. Lamun perlu ngarobah setelan dina host, anjeun tiasa masihan wadahna husus kamampuhan ngagunakeun pilihan securityContext di Kubernetes. Lamun perlu ngarobah sysctls, Kubernetes boga abstrak misah kanggo ieu. Sacara umum, coba ngamangpaatkeun init- jeung wadah sidecar pikeun ngalakukeun operasi hak husus sarupa. Éta henteu kedah diaksés ku lalulintas internal atanapi éksternal.

Lamun administer klaster, Anjeun tiasa make Kawijakan Kaamanan Pod pikeun larangan dina pamakéan wadahna husus.

4. Hindarkeun ngajalankeun sakumaha root

Wadah hak istimewa parantos dibahas, tapi bakal langkung saé upami, salian ti ieu, anjeun henteu ngajalankeun aplikasi dina wadahna salaku akar. Upami panyerang mendakan kerentanan jauh dina aplikasi anu ngagaduhan hak akar anu ngamungkinkeun palaksanaan kode, saatos anjeunna tiasa ngantunkeun wadahna ngalangkungan kerentanan anu teu dipikanyaho, anjeunna bakal nampi akar dina host.

Cara anu pangsaéna pikeun ngahindarkeun ieu nyaéta henteu ngajalankeun nanaon salaku akar di tempat munggaran. Jang ngalampahkeun ieu, anjeun tiasa nganggo diréktif USER в Dockerfile atawa runAsUser di Kubernetes. Administrator klaster ogé tiasa ngonpigurasikeun paripolah penegak ngagunakeun Kawijakan Kaamanan Pod.

5. Jieun aplikasi gampang pikeun ngawas

Kawas logging, monitoring mangrupa bagian integral tina manajemen aplikasi. Solusi ngawaskeun anu populer di komunitas Kubernetes nyaéta Prometheus - sistem anu otomatis ngadeteksi pods sarta jasa anu merlukeun monitoring. (Catetan. narjamahkeun.: Tempo ogé urang laporan lengkep dina topik ngawaskeun nganggo Prometheus sareng Kubernetes.) Stackdriver sanggup ngawas klaster Kubernetes sareng kalebet versi Prometheus sorangan pikeun ngawaskeun aplikasi.

7 Praktek Pangalusna Wadah Google
Kubernetes Dashboard on Stackdriver

Prometheus ngarepkeun aplikasi pikeun neraskeun métrik ka titik akhir HTTP. Sadia pikeun ieu perpustakaan klien Prometheus. Format anu sami dianggo ku alat anu sanés sapertos OpenCensus и Istio.

6. Jieun status kaséhatan aplikasi urang sadia

Manajemén aplikasi dina produksi dibantuan ku kamampuan pikeun ngahubungkeun kaayaanana ka sadaya sistem. Dupi aplikasi ngajalankeun? Teu kunanaon? Naha anjeun siap nampi lalu lintas? Kumaha kalakuanana? Cara anu paling umum pikeun ngabéréskeun masalah ieu nyaéta ngalaksanakeun pamariksaan kaséhatan (pariksa kaséhatan). Kubernetes boga dua jenis: liveness jeung usik kesiapan.

Pikeun usik liveness (cek vitalitas) aplikasi nu kudu boga hiji titik tungtung HTTP nu mulih respon "200 OKÉ" lamun éta fungsi sarta kagumantungan dasar na wareg. Pikeun usik kesiapan (cek kesiapan jasa) aplikasi kudu boga titik tungtung HTTP sejen nu mulih "200 OK" respon lamun aplikasi dina kaayaan cageur, léngkah initialization geus réngsé sarta sagala pamundut valid teu ngakibatkeun kasalahan. Kubernetes ngan bakal ngalihkeun lalu lintas kana wadahna upami aplikasina parantos siap dumasar kana pamariksaan ieu. Dua titik tungtung tiasa dihijikeun upami teu aya bédana antara kaayaan liveness sareng kesiapan.

Anjeun tiasa maca langkung seueur ngeunaan ieu dina tulisan anu aya hubunganana ti Sandeep Dinesh, Advokat pamekar ti Google: "Prakték pangsaéna Kubernetes: Nyetél pamariksaan kaséhatan kalayan usik kesiapan sareng liveness".

7. Pilih versi gambar anjeun taliti

Seuseueurna gambar umum sareng pribadi nganggo sistem tag anu sami sareng anu dijelaskeun dina Prakték Pangalusna pikeun Ngawangun Wadah. Lamun gambar ngagunakeun sistem deukeut ka versioning semantis, perlu tumut kana akun spésifik tina tagging. Contona, tag latest tiasa sering mindahkeun tina gambar ka gambar - teu tiasa diandelkeun upami anjeun peryogi gedong sareng pamasangan anu tiasa diprediksi sareng tiasa diulang.

Anjeun tiasa nganggo tag X.Y.Z (aranjeunna ampir salawasna unchanged), tapi dina hal ieu, ngalacak sagala patches sarta apdet pikeun gambar. Upami gambar anu anjeun anggo gaduh tag X.Y, Ieu pilihan alus keur mean emas. Ku milih éta, anjeun otomatis nampi patch sareng dina waktos anu sami ngandelkeun versi aplikasi anu stabil.

PS ti penerjemah

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar