Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes

Cube-on-Cube, Metacluster, Hunneg, Ressourceverdeelung

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 1. Kubernetes Ökosystem op Alibaba Cloud

Zënter 2015 ass Alibaba Cloud Container Service fir Kubernetes (ACK) ee vun de séierst wuessend Cloud Servicer an Alibaba Cloud. Et servéiert vill Clienten an ënnerstëtzt och Alibaba intern Infrastruktur an déi aner Cloud Servicer vun der Firma.

Wéi mat ähnlechen Container Servicer vu Weltklass Cloud Ubidder, eis Haaptprioritéite sinn Zouverlässegkeet an Disponibilitéit. Dofir ass eng skalierbar a global zougänglech Plattform fir Zéngdausende vu Kubernetes Cluster geschaf ginn.

An dësem Artikel wäerte mir eis Erfahrung deelen fir eng grouss Zuel vu Kubernetes Cluster op Cloud Infrastruktur ze managen, souwéi d'Architektur vun der Basisdaten Plattform.

Element

Kubernetes ass den de facto Standard fir eng Rei vun Aarbechtslaaschten an der Wollek ginn. Wéi an der Fig. 1 uewen, méi a méi Alibaba Cloud Uwendungen lafen elo op Kubernetes Cluster: stateful a stateless Uwendungen, souwéi Applikatiounsmanager. Kubernetes Gestioun war ëmmer en interessant an eescht Thema vun Diskussioun fir Ingenieuren déi Infrastruktur bauen an erhalen. Wann et ëm Cloud Ubidder wéi Alibaba Cloud kënnt, kënnt d'Thema vun der Skaléierung op de Virdergrond. Wéi verwalten ech Kubernetes Cluster op dëser Skala? Mir hu scho bescht Praktiken iwwerdeckt fir enorm 10 Node Kubernetes Cluster ze managen. Natierlech ass dëst en interessant Skalaproblem. Awer et gëtt eng aner Skala: Quantitéit d'Cluster selwer.

Mir hunn dëst Thema mat villen ACK Benotzer diskutéiert. Déi meescht vun hinnen wielen Dosende, wann net Honnerte, vu klengen oder mëttelgrousse Kubernetes Cluster. Et gi gutt Grënn dofir: potenziell Schued limitéieren, Cluster fir verschidden Équipen trennen, virtuell Cluster fir Tester erstellen. Wann ACK zielt fir e globale Publikum mat dësem Benotzungsmodell ze déngen, muss et zouverlässeg an effizient eng grouss Zuel vu Cluster iwwer méi wéi 20 Regiounen verwalten.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 2. Probleemer fir eng grouss Zuel vu Kubernetes Cluster ze managen

Wat sinn d'Haaptfuerderunge fir Cluster op dëser Skala ze managen? Wéi an der Figur gewisen, ginn et véier Themen ze këmmeren:

  • Heterogenitéit

ACK soll verschidden Aarte vu Cluster ënnerstëtzen, dorënner Standard, Serverlos, Edge, Windows, a verschidde anerer. Verschidde Cluster erfuerderen verschidden Optiounen, Komponenten a Hostingmodeller. E puer Cliente brauchen Hëllef mat Personnalisatioun fir hir spezifesch Fäll.

  • Verschidde Clustergréissten

Cluster variéieren an der Gréisst: vun e puer Node mat e puer Pods bis Zéngdausende vu Node mat Dausende vu Pods. Ressource Ufuerderunge variéieren och immens. Eng falsch Ressourceallokatioun kann d'Performance beaflossen oder souguer Versoen verursaachen.

  • Verschidde Versiounen

Kubernetes entwéckelt sech ganz séier. Nei Versioune ginn all puer Méint verëffentlecht. Clienten sinn ëmmer bereet nei Fonctiounen ze probéieren. Also wëllen se d'Testbelaaschtung op déi nei Versioune vu Kubernetes setzen an d'Produktiounslaascht op déi stabil. Fir dës Ufuerderung z'erreechen, muss ACK kontinuéierlech nei Versioune vu Kubernetes u Clienten liwweren, wärend stabil Versioune behalen.

  • Sécherheetskonformitéit

Cluster sinn iwwer verschidde Regiounen verdeelt. Als solch musse se verschidde Sécherheetsanforderungen an offiziell Reglementer respektéieren. Zum Beispill muss e Stärekoup an Europa GDPR konform sinn, während eng Finanzwollek a China zousätzlech Schichten vu Schutz muss hunn. Dës Ufuerderunge sinn obligatoresch an et ass inakzeptabel se ze ignoréieren, well dëst enorm Risike fir Cliente vun der Cloud Plattform entsteet.

