Google-un 7 Konteyner Ən Yaxşı Təcrübəsi

Qeyd. tərcümə.: Orijinal məqalənin müəllifi Theo Chamley, Google Cloud Solutions Architect-dir. Google Bulud bloqu üçün bu yazıda o, şirkətinin "adlı daha ətraflı bələdçisinin xülasəsini təqdim edir.Konteynerlərin istismarı üçün ən yaxşı təcrübələr" Burada Google mütəxəssisləri Google Kubernetes Mühərrikindən və daha çoxundan istifadə kontekstində konteynerlərin istismarı üçün ən yaxşı təcrübələri toplayıb, geniş mövzulara toxunub: təhlükəsizlikdən tutmuş monitorinq və girişə qədər. Beləliklə, Google-a görə ən vacib konteyner təcrübələri hansılardır?

Google-un 7 Konteyner Ən Yaxşı Təcrübəsi

Kubernetes Mühərriki (Google Cloud-da konteynerləşdirilmiş tətbiqləri işə salmaq üçün Kubernetes əsaslı xidmət - təqribən. tərcümə.) genişləndirilməsi lazım olan iş yüklərini idarə etməyin ən yaxşı yollarından biridir. Kubernetes Əksər proqramlar konteynerləşdirildikdə onların düzgün işləməsini təmin edəcək. Ancaq tətbiqinizin idarə edilməsinin asan olmasını və Kubernetes-dən tam istifadə etmək istəyirsinizsə, ən yaxşı təcrübələrə əməl etməlisiniz. Onlar tətbiqin işini, monitorinqini və sazlanmasını sadələşdirəcək, həmçinin təhlükəsizliyi artıracaq.

Bu yazıda biz Kubernetes-də konteynerləri effektiv idarə etmək üçün bilməli olduğunuz və etməli olduğunuz şeylərin siyahısını nəzərdən keçirəcəyik. Təfərrüatları daha dərindən öyrənmək istəyənlər materialı oxumalıdırlar Konteynerlərin istismarı üçün ən yaxşı təcrübələr, həm də bizim diqqət yetirin əvvəlki yazı konteynerlərin yığılması haqqında.

1. Yerli konteyner logging mexanizmlərindən istifadə edin

Tətbiq Kubernetes klasterində işləyirsə, qeydlər üçün çox şey tələb olunmur. Mərkəzləşdirilmiş giriş sistemi çox güman ki, artıq istifadə etdiyiniz çoxluqda qurulub. Kubernetes Mühərrikindən istifadə vəziyyətində bu məsuliyyət daşıyır Stackdriver Logging. (Qeyd. tərcümə.: Öz Kubernetes quraşdırmanızdan istifadə edirsinizsə, Açıq Mənbə həllimizə daha yaxından nəzər salmağı tövsiyə edirik - log ev.) Həyatınızı sadə tutun və yerli konteyner giriş mexanizmlərindən istifadə edin. Stdout və stderr-ə qeydlər yazın - onlar avtomatik qəbul ediləcək, saxlanılacaq və indeksləşdiriləcək.

İstəsəniz, logları da yaza bilərsiniz JSON formatı. Bu yanaşma onlara metadata əlavə etməyi asanlaşdıracaq. Və onlarla birlikdə Stackdriver Logging bu metadatadan istifadə edərək qeydlərdə axtarış etmək imkanına sahib olacaq.

2. Konteynerlərin vətəndaşlığı olmayan və dəyişməz olduğundan əmin olun

Konteynerlərin Kubernetes klasterində düzgün işləməsi üçün onlar vətəndaşlığı olmayan və dəyişməz olmalıdır. Bu şərtlər yerinə yetirildikdən sonra Kubernetes öz işini görə bilər, lazım olan zaman və yerdə tətbiq obyektlərini yarada və məhv edə bilər.

