Kubernetes
Kubernetes je svobodný systém pro orchestraci virtualizace na úrovni operačního systému. Původně jej vyvinula společnost Google a jako podřízené nástroje podporuje například Docker a rkt. Můžeme hovořit i o virtuální kontejnerizaci na úrovni OS. Jméno je anglickým přepisem starořeckého slova κυβερνήτης (kybernétés), které znamená kormidelník. Kubernetes je vyvíjený v jazyce Go a uvolněný pod licencí Apache. KonceptyKubernetes definuje základní sadu stavebních bloků, které společně poskytují mechanismy pro nasazování, udržování a škálování aplikací na základě CPU, paměti nebo vlastních metrik. Jednotlivé bloky jsou volně spojené a rozšiřitelné, čímž mohou být upraveny pro různá aplikační vytížení. Tuto rozšiřitelnost ve velké části poskytuje rozhraní Kubernetes API, které používají interní komponenty i rozšíření a kontejnery běžící na Kubernetes. Chápáním výpočetních a úložných komponent jakožto objektů pak má platforma možnost je sledovat a ovládat. Kubernetes vychází z architektury Master/Slave. Komponenty Kubernetes lze rozdělit na ty, které spravují jednotlivý uzel, a ty, které jsou součástí řídicí vrstvy. Řídicí vrstvaKubernetes Master je hlavní řídicí jednotkou clusteru, která spravuje vytížení komponent a řídí komunikaci napříč systémem. Řídicí rovina Kubernetes se skládá z různých komponent, z nichž každá má svůj vlastní proces, který může běžet jak na jednom hlavním uzlu, tak na více hlavních zařízeních podporujících clustery s vysokou dostupností. Jednotlivé součásti řídicí roviny Kubernetes jsou následující:
UzlyUzel (anglicky Node), známý také jako Worker nebo Minion, je stroj, kde jsou nasazeny kontejnery. Každý uzel v clusteru musí obsahovat prostředí pro běh kontejneru, například Docker, stejně tak i níže uvedené komponenty:
PodyZákladní plánovací jednotkou v Kubernetes je pod (česky lusk). Pod se skládá z jednoho nebo více kontejnerů, u nichž je zaručeno společné umístění ve stejném uzlu. Každému modulu v Kubernetes je v clusteru přiřazena jedinečná IP adresa, která aplikacím umožňuje používat porty bez rizika konfliktu. V rámci podu se mohou všechny kontejnery navzájem odkazovat na localhost, ale kontejner v jednom podu nemá způsob, jak přímo adresovat jiný kontejner v jiném podu; k tomu musí použít IP adresu daného podu. Vývojář aplikace by nikdy neměl používat IP adresu podu k odkazování / vyvolání funkce v jiném podu, protože jejich IP adresy jsou dynamické – konkrétnímu podu, na který odkazují, může být při restartu přiřazena jiná IP adresa. Místo toho by měl použít odkaz na službu, která obsahuje odkaz na zvolený pod. Pod může definovat svazek, například adresář místního disku nebo síťový disk, a vystavit jej kontejnerům uvnitř podu. Pody lze spravovat ručně prostřednictvím rozhraní Kubernetes API nebo jejich správu lze delegovat na řadič. Takové svazky jsou také základem pro funkce Kubernetes nástroje ConfigMaps (pro zajištění přístupu ke konfiguraci prostřednictvím souborového systému viditelného pro kontejner) a Secrets (pro poskytnutí přístupu k pověřením potřebným pro bezpečný přístup ke vzdáleným prostředkům). Sady replikÚčelem sady replik je udržovat stabilní sadu replik podů spuštěných v daném okamžiku. Jako takový se často používá k zajištění dostupnosti určitého počtu identických podů. Sadu replik lze také označit za mechanismus seskupování, který umožňuje Kubernetes udržovat počet instancí deklarovaných pro daný pod. Definice sady replik používá selektor, jehož vyhodnocení má za následek identifikaci všech podů, které jsou k němu přidruženy. SlužbySlužba je sada podů, které fungují společně, například jako jedna úroveň vícevrstvé aplikace. Sada podů, které tvoří službu, je definována selektorem štítků. Kubernetes poskytuje dva režimy zjišťování služeb, pomocí proměnných prostředí nebo pomocí Kubernetes DNS. Service discovery přiřadí službě stabilní IP adresu a název DNS, přičemž vyvažuje zatížení podů round-robin způsobem. Ve výchozím nastavení je služba vystavena uvnitř clusteru (např. back-endové pody mohou být seskupeny do služby, přičemž požadavky z front-endových podů jsou mezi nimi vyváženy), ale služba může být vystavena i mimo cluster (např. aby se klienti dostali k front-end podům). OdkazyReferenceV tomto článku byl použit překlad textu z článku Kubernetes na anglické Wikipedii.
Externí odkazy
|
Portal di Ensiklopedia Dunia