Kubernetes a Docker

Vytvářejte, doručujte a škálujte aplikace rychleji s využitím technologií kontejnerů, které fungují lépe dohromady.

Zásadní otázka: Kubernetes, nebo Docker?

Konverzace ohledně Kubernetes a Dockeru má často podobu otázky buď, a nebo: mám použít Kubernetes, nebo Docker? Je to jako porovnávat jablka s jablečným koláčem. To, že si musíte vybrat buď jedno, nebo druhé řešení, je běžná mylná představa.

Rozdíl mezi Kubernetes a Dockerem je snadnější pochopit, když otázku položíme jako Obě řešení a co dál? Pravdou je, že si nemusíte vybírat – Kubernetes a Docker jsou zásadně odlišné technologie, které dobře fungují dohromady a společně umožňují vytvářet, doručovat a škálovat kontejnerizované aplikace.

Docker a vzestup kontejnerizace

Docker je opensourcová technologie (a formát souboru kontejnerů) umožňující automatizaci nasazování aplikací jako přenositelných a soběstačných kontejnerů, které je možné spustit v cloudu nebo v místním prostředí. Docker, Inc., přestože sdílí podobný název, je jednou ze společností, která ve spolupráci s poskytovateli cloudových služeb, jako je Microsoft, rozvíjí opensourcovou technologii Dockeru tak, aby mohla běžet v Linuxu a ve Windows.

Myšlenka izolace prostředí není nová a existují další typy softwaru umožňujícího kontejnerizaci, ale Docker se v posledních letech stal výchozím formátem kontejnerů. Docker zahrnuje běhové prostředí – modul Docker. Umožňuje vytvářet a spouštět kontejnery na jakémkoli počítači pro vývoj a následně ukládat nebo sdílet image kontejnerů prostřednictvím registru kontejnerů, jako je Docker Hub nebo Azure Container Registry.

S tím, jak se aplikace rozšiřují do více kontejnerů nasazených na různých serverech, se jejich provoz stává čím dál složitější. Přestože Docker poskytuje otevřený standard pro balení a distribuci kontejnerizovaných aplikací, rychle můžou přibývat potenciální komplikace. Jak budete koordinovat a plánovat velké množství kontejnerů? Jak budou všechny ty různé kontejnery ve vaší aplikací vzájemně komunikovat? Jak zajistíte škálování velkého množství instancí kontejnerů? S těmito problémy vám může pomoct Kubernetes.

Kubernetes a orchestrace kontejnerů

Kubernetes je opensourcový software pro orchestraci, který nabízí rozhraní API umožňující řídit, jak a kde se kontejnery budou spouštět. Díky tomu můžete spouštět úlohy a kontejnery Dockeru a získáte také pomoc s řešením některých provozních komplikací při přechodu na škálování několika kontejnerů nasazených napříč několika servery.

Kubernetes umožňuje orchestrovat cluster virtuálních počítačů a plánovat spouštění kontejnerů na těchto virtuálních počítačích v závislosti na jejich dostupných výpočetních prostředcích a požadavcích jednotlivých kontejnerů na prostředky. Kontejnery se seskupují do podů, což jsou základní provozní jednotky pro Kubernetes. Tyto kontejnery a pody můžete škálovat do požadovaného stavu a spravovat jejich životní cyklus, abyste zajistili nepřetržitý provoz aplikací.

Jaký je rozdíl mezi Kubernetes a Dockerem?

Přestože se běžně porovnává Kubernetes a Docker, vhodnější je porovnávat Kubernetes a Docker Swarm. Docker Swarm je technologie orchestrace Dockeru, která se zaměřuje na clustering kontejnerů Dockeru, je úzce integrovaná do ekosystému Dockeru a používá vlastní rozhraní API.

Zásadním rozdílem mezi Kubernetes a Dockerem je, že platforma Kubernetes je určená k provozu napříč clusterem, zatímco Docker běží na jednom uzlu. Platforma Kubernetes je rozsáhlejší než Docker Swarm a je určená k efektivní koordinaci clusterů uzlů ve velkém měřítku v produkčním prostředí. Pody Kubernetes (jednotky plánování, které můžou obsahovat jeden nebo více kontejnerů v ekosystému Kubernetes) se distribuují mezi uzly a zajišťují tak vysokou dostupnost.

Kubernetes a Docker – Společně to jde líp

Zatímco příslibem kontejnerů je možnost napsat kód jednou a pak ho spustit kdekoli, Kubernetes nabízí možnost orchestrovat a spravovat všechny prostředky kontejnerů v jedné řídicí rovině. Ta pomáhá se sítěmi, vyrovnáváním zatížení, zabezpečením a škálováním všech uzlů Kubernetes, na kterých jsou vaše kontejnery spuštěné. Kubernetes zahrnuje také integrovaný mechanismus izolace podobný oborům názvů, který umožňuje seskupovat prostředky kontejnerů podle přístupových oprávnění, přípravných prostředí a dalších parametrů. Tyto koncepty usnadňují IT pracovníkům poskytovat vývojářům samoobslužný přístup k prostředkům a vývojářům umožňují spolupracovat i na těch nejsložitějších architekturách mikroslužeb, aniž by museli napodobovat celou aplikaci ve vývojovém prostředí. Kombinace postupů DevOps s kontejnery a Kubernetes navíc zajišťuje základní architekturu mikroslužeb, která podporuje rychlé doručování a škálovatelnou orchestraci aplikací nativních pro cloud.

