Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes

Kub üzərində kub, metaklasterlər, pətəklər, resursların paylanması

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 1. Alibaba Cloud-da Kubernetes ekosistemi

2015-ci ildən bəri Kubernetes üçün Alibaba Bulud Konteyner Xidməti (ACK) Alibaba Cloud-da ən sürətlə böyüyən bulud xidmətlərindən biridir. O, çoxsaylı müştərilərə xidmət göstərir və həmçinin Alibaba-nın daxili infrastrukturunu və şirkətin digər bulud xidmətlərini dəstəkləyir.

Dünya səviyyəli bulud provayderlərinin oxşar konteyner xidmətlərində olduğu kimi, bizim əsas prioritetlərimiz etibarlılıq və əlçatanlıqdır. Buna görə də, on minlərlə Kubernetes klasteri üçün genişlənən və qlobal olaraq əlçatan platforma yaradılmışdır.

Bu yazıda biz bulud infrastrukturu üzərində çoxlu sayda Kubernetes klasterini, həmçinin əsas platformanın arxitekturasını idarə etmək təcrübəmizi bölüşəcəyik.

Giriş

Kubernetes buludda müxtəlif iş yükləri üçün faktiki standarta çevrildi. Şəkildə göstərildiyi kimi. Yuxarıdakı 1-də, getdikcə daha çox Alibaba Bulud tətbiqi indi Kubernetes klasterlərində işləyir: dövlət və vətəndaşlığı olmayan proqramlar, həmçinin proqram menecerləri. Kubernetes rəhbərliyi həmişə infrastruktur quran və saxlayan mühəndislər üçün maraqlı və ciddi müzakirə mövzusu olub. Alibaba Cloud kimi bulud provayderlərinə gəldikdə, miqyaslaşdırma məsələsi ön plana çıxır. Bu miqyasda Kubernetes klasterlərini necə idarə etmək olar? Biz artıq 10 qovşaqlı nəhəng Kubernetes klasterlərini idarə etmək üçün ən yaxşı təcrübələri əhatə etmişik. Əlbəttə ki, bu, maraqlı bir miqyas problemidir. Ancaq başqa bir miqyas var: kəmiyyət klasterlərin özləri.

Bu mövzunu bir çox ACK istifadəçisi ilə müzakirə etdik. Onların əksəriyyəti onlarla, hətta yüzlərlə kiçik və ya orta ölçülü Kubernetes klasterlərini idarə etməyi seçirlər. Bunun yaxşı səbəbləri var: potensial zərərin məhdudlaşdırılması, müxtəlif komandalar üçün klasterlərin ayrılması, sınaq üçün virtual klasterlərin yaradılması. Əgər ACK bu istifadə modeli ilə qlobal auditoriyaya xidmət etməyi hədəfləyirsə, o, 20-dən çox regionda çoxlu sayda klasteri etibarlı və səmərəli şəkildə idarə etməlidir.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 2. Çoxlu sayda Kubernetes klasterlərinin idarə olunması problemləri

Bu miqyasda klasterlərin idarə edilməsində əsas problemlər hansılardır? Şəkildə göstərildiyi kimi, həll edilməli olan dörd məsələ var:

  • Heterogenlik

ACK müxtəlif növ klasterləri, o cümlədən standart, serversiz, Edge, Windows və digərləri dəstəkləməlidir. Fərqli klasterlər fərqli seçimlər, komponentlər və hostinq modelləri tələb edir. Bəzi müştərilərin xüsusi halları üçün fərdiləşdirmə ilə bağlı yardım lazımdır.

  • Müxtəlif klaster ölçüləri

Klasterlərin ölçüləri müxtəlifdir, bir neçə qabıqlı bir neçə qovşaqdan minlərlə qövslü on minlərlə düyünlərə qədər. Resurs tələbləri də çox dəyişir. Səhv resurs bölgüsü performansa təsir edə bilər və ya hətta uğursuzluğa səbəb ola bilər.

  • Fərqli versiyalar