Vətənsiz hər hansı bir vəziyyətin (hər cür davamlı məlumatın) konteynerdən kənarda saxlanması deməkdir. Bunun üçün, ehtiyaclardan asılı olaraq, müxtəlif növ xarici yaddaş istifadə edilə bilər: Cloud Storage, Davamlı Disklər, Redis, Bulud SQL və ya digər idarə olunan verilənlər bazası. (Qeyd. tərcümə.: Bu barədə daha çox məqaləmizdə oxuyun "Kubernetes üçün operatorlar: dövlət proqramlarını necə işə salmaq olar".)

Dəyişməzdir o deməkdir ki, konteyner ömrü boyu dəyişdirilməyəcək: yeniləmələr, yamalar, konfiqurasiya dəyişiklikləri yoxdur. Tətbiq kodunuzu yeniləmək və ya yamaq tətbiq etmək lazımdırsa, yeni şəkil yaradın və onu yerləşdirin. Konteyner konfiqurasiyasını (dinləmə portu, iş vaxtı mühiti seçimləri və s.) xaricdən daşımaq tövsiyə olunur. Secrets и ConfigMaps. Onlar yeni konteyner şəkli yaratmadan yenilənə bilər. Şəkil montajı ilə asanlıqla boru kəmərləri yaratmaq üçün istifadə edə bilərsiniz Bulud Quraşdırma. (Qeyd. tərcümə.: Biz bu məqsədlər üçün Açıq Mənbə alətindən istifadə edirik dapp.)

Google-un 7 Konteyner Ən Yaxşı Təcrübəsi
Konfiqurasiya olaraq podlara quraşdırılmış ConfigMap-dan istifadə edərək Kubernetes-də Yerləşdirmə konfiqurasiyasının yenilənməsi nümunəsi

3. İmtiyazlı konteynerlərdən çəkinin

Tətbiqləri serverlərinizdə kök kimi işlətmirsiniz, elə deyilmi? Təcavüzkar proqrama daxil olarsa, o, kök girişi əldə edəcək. Eyni mülahizələr imtiyazlı konteynerlərin işləməməsinə də aiddir. Əgər hostda parametrləri dəyişdirmək lazımdırsa, konteynerə xüsusi verə bilərsiniz imkanları seçimindən istifadə etməklə securityContext Kubernetesdə. Dəyişmək lazımdırsa sistemlər, Kubernetes var ayrı mücərrəd bunun üçün. Ümumiyyətlə, ən yaxşı şəkildə istifadə etməyə çalışın içində- oxşar imtiyazlı əməliyyatları yerinə yetirmək üçün yan vaqon konteynerləri. Onların nə daxili, nə də xarici trafik üçün əlçatan olması lazım deyil.

Bir klaster idarə edirsinizsə, istifadə edə bilərsiniz Pod Təhlükəsizlik Siyasəti imtiyazlı konteynerlərin istifadəsinə məhdudiyyətlər üçün.

4. Kök kimi işləməkdən çəkinin

İmtiyazlı konteynerlər artıq müzakirə olunub, lakin buna əlavə olaraq konteyner daxilində proqramları kök kimi işə salmasanız daha yaxşı olar. Təcavüzkar kodun icrasına imkan verən kök hüquqlarına malik proqramda uzaqdan boşluq tapsa və bundan sonra o, hələ naməlum zəiflik vasitəsilə konteyneri tərk edə bilsə, o, hostda kök qazanacaq.

Bunun qarşısını almağın ən yaxşı yolu heç bir şeyi kök kimi işə salmamaqdır. Bunun üçün direktivdən istifadə edə bilərsiniz USER в Dockerfile və ya runAsUser Kubernetesdə. Klaster inzibatçısı həmçinin tətbiqetmə davranışını istifadə edərək konfiqurasiya edə bilər Pod Təhlükəsizlik Siyasəti.

5. Tətbiqə nəzarəti asanlaşdırın

