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í

Microservices with AKS

Microservices with AKS

Use AKS to simplify the deployment and management of microservices based architecture. AKS streamlines horizontal scaling, self-healing, load balancing, secret management.

Secure DevOps for AKS

Secure DevOps for AKS

DevOps 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.

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