Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Kubernetes Ən Yaxşı Təcrübələri. Kiçik konteynerlərin yaradılması
Kubernetes Ən Yaxşı Təcrübələri. Ad sahəsi ilə Kubernetes təşkilatı
Kubernetes Ən Yaxşı Təcrübələri. Hazırlıq və Canlılıq Testləri ilə Kubernetes Sağlamlığının yoxlanılması
Kubernetes Ən Yaxşı Təcrübələri. Resurs tələblərinin və limitlərinin təyin edilməsi
Kubernetes Ən Yaxşı Təcrübələri. Düzgün bağlama dayandırın

Əgər siz də əksər insanlar kimisinizsə, çox güman ki, klasterinizdən kənarda işləyən resurslardan istifadə edirsiniz. Ola bilsin ki, siz mətn mesajları göndərmək üçün Taleo API-dən istifadə edirsiniz və ya Google Cloud Vision API-dən istifadə edərək şəkilləri təhlil edirsiniz.

Bütün mühitlərinizdə eyni server tərəfi sorğu son nöqtəsindən istifadə edirsinizsə və serverlərinizi Kubernetes-ə köçürməyi planlaşdırmırsınızsa, kodunuzda xidmətin son nöqtəsinin olması tamamilə yaxşıdır. Bununla belə, hadisələrin inkişafı üçün bir çox başqa ssenarilər var. Bu Kubernetes Ən Yaxşı Təcrübələr seriyasında siz həm klaster daxilində, həm də xaricdə xidmətləri kəşf etmək üçün Kubernetes-in daxili mexanizmlərindən necə istifadə edəcəyinizi öyrənəcəksiniz.

Ümumi xarici xidmətin nümunəsi Kubernetes klasterindən kənarda işləyən verilənlər bazasıdır. Bütün giriş üçün bir son nöqtədən istifadə edən Google Cloud Data Store və ya Google Cloud Spanner kimi bulud verilənlər bazalarından fərqli olaraq, verilənlər bazalarının əksəriyyətində müxtəlif vəziyyətlər üçün ayrıca son nöqtələr var.
MySQL və MongoDB kimi ənənəvi verilənlər bazalarından istifadə üçün ən yaxşı təcrübələr adətən müxtəlif mühitlər üçün müxtəlif komponentlərə qoşulmağınız deməkdir. İstehsal məlumatları üçün böyük bir maşına və sınaq mühiti üçün daha kiçik bir maşına sahib ola bilərsiniz. Onların hər birinin öz IP ünvanı və ya domen adı olacaq, lakin yəqin ki, bir mühitdən digərinə keçərkən kodunuzu dəyişmək istəməyəcəksiniz. Beləliklə, bu ünvanları sərt kodlaşdırmaq əvəzinə, yerli Kubernetes xidmətləri ilə eyni şəkildə Kubernetes-in daxili DNS əsaslı xarici xidmət kəşfindən istifadə edə bilərsiniz.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Tutaq ki, siz Google Compute Engine-də MongoDB verilənlər bazası işlədirsiniz. Onu klasterə köçürməyi bacarana qədər bu hibrid dünyada ilişib qalacaqsınız.

Xoşbəxtlikdən, həyatınızı bir az asanlaşdırmaq üçün statik Kubernetes xidmətlərindən istifadə edə bilərsiniz. Bu nümunədə mən Google Cloud Launcher istifadə edərək MongoDB server yaratdım. Eyni şəbəkədə (və ya Kubernetes klaster VPC) yaradıldığı üçün ona yüksək performanslı daxili IP ünvanından istifadə etməklə daxil olur.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Bu, Google Cloud-da defolt parametrdir, ona görə də heç nəyi konfiqurasiya etməyə ehtiyac yoxdur. İndi bir IP ünvanınız olduğundan, ilk addım bir xidmət yaratmaqdır. Bu xidmət üçün pod seçicilərin olmadığını görə bilərsiniz. Yəni trafiki hara göndərəcəyimizi bilməyəcək bir xidmət yaratdıq. Bu, bu xidmətdən trafik qəbul edəcək son nöqtə obyektini əl ilə yaratmağa imkan verəcək.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Aşağıdakı kod nümunəsi göstərir ki, son nöqtələr xidmətlə eyni monqo adından istifadə edərək verilənlər bazası üçün IP ünvanını təyin edir.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Kubernetes adi Kubernetes Podları kimi son nöqtələri tapmaq üçün bütün IP ünvanlarından istifadə edəcək, beləliklə, indi siz verilənlər bazasına yuxarıdakı mongodb://mongo adına sadə bir əlaqə xətti ilə daxil ola bilərsiniz. Kodunuzda IP ünvanlarından istifadə etməyə ümumiyyətlə ehtiyac yoxdur.

Gələcəkdə IP ünvanları dəyişərsə, siz sadəcə olaraq son nöqtələrinizi yeni IP ünvanı ilə yeniləyə bilərsiniz və tətbiqlərinizin heç bir əlavə şəkildə dəyişdirilməsinə ehtiyac qalmayacaq.