Kubernetes çox sürətlə inkişaf edir. Yeni versiyalar bir neçə aydan bir buraxılır. Müştərilər həmişə yeni funksiyaları sınamağa hazırdırlar. Beləliklə, onlar sınaq yükünü Kubernetes-in yeni versiyalarına, istehsal yükünü isə stabil olanlara yerləşdirmək istəyirlər. Bu tələbi yerinə yetirmək üçün ACK sabit versiyaları qoruyarkən daim müştərilərə Kubernetes-in yeni versiyalarını təqdim etməlidir.

  • Təhlükəsizlik Uyğunluğu

Klasterlər müxtəlif bölgələrdə paylanır. Beləliklə, onlar müxtəlif təhlükəsizlik tələblərinə və rəsmi qaydalara uyğun olmalıdırlar. Məsələn, Avropadakı klaster GDPR-ə uyğun olmalıdır, Çindəki maliyyə buludunda isə əlavə qorunma təbəqələri olmalıdır. Bu tələblər məcburidir və onlara məhəl qoymamaq yolverilməzdir, çünki bu, bulud platformasının müştəriləri üçün böyük risklər yaradır.

ACK platforması yuxarıda göstərilən problemlərin əksəriyyətini həll etmək üçün nəzərdə tutulmuşdur. Hal-hazırda dünya üzrə 10 mindən çox Kubernetes klasterini etibarlı və sabit şəkildə idarə edir. Gəlin buna bir neçə əsas dizayn/memarlıq prinsipləri vasitəsilə necə nail olunduğuna baxaq.

Layihə

Kub üzərində kub və pətək

Mərkəzləşdirilmiş iyerarxiyadan fərqli olaraq, hüceyrə əsaslı arxitektura adətən platformanı vahid məlumat mərkəzindən kənara çıxarmaq və ya fəlakətin bərpası əhatəsini genişləndirmək üçün istifadə olunur.

Alibaba Cloud-da hər bir bölgə bir neçə zonadan (AZ) ibarətdir və adətən xüsusi məlumat mərkəzinə uyğun gəlir. Böyük bir bölgədə (məsələn, Huangzhou) tez-tez ACK ilə işləyən minlərlə Kubernetes müştəri klasteri var.

ACK Kubernetes-in özündən istifadə edərək bu Kubernetes klasterlərini idarə edir, yəni müştəri Kubernetes klasterlərini idarə etmək üçün işləyən Kubernetes metaklasterimiz var. Bu memarlıq həm də “kube-on-kube” (KoK) adlanır. KoK arxitekturası müştəri klasterlərinin idarə edilməsini asanlaşdırır, çünki klasterin yerləşdirilməsi sadə və deterministikdir. Daha da əhəmiyyətlisi, biz doğma Kubernetes xüsusiyyətlərindən təkrar istifadə edə bilərik. Məsələn, yerləşdirmə yolu ilə API serverlərini idarə etmək, birdən çox etcd-ləri idarə etmək üçün etcd operatorundan istifadə etmək. Belə rekursiya həmişə xüsusi zövq gətirir.

Bir neçə Kubernetes metaklasteri müştərilərin sayından asılı olaraq bir regionda yerləşdirilir. Biz bu metaklasterləri hüceyrə adlandırırıq. Bütün zonanın uğursuzluğundan qorunmaq üçün ACK bir regionda çox aktiv yerləşdirmələri dəstəkləyir: metaklaster Kubernetes müştəri klasterinin master komponentlərini bir neçə zonada paylayır və onları eyni vaxtda, yəni çox aktiv rejimdə işlədir. Ustanın etibarlılığını və səmərəliliyini təmin etmək üçün ACK komponentlərin yerləşdirilməsini optimallaşdırır və API server və etcd-nin bir-birinə yaxın olmasını təmin edir.

Bu model Kubernetes-i səmərəli, çevik və etibarlı şəkildə idarə etməyə imkan verir.

Metaklaster resurslarının planlaşdırılması