Giriş kimi, monitorinq də proqramların idarə edilməsinin tərkib hissəsidir. Kubernetes icmasında populyar bir monitorinq həlli Prometey - monitorinq tələb edən podları və xidmətləri avtomatik aşkarlayan sistem. (Qeyd. tərcümə.: Həmçinin bax bizim ətraflı hesabat Prometheus və Kubernetes istifadə edərək monitorinq mövzusunda.) Stackdriver Kubernetes klasterlərini izləmək qabiliyyətinə malikdir və proqramların monitorinqi üçün Prometheus-un öz versiyasını ehtiva edir.

Google-un 7 Konteyner Ən Yaxşı Təcrübəsi
Stackdriver-də Kubernetes İdarə Paneli

Prometheus proqramdan ölçüləri HTTP son nöqtəsinə ötürməsini gözləyir. Bunun üçün mövcuddur Prometheus müştəri kitabxanaları. Eyni format kimi digər alətlər tərəfindən istifadə olunur Açıq siyahıyaalma и İstio.

6. Proqramın sağlamlıq vəziyyətini əlçatan edin

İstehsalda tətbiqin idarə edilməsi onun vəziyyətini bütün sistemə çatdırmaq qabiliyyəti ilə kömək edir. Tətbiq işləyir? yaxşıdır? Trafik qəbul etməyə hazırsınız? O özünü necə aparır? Bu problemi həll etməyin ən ümumi yolu sağlamlıq yoxlamalarının həyata keçirilməsidir (sağlamlıq müayinəsi). Kubernetes iki növə malikdir: canlılıq və hazırlıq zondları.

Canlılıq zondu üçün (canlılıq yoxlanılır) proqram funksionaldırsa və onun əsas asılılıqları təmin edilirsə, "200 OK" cavabını qaytaran HTTP son nöqtəsi olmalıdır. Hazırlıq sınağı üçün (xidmətə hazırlıq yoxlanılır) proqram sağlam vəziyyətdədirsə, işə salma addımları tamamlanıbsa və hər hansı etibarlı sorğu xəta ilə nəticələnmirsə, tətbiqin "200 OK" cavabını qaytaran başqa HTTP son nöqtəsi olmalıdır. Kubernetes yalnız bu yoxlamalara uyğun olaraq proqram hazır olduqda trafiki konteynerə yönləndirəcək. Canlılıq və hazırlıq vəziyyətləri arasında fərq olmadıqda iki son nöqtə birləşdirilə bilər.

Bu barədə daha çox Google-dan Developer Advocate Sandeep Dinesh-in əlaqəli məqaləsində oxuya bilərsiniz: "Kubernetes ən yaxşı təcrübələri: Hazırlıq və canlılıq zondları ilə sağlamlıq yoxlamalarının qurulması.

7. Şəkil versiyanızı diqqətlə seçin

Əksər ictimai və şəxsi şəkillərdə təsvir edilənə bənzər etiketləmə sistemindən istifadə olunur Konteynerlərin tikintisi üçün ən yaxşı təcrübələr. Şəkil yaxın bir sistem istifadə edirsə semantik versiyalaşdırma, etiketləmənin xüsusiyyətlərini nəzərə almaq lazımdır. Məsələn, etiket latest tez-tez şəkildən şəkilə keçə bilər - proqnozlaşdırıla bilən və təkrarlana bilən qurma və quraşdırmalara ehtiyacınız varsa, etibar etmək olmaz.

Etiketdən istifadə edə bilərsiniz X.Y.Z (onlar demək olar ki, həmişə dəyişməzdir), lakin bu halda, təsvirin bütün yamaqlarını və yeniləmələrini izləyin. Əgər istifadə etdiyiniz şəklin etiketi varsa X.Y, bu qızıl orta üçün yaxşı seçimdir. Onu seçməklə siz avtomatik olaraq yamaqlar alırsınız və eyni zamanda tətbiqin stabil versiyasına etibar edirsiniz.

Tərcüməçidən PS

Bloqumuzda da oxuyun:

Mənbə: www.habr.com

Добавить комментарий