Əgər üçüncü tərəf hostunda yerləşdirilən verilənlər bazasından istifadə edirsinizsə, çox güman ki, hostun sahibləri sizə qoşulmaq üçün Vahid Resurs İdentifikatoru URI-ni təqdim ediblər. Beləliklə, sizə IP ünvanı verilibsə, sadəcə olaraq əvvəlki üsuldan istifadə edə bilərsiniz. Bu nümunə göstərir ki, mənim mLab hostunda yerləşdirilən iki MongoDB verilənlər bazam var.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Biri developer verilənlər bazası, digəri isə istehsal bazasıdır. Bu verilənlər bazaları üçün əlaqə sətirləri belə görünür - mLab sizə dinamik URI və dinamik port təqdim edir. Gördüyünüz kimi, onlar fərqlidir.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Bunu mücərrəd etmək üçün gəlin Kubernetes-dən istifadə edək və developer verilənlər bazasına qoşulaq. Siz xarici Kubernetes xidmət adı yarada bilərsiniz, bu sizə trafiki xarici xidmətə yönləndirəcək statik xidmət verəcək.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Bu xidmət ləpə səviyyəsində sadə CNAME yönləndirməsini minimal performans təsiri ilə həyata keçirəcək. Bunun sayəsində daha sadə bir əlaqə simindən istifadə edə bilərsiniz.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Lakin xarici ad CNAME yönləndirməsindən istifadə etdiyi üçün port yönləndirməsini həyata keçirə bilməz. Buna görə də, bu həll yalnız statik portlar üçün tətbiq edilir və dinamik portlarla istifadə edilə bilməz. Lakin mLab Free Tier istifadəçiyə standart olaraq dinamik port nömrəsi verir və siz onu dəyişə bilməzsiniz. Bu o deməkdir ki, inkişaf və məhsul üçün müxtəlif əlaqə əmr sətirlərinə ehtiyacınız var. Pis odur ki, bu, sizdən port nömrəsini kodlaşdırmağı tələb edəcək. Beləliklə, port yönləndirməsini necə işə salırsınız?

İlk addım URI-dən IP ünvanını əldə etməkdir. Nslookup, hostname və ya URI-yə ping göndərsəniz, verilənlər bazasının IP ünvanını əldə edə bilərsiniz. Xidmət sizə bir neçə IP ünvanını qaytarırsa, bu ünvanların hamısı obyektin son nöqtələrində istifadə edilə bilər.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Nəzərə almaq lazım olan bir şey odur ki, IP URI-lər xəbərdarlıq etmədən dəyişə bilər və bu, onları istehsalda istifadə etmək üçün olduqca risklidir. Bu IP ünvanından istifadə edərək, port göstərmədən uzaq verilənlər bazasına qoşula bilərsiniz. Beləliklə, Kubernetes xidməti port yönləndirməni kifayət qədər şəffaf şəkildə həyata keçirir.

Kubernetes ən yaxşı təcrübələri. Xarici xidmətlərin xəritələşdirilməsi

Xəritəçəkmə və ya xarici resursları daxili resurslara uyğunlaşdırmaq sizə gələcəkdə klaster daxilində bu xidmətlərdən istifadə etmək üçün çeviklik verir və eyni zamanda refaktorinq səylərini minimuma endirir. O, həmçinin idarə etməyi və şirkətinizin hansı xarici xidmətlərdən istifadə etdiyi barədə məlumat verməyi asanlaşdırır.

Tezliklə davamı olacaq...

Bəzi reklamlar 🙂

Bizimlə qaldığınız üçün təşəkkür edirik. Məqalələrimiz xoşunuza gəlirmi? Daha maraqlı məzmun görmək istəyirsiniz? Sifariş verməklə və ya dostlarınıza tövsiyə etməklə bizə dəstək olun, developers üçün bulud VPS 4.99 dollardan, Sizin üçün bizim tərəfimizdən icad edilmiş giriş səviyyəli serverlərin unikal analoqu: VPS (KVM) E5-2697 v3 (6 nüvəli) 10GB DDR4 480GB SSD 1Gbps haqqında 19 dollardan bütün həqiqət və ya serveri necə paylaşmaq olar? (RAID1 və RAID10, 24 nüvəyə qədər və 40 GB DDR4 ilə mövcuddur).

Dell R730xd Amsterdamdakı Equinix Tier IV məlumat mərkəzində 2 dəfə ucuzdur? Yalnız burada 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV 199$-dan başlayan qiymətlərlə Hollandiyada! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 dollardan! haqqında oxuyun İnfrastruktur korporasiyasını necə qurmaq olar. bir qəpik üçün 730 avro dəyərində Dell R5xd E2650-4 v9000 serverlərinin istifadəsi ilə sinif?

Mənbə: www.habr.com

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