Artıq qeyd etdiyimiz kimi, hər bir regionda metaklasterlərin sayı müştərilərin sayından asılıdır. Bəs hansı nöqtədə yeni metaklaster əlavə etmək lazımdır? Bu tipik resurs planlaşdırma problemidir. Bir qayda olaraq, mövcud metaklasterlər bütün resurslarını tükəndikdə yenisini yaratmaq adətdir.

Məsələn, şəbəkə resurslarını götürək. KoK arxitekturasında müştəri klasterlərindən olan Kubernetes komponentləri metaklasterdə podlar kimi yerləşdirilir. istifadə edirik Terway (Şəkil 3) konteyner şəbəkəsinin idarə edilməsi üçün Alibaba Cloud tərəfindən hazırlanmış yüksək performanslı plagindir. O, zəngin təhlükəsizlik siyasətləri dəsti təqdim edir və Alibaba Bulud Elastik Şəbəkə İnterfeysi (ENI) vasitəsilə müştərilərin virtual şəxsi buludlarına (VPC) qoşulmağa imkan verir. Şəbəkə resurslarını metaklasterdə qovşaqlar, podlar və xidmətlər arasında effektiv şəkildə paylamaq üçün onların virtual özəl buludların metaklasterində istifadəsinə diqqətlə nəzarət etməliyik. Şəbəkə resursları sona çatdıqda yeni bir hüceyrə yaradılır.

Hər bir metaklasterdə müştəri klasterlərinin optimal sayını müəyyən etmək üçün biz öz xərclərimizi, sıxlıq tələblərini, resurs kvotasını, etibarlılıq tələblərini və statistikanı da nəzərə alırıq. Yeni metaklaster yaratmaq qərarı bütün bu məlumatlar əsasında qəbul edilir. Nəzərə alın ki, kiçik klasterlər gələcəkdə çox genişlənə bilər, beləliklə, klasterlərin sayı dəyişməz qalsa belə, resurs istehlakı artır. Biz adətən hər klasterin böyüməsi üçün kifayət qədər boş yer buraxırıq.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 3. Terway şəbəkə arxitekturası

Sihirbaz komponentlərinin müştəri klasterləri arasında miqyaslanması

Sehrbaz komponentlərinin müxtəlif resurs ehtiyacları var. Onlar klasterdəki qovşaqların və podların sayından, APIServer ilə qarşılıqlı əlaqədə olan qeyri-standart kontrollerlərin/operatorların sayından asılıdır.

ACK-da hər bir Kubernetes müştəri klasteri ölçü və iş vaxtı tələblərinə görə fərqlənir. Sehrbaz komponentlərinin yerləşdirilməsi üçün universal konfiqurasiya yoxdur. Böyük bir müştəri üçün səhvən aşağı resurs limiti təyin etsək, onda onun klasteri yükün öhdəsindən gələ bilməyəcək. Bütün klasterlər üçün mühafizəkar yüksək həddi təyin etsəniz, resurslar boşa çıxacaq.

Etibarlılıq və qiymət arasında incə bir mübadilə tapmaq üçün ACK tipli sistemdən istifadə edir. Məhz, biz klasterlərin üç növünü müəyyən edirik: kiçik, orta və böyük. Hər növün ayrıca resurs bölgüsü profili var. Növ sehrbaz komponentlərinin yükünə, qovşaqların sayına və digər amillərə əsasən müəyyən edilir. Klaster növü zamanla dəyişə bilər. ACK bu amilləri davamlı olaraq izləyir və müvafiq olaraq yuxarı/aşağı tip edə bilər. Klaster növü dəyişdirildikdən sonra minimum istifadəçi müdaxiləsi ilə resurs bölgüsü avtomatik olaraq yenilənir.

Biz bu sistemi daha incə miqyaslı və daha dəqiq tip yeniləməsi ilə təkmilləşdirməyə çalışırıq ki, bu dəyişikliklər daha rahat baş versin və daha iqtisadi məna kəsb etsin.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 4. Ağıllı çoxmərhələli tip keçid

Müştəri qruplarının miqyasda təkamülü