Stručně řečeno, Kubernetes s Dockerem umožnují následující:

  • Zajištění robustnější infrastruktury a vyšší dostupnosti aplikací. Vaše aplikace zůstane online, i když se některé z uzlů odpojí.
  • Zajištění větší škálovatelnosti aplikací. Pokud se začne výrazně zvyšovat zatížení vaší aplikace a budete potřebovat horizontálně rozšířit kapacitu, abyste mohli zajistit lepší uživatelské prostředí, můžete jednoduše aktivovat další kontejnery nebo přidat další uzly do clusteru Kubernetes.

Kubernetes a Docker fungují společně. Docker poskytuje otevřený standard pro balení a distribuci kontejnerizovaných aplikací. Pomocí Dockeru můžete vytvářet a spouštět kontejnery a ukládat a sdílet image kontejnerů. V clusteru Kubernetes můžete jednoduše spustit sestavení Dockeru, ale samotná platforma Kubernetes není kompletní řešení. Pokud chcete optimalizovat Kubernetes v produkčním prostředí, implementujte další nástroje a služby umožňující správu zabezpečení, zásad správného řízení, identit a přístupu společně s pracovními postupy CI/CD (kontinuální integrace / průběžné nasazování) a dalšími postupy DevOps.

Architektury řešení Kubernetes a Docker v produkčním prostředí

Simplify the deployment and management of Microservices based applicationsSimplify the deployment and management of Microservices based applications12345567778
  1. Přehled
  2. Tok

Přehled

AKS zjednodušuje horizontální škálování, automatické opravy, vyrovnávání zatížení a správu tajných klíčů.

Tok

  1. 1 K odeslání změn na GitHub využijte integrované vývojové prostředí, například Visual Studio.
  2. 2 GitHub zahájí v Azure DevOps nové sestavení.
  3. 3 Azure DevOps zabalí mikroslužby do kontejnerů a nasdílí je do služby Azure Container Registry.
  4. 4 Kontejnery se nasadí do clusteru AKS.
  5. 5 K zabezpečení přístupu k prostředkům se používá Azure Active Directory.
  6. 6 Uživatelé ke službám přistupují před aplikace a weby.
  7. 7 Správce má k aplikacím přístup přes samostatný portál pro správu.
  8. 8 Mikroslužby k ukládání a načítání informací používají databáze.
Secure DevOps for AKSDevOps and Kubernetes are better together. Implementing secure DevOps together with Kubernetes on Azure, you can achieve the balance between speed and security and deliver code faster at scale. Put guardrails around the development processes using CI/CD with dynamic policy controls and accelerate feedback loop with constant monitoring. Use Azure Pipelines to deliver fast while ensuring enforcement of critical policies with Azure Policy. Azure provides you real-time observability for your build and release pipelines, and the ability to apply compliance audit and reconfigurations easily.123456789
  1. Přehled
  2. Tok

Přehled

DevOps a Kubernetes – společně to jde líp. Implementací zabezpečených postupů DevOps v Azure společně s protokolem Kubernetes zajistíte správný poměr rychlosti a zabezpečení, který vám umožní rychleji doručovat kód ve velkém měřítku. Nastavte kolem vývojových procesů ochranné mantinely s využitím CI/CD a dynamických zásad a zrychlete smyčku zpětné vazby s využitím setrvalého monitorování. Využijte Azure Pipelines k rychlému doručování a současně pomocí Azure Policy zajistěte vynucování nejdůležitějších zásad. Pro vaše kanály buildu a verze Azure poskytuje možnosti sledování a umožňuje také změnu konfigurace a využití auditu dodržování předpisů.

Tok

  1. 1 Rychlé iterování, testování a ladění různých částí aplikace současně v jednom clusteru Kubernetes
  2. 2 Kód se sloučí do úložiště GitHub a služba Azure Pipelines potom spustí automatizovaná sestavení a testy.
  3. 3 Image kontejneru je registrovaná ve službě Azure Container Registry.
  4. 4 Clustery Kubernetes se zřizují pomocí nástrojů, jako je Terraform. Diagramy Helmu, nainstalované Terraformem, definují požadovaný stav prostředků a konfigurací aplikací.
  5. 5 Operátoři vynutí zásady správného řízení nasazení do clusteru AKS.
  6. 6 Kanál verze při každé změně kódu automaticky postupuje podle předem definované strategie nasazení.
  7. 7 Do kanálu CI/CD se přidá vynucování zásad a auditování s využitím Azure Policy.
  8. 8 K zajištění telemetrie aplikací, monitorování stavu kontejnerů a analýz protokolů v reálném čase se použije Azure Monitor.
  9. 9 Podrobné přehledy se využijí k řešení potíží a k předání do plánů dalších sprintů.

Využití silných stránek Kubernetes v Azure

Azure Kubernetes Service (AKS) usnadňuje nasazování a správu kontejnerizovaných aplikací. AKS nabízí Kubernetes bez serveru, integrované prostředí CI/CD a zabezpečení a zásady správného řízení na podnikové úrovni. Spojte své vývojové a provozní týmy na jediné platformě a umožněte jim rychle vytvářet, dodávat a škálovat aplikace bez obav.

Začínáme s Kubernetes a Dockerem