D'ACK Plattform ass entwéckelt fir déi meescht vun den uewe genannte Probleemer ze léisen. Et geréiert de Moment zouverlässeg a stabil méi wéi 10 Tausend Kubernetes Cluster weltwäit. Loosst eis kucken wéi dëst erreecht gouf, ënner anerem duerch verschidde Schlëssel Design / Architekturprinzipien.

Design

Cube-op-Cube an Hunneg

Am Géigesaz zu enger zentraliséierter Hierarchie gëtt Zell-baséiert Architektur typesch benotzt fir eng Plattform iwwer en eenzegen Datenzenter ze skaléieren oder den Ëmfang vun der Katastropherhuelung auszebauen.

All Regioun an der Alibaba Cloud besteet aus e puer Zonen (AZ) a entsprécht normalerweis engem spezifesche Rechenzentrum. An enger grousser Regioun (zB Huangzhou) ginn et dacks Dausende vu Kubernetes Clientcluster déi ACK lafen.

ACK geréiert dës Kubernetes Cluster mat Kubernetes selwer, dat heescht datt mir e Kubernetes Metacluster hunn fir de Client Kubernetes Cluster ze managen. Dës Architektur gëtt och "kube-on-kube" (KoK) genannt. D'KoK Architektur vereinfacht d'Gestioun vu Client Cluster well Cluster Deployment einfach an deterministesch ass. Méi wichteg, kënne mir gebierteg Kubernetes Funktiounen nei benotzen. Zum Beispill d'Gestioun vun API Serveren duerch Deployment, benotzt den etcd Bedreiwer fir verschidde etcds ze managen. Esou Rekursioun bréngt ëmmer speziell Freed.

Verschidde Kubernetes Metacluster ginn an enger Regioun ofgesat, ofhängeg vun der Unzuel vun de Clienten. Mir nennen dës Metacluster Zellen. Fir géint de Versoen vun enger ganzer Zone ze schützen, ënnerstëtzt ACK Multi-aktive Deployementer an enger eenzeger Regioun: de Metacluster verdeelt Kubernetes Client Cluster Master Komponenten iwwer verschidde Zonen a leeft se gläichzäiteg, dat heescht am Multi-aktive Modus. Fir d'Zouverlässegkeet an d'Effizienz vum Meeschter ze garantéieren, optiméiert ACK d'Placement vun de Komponenten a garantéiert datt den API Server an etcd no beieneen sinn.

Dëse Modell erlaabt Iech Kubernetes effizient, flexibel an zouverlässeg ze verwalten.

Metacluster Ressource Planung

Wéi mir scho gesot hunn, hänkt d'Zuel vun de Metacluster an all Regioun vun der Unzuel vun de Clienten of. Awer op wéi engem Punkt en neie Metacluster derbäi ze ginn? Dëst ass en typesche Ressourceplanungsproblem. Als Regel, ass et üblech fir en neien ze kreéieren wann existent Metacluster all hir Ressourcen erschöpft hunn.

Loosst d'Netz Ressourcen huelen, zum Beispill. An der KoK Architektur ginn Kubernetes Komponenten aus Clientcluster als Pods an engem Metacluster ofgebaut. Mir benotzen Terway (Fig. 3) ass en High-Performance Plugin entwéckelt vun Alibaba Cloud fir Container-Netzwierkverwaltung. Et bitt e räiche Set vu Sécherheetspolitiken an erlaabt Iech mat de virtuelle private Wolleken vun de Clienten (VPCs) duerch den Alibaba Cloud Elastic Networking Interface (ENI) ze verbannen. Fir effektiv Netzwierkressourcen iwwer Noden, Pods a Servicer an engem Metacluster ze verdeelen, musse mir hir Notzung am Metacluster vu virtuelle private Wolleken suergfälteg iwwerwaachen. Wann Netzwierkressourcen op en Enn kommen, gëtt eng nei Zell erstallt.

Fir déi optimal Zuel vu Clientcluster an all Metacluster ze bestëmmen, berücksichtegen mir och eis Käschten, Dichtfuerderungen, Ressourcequote, Zouverlässegkeetsufuerderungen a Statistiken. D'Entscheedung fir en neie Metacluster ze kreéieren gëtt baséiert op all dës Informatioun. Notéiert w.e.g. datt kleng Cluster an Zukunft staark kënne vergréisseren, sou datt de Ressourceverbrauch eropgeet, och wann d'Zuel vun de Cluster onverännert bleift. Mir verloossen normalerweis genuch fräi Plaz fir all Cluster ze wuessen.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 3. Terway Reseau Architektur

Skala Wizard Komponenten iwwer Clientcluster