Əvvəlki bölmələr çoxlu sayda Kubernetes klasterlərinin idarə olunmasının bəzi aspektlərini əhatə edirdi. Bununla belə, həll edilməli olan başqa bir problem var: klasterlərin təkamülü.

Kubernetes bulud dünyasının “Linux”udur. Davamlı olaraq yenilənir və daha modul olur. Biz daim müştərilərimizə yeni versiyalar təqdim etməli, zəiflikləri aradan qaldırmalı və mövcud klasterləri yeniləməli, həmçinin çoxlu sayda əlaqəli komponentləri (CSI, CNI, Device Plugin, Scheduler Plugin və bir çox başqaları) idarə etməliyik.

Nümunə olaraq Kubernetes komponent idarəetməsini götürək. Başlamaq üçün biz bütün bu əlaqəli komponentlərin qeydiyyatı və idarə edilməsi üçün mərkəzləşdirilmiş sistem hazırladıq.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 5. Çevik və birləşdirilə bilən komponentlər

İrəliyə keçməzdən əvvəl yeniləmənin uğurlu olduğundan əmin olmalısınız. Bunun üçün biz komponentlərin funksionallığını yoxlamaq üçün sistem hazırlamışıq. Yoxlama yeniləmədən əvvəl və sonra həyata keçirilir.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 6. Klaster komponentlərinin ilkin yoxlanılması

Bu komponentləri tez və etibarlı şəkildə yeniləmək üçün fasiləsiz yerləşdirmə sistemi qismən irəliləmə (boz rəng), fasilələr və digər funksiyalar dəstəyi ilə işləyir. Standart Kubernetes nəzarətçiləri bu istifadə halı üçün uyğun deyil. Buna görə də, klaster komponentlərini idarə etmək üçün biz plagin və köməkçi idarəetmə modulu (yan arabanın idarə edilməsi) daxil olmaqla bir sıra ixtisaslaşmış nəzarətçilər hazırlamışıq.

Məsələn, BroadcastJob nəzarətçisi hər bir işçi maşınındakı komponentləri yeniləmək və ya hər bir maşındakı qovşaqları yoxlamaq üçün nəzərdə tutulmuşdur. Yayım işi DaemonSet kimi klasterdəki hər bir qovşaqda pod işləyir. Bununla belə, DaemonSet həmişə podu uzun müddət işlək vəziyyətdə saxlayır, BroadcastJob isə onu çökdürür. Yayım nəzarətçisi həmçinin yeni qoşulmuş qovşaqlarda podları işə salır və qovşaqları lazımi komponentlərlə işə salır. 2019-cu ilin iyun ayında biz şirkət daxilində özümüz istifadə etdiyimiz OpenKruise avtomatlaşdırma mühərrikinin mənbə kodunu açdıq.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 7. OpenKurise bütün qovşaqlarda Broadcast tapşırığının icrasını təşkil edir

Müştərilərə düzgün klaster konfiqurasiyalarını seçməkdə kömək etmək üçün biz həmçinin Serverless, Edge, Windows və Bare Metal profilləri daxil olmaqla əvvəlcədən təyin edilmiş profillər dəstini təqdim edirik. Landşaft genişləndikcə və müştərilərimizin ehtiyacları artdıqca, biz yorucu quraşdırma prosesini sadələşdirmək üçün daha çox profil əlavə edəcəyik.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 8. Müxtəlif ssenarilər üçün təkmil və çevik klaster profilləri

Məlumat mərkəzlərində qlobal müşahidə

Aşağıdakı şəkildə göstərildiyi kimi. 9, Alibaba Cloud Container bulud xidməti dünyanın iyirmi bölgəsində yerləşdirilib. Bu miqyası nəzərə alsaq, ACK-nın əsas məqsədlərindən biri müştəri klasteri problemlə qarşılaşarsa, vəziyyətə tez reaksiya verə bilməmiz üçün işləyən klasterlərin vəziyyətini asanlıqla izləməkdir. Başqa sözlə, siz bütün regionlardakı müştəri klasterlərindən real vaxt rejimində statistik məlumatları səmərəli və təhlükəsiz şəkildə toplamağa və nəticələri vizual şəkildə təqdim etməyə imkan verəcək həll yolu tapmalısınız.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 9. Alibaba Cloud Container xidmətinin iyirmi regionda qlobal tətbiqi

Bir çox Kubernetes monitorinq sistemləri kimi biz də Prometheus-u əsas alətimiz kimi istifadə edirik. Hər bir metaklaster üçün Prometheus agentləri aşağıdakı göstəriciləri toplayır:

  • Əsas resurslar (CPU, yaddaş, disk və s.) və şəbəkə bant genişliyi kimi ƏS göstəriciləri.
  • kube-apiserver, kube-nəzarətçi-meneceri və kube-planlaşdırıcı kimi metaklaster və müştəri klaster idarəetmə sistemi üçün ölçülər.
  • kubernetes-state-metrics və cadvisor-dan ölçülər.
  • disk yazma vaxtı, verilənlər bazası ölçüsü, qovşaqlar arasında keçid qabiliyyəti və s. kimi ölçülər.

Qlobal statistika tipik çoxqatlı toplama modelindən istifadə etməklə toplanır. Hər bir metaklasterdən monitorinq məlumatları əvvəlcə hər bir regionda toplanır və sonra ümumi mənzərəni göstərən mərkəzi serverə göndərilir. Hər şey federasiya mexanizmi ilə işləyir. Hər bir məlumat mərkəzindəki Prometheus serveri həmin məlumat mərkəzindən ölçüləri toplayır və mərkəzi Prometheus serveri monitorinq məlumatlarının toplanmasına cavabdehdir. AlertManager mərkəzi Prometheus-a qoşulur və lazım olduqda DingTalk, e-poçt, SMS və s. vasitəsilə xəbərdarlıqlar göndərir. Vizuallaşdırma - Grafana-dan istifadə etməklə.

Şəkil 10-da monitorinq sistemini üç səviyyəyə bölmək olar:

  • Sərhəd səviyyəsi

Mərkəzdən ən uzaq təbəqə. Prometheus Edge Server hər bir metaklasterdə işləyir, eyni şəbəkə domenində meta və müştəri klasterlərindən ölçüləri toplayır.

  • Kaskad səviyyəsi

Prometey kaskad təbəqəsinin funksiyası bir çox bölgədən monitorinq məlumatlarını toplamaqdır. Bu serverlər Çin, Asiya, Avropa və Amerika kimi daha böyük coğrafi vahidlər səviyyəsində fəaliyyət göstərir. Klasterlər böyüdükcə bölgə bölünə bilər və sonra hər yeni böyük bölgədə kaskad səviyyəli Prometheus serveri görünəcək. Bu strategiya ilə siz lazım olduqda rəvan şəkildə miqyaslaya bilərsiniz.

  • Mərkəzi səviyyə

Mərkəzi Prometheus serveri bütün kaskad serverlərə qoşulur və son məlumatların yığılmasını həyata keçirir. Etibarlılıq üçün eyni kaskad serverlərinə qoşulmuş iki mərkəzi Prometheus nümunəsi fərqli zonalarda qaldırıldı.

Alibaba Cloud on minlərlə Kubernetes klasterini necə idarə edir... Kubernetes
düyü. 10. Prometey federasiya mexanizminə əsaslanan qlobal çoxsəviyyəli monitorinq arxitekturası

Xülasə

Kubernetes əsaslı bulud həlləri sənayemizi dəyişməyə davam edir. Alibaba Bulud konteyner xidməti təhlükəsiz, etibarlı və yüksək performanslı hostinq təmin edir - bu, ən yaxşı Kubernetes bulud hostinqlərindən biridir. Alibaba Cloud komandası Açıq Mənbə və açıq mənbə cəmiyyətinin prinsiplərinə çox inanır. Biz mütləq bulud texnologiyalarının istismarı və idarə edilməsi sahəsində biliklərimizi bölüşməyə davam edəcəyik.

Mənbə: www.habr.com

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