Wizard Komponente hu verschidde Ressourcenbedürfnisser. Si hänke vun der Unzuel vun Noden a Pods am Cluster of, d'Zuel vun net-Standard Controller / Operatoren déi mat APIServer interagéieren.

Am ACK ënnerscheet sech all Kubernetes Clientcluster a Gréisst a Runtime Ufuerderunge. Et gëtt keng universell Konfiguratioun fir Wizard Komponenten ze placéieren. Wa mir falsch Ressourcenlimit fir e grousse Client setzen, da wäert säi Cluster net mat der Laascht eens ginn. Wann Dir eng konservativ héich Limit fir all Stärekéip setzt, ginn d'Ressourcen verschwend.

Fir e subtile Austausch tëscht Zouverlässegkeet a Käschten ze fannen, benotzt ACK en Typsystem. Mir definéieren nämlech dräi Zorte vu Stärekéip: kleng, mëttel a grouss. All Typ huet eng separat Ressource Allocatioun Profil. Den Typ gëtt bestëmmt baséiert op der Belaaschtung vun den Zauberkomponenten, d'Zuel vun de Wirbelen an aner Faktoren. De Clustertyp ka mat der Zäit änneren. ACK iwwerwaacht kontinuéierlech dës Faktoren a kann entspriechend erop / erof Typen. Wann de Clustertyp geännert gëtt, gëtt d'Ressourceallokatioun automatesch mat minimalem Benotzerinterventioun aktualiséiert.

Mir schaffen fir dëse System ze verbesseren mat méi feinkorrektem Skaléieren a méi präzis Typaktualiséierung sou datt dës Ännerungen méi fléissend geschéien a méi wirtschaftlech Sënn maachen.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 4. Intelligent Multi-Etapp Typ schalt

Evolutioun vu Clientcluster op Skala

Déi vireg Sektiounen hunn e puer Aspekter vun der Gestioun vun enger grousser Zuel vu Kubernetes Cluster ofgedeckt. Et gëtt awer en anere Problem dee geléist muss ginn: d'Evolutioun vu Stärekéip.

Kubernetes ass de "Linux" vun der Cloud Welt. Et gëtt kontinuéierlech aktualiséiert a gëtt méi modulär. Mir musse permanent nei Versiounen un eise Clienten liwweren, Schwachstelle fixéieren an existéierend Cluster aktualiséieren, wéi och eng grouss Zuel vu verbonne Komponenten managen (CSI, CNI, Device Plugin, Scheduler Plugin a vill anerer).

Loosst eis Kubernetes Komponentmanagement als Beispill huelen. Fir unzefänken, hu mir en zentraliséierte System entwéckelt fir all dës verbonne Komponenten ze registréieren an ze managen.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 5. Flexibel a pluggable Komponente

Ier Dir weider geet, musst Dir sécher sinn datt den Update erfollegräich war. Fir dëst ze maachen, hu mir e System entwéckelt fir d'Funktionalitéit vun de Komponenten ze kontrolléieren. D'Kontroll gëtt virum an nom Update gemaach.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 6. Virleefeg Kontroll vun Cluster Komponente

Fir dës Komponenten séier an zouverlässeg ze aktualiséieren, funktionnéiert e kontinuéierlechen Deployment System mat Ënnerstëtzung fir deelweis Fortschrëtter (Grauskala), Pausen an aner Funktiounen. Standard Kubernetes Controller sinn net gutt gëeegent fir dës Benotzungsfall. Dofir, fir Clusterkomponenten ze verwalten, hu mir eng Rei vu spezialiséierte Controller entwéckelt, dorënner e Plugin an en Hëllefskontrollmodul (Sidecar Management).

Zum Beispill ass de BroadcastJob Controller entwéckelt fir Komponenten op all Aarbechtermaschinn ze aktualiséieren oder Noden op all Maschinn ze kontrolléieren. De Broadcast Job leeft e Pod op all Node am Cluster, wéi en DaemonSet. Wéi och ëmmer, DaemonSet hält ëmmer de Pod fir eng laang Zäit lafen, wärend BroadcastJob et zesummebréngt. De Broadcast Controller lancéiert och Pods op nei verbonnen Noden an initialiséiert d'Node mat den néidege Komponenten. Am Juni 2019 hu mir de Quellcode vum OpenKruise Automatisatiounsmotor opgemaach, dee mir selwer an der Firma benotzen.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 7. OpenKurise organiséiert d'Ausféierung vun der Broadcast Task op all Noden

Fir Clienten ze hëllefen déi richteg Clusterkonfiguratiounen ze wielen, bidde mir och eng Rei vu virdefinéierte Profiler, dorënner Serverless, Edge, Windows a Bare Metal Profiler. Wéi d'Landschaft erweidert an d'Bedierfnesser vun eise Clienten wuessen, wäerte mir méi Profiler derbäi fir den tedious Setupprozess ze vereinfachen.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 8. Fortgeschratt a flexibel Stärekoup Profiler fir verschidden Szenarie

Global Observabilitéit iwwer Datenzenteren

Wéi an ënnen Fig. 9, Alibaba Cloud Container Cloud Service gouf an zwanzeg Regioune ronderëm d'Welt ofgesat. Mat dëser Skala ass ee vun de Schlësselziler vum ACK den Zoustand vun de lafende Cluster einfach ze iwwerwaachen, sou datt wann e Client Cluster e Problem begéint, kënne mir séier op d'Situatioun reagéieren. An anere Wierder, Dir musst mat enger Léisung kommen, déi Iech erlaabt Iech effizient a sécher Statistiken an Echtzäit aus Clientcluster an alle Regiounen ze sammelen - a visuell d'Resultater presentéieren.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 9. Global Détachement vun Alibaba Cloud Container Service an zwanzeg Regiounen

Wéi vill Kubernetes Iwwerwaachungssystemer benotze mir Prometheus als Haaptinstrument. Fir all Metacluster sammelen Prometheus Agenten déi folgend Metriken:

  • OS Metriken wéi Hostressourcen (CPU, Erënnerung, Disk, asw.) an Netzwierkbandbreedung.
  • Metriken fir de Metacluster a Client Cluster Management System, wéi kube-apiserver, kube-controller-manager a kube-scheduler.
  • Metriken aus kubernetes-Staat-Metriken a Cadvisor.
  • etcd Metriken wéi Disk Schreifzäit, Datebankgréisst, Duerchgang vu Linken tëscht Noden, etc.

Global Statistike gi gesammelt mat engem typesche Multi-Layer Aggregatiounsmodell. Iwwerwaachungsdaten vun all Metacluster ginn als éischt an all Regioun aggregéiert an dann op en zentrale Server geschéckt deen d'Gesamtbild weist. Alles funktionnéiert duerch de Federatiounsmechanismus. E Prometheus Server an all Datenzenter sammelt Metriken aus deem Datenzenter, an den zentrale Prometheus Server ass verantwortlech fir d'Aggregatioun vun Iwwerwaachungsdaten. AlertManager verbënnt mam zentrale Prometheus a schéckt Alarmer wéi néideg iwwer DingTalk, E-Mail, SMS, etc. Visualiséierung - Mat Grafana.

An der Figur 10 kann d'Iwwerwaachungssystem an dräi Niveauen opgedeelt ginn:

  • Grenz Niveau

D'Schicht am wäitste vum Zentrum. De Prometheus Edge Server leeft an all Metacluster, sammelt Metriken aus Meta a Client Cluster am selwechte Netzwierk Domain.

  • Kaskade Niveau

D'Funktioun vun der Prometheus Kaskadeschicht ass d'Iwwerwaachungsdaten aus verschiddene Regiounen ze sammelen. Dës Server funktionnéieren um Niveau vu gréissere geographeschen Eenheeten wéi China, Asien, Europa an Amerika. Wéi Cluster wuessen, kann d'Regioun opgedeelt ginn, an dann erschéngt e Kaskadeniveau Prometheus Server an all nei grouss Regioun. Mat dëser Strategie kënnt Dir glat Skala wéi néideg.

  • Zentralniveau

Den zentrale Prometheus-Server verbënnt mat all Kaskade-Server a mécht déi lescht Dateaggregatioun. Fir Zouverlässegkeet goufen zwee zentrale Prometheus Instanzen a verschiddene Zonen opgeworf, verbonne mat de selwechte Kaskadeserver.

Wéi Alibaba Cloud Zéngdausende vu Kubernetes Cluster geréiert mat ... Kubernetes
Reis. 10. Global Multi-Level Iwwerwaachungsarchitektur baséiert op dem Prometheus Federatiounsmechanismus

Summary

Kubernetes-baséiert Cloud Léisunge weider eis Industrie transforméieren. Alibaba Cloud Container Service bitt sécher, zouverlässeg an héich performant Hosting - et ass ee vun de beschten Kubernetes Cloud Hosting. D'Alibaba Cloud Team gleeft staark un d'Prinzipien vun Open Source an der Open Source Gemeinschaft. Mir wäerten definitiv weiderhin eise Wëssen am Beräich vun der Operatioun an der Gestioun vun Cloud Technologien deelen.

Source: will.com

Setzt e Commentaire