Použití kontejnerů s SQL Serverem v Linuxu

Dokončeno

Kontejnery pomáhají organizacím vytvářet flexibilní a škálovatelné instalace SQL Serveru.

Wide World Importers podporuje některé rozsáhlé databázové úlohy, které vyžadují flexibilní a škálovatelnou architekturu hostování. Chcete vyhodnotit možnost hostování SQL Serveru ve virtuálních prostředích, jako jsou virtuální počítače a kontejnery.

Tady se dozvíte, jak si vybrat mezi kontejnery a virtuálními počítači pro databázi.

Porovnání virtuálních počítačů a kontejnerů

Virtualizace je technika, kterou správci používají k hostování více virtuálních serverů na jednom fyzickém serveru. Při použití virtualizace můžete snadno nasadit další instance, například SQL Server bez nutnosti koupě a instalace dalšího hardwaru. Existují dva běžné přístupy k virtualizaci:

  • Virtuální počítače: Při použití virtuálních počítačů je každá instance kompletním virtuálním serverem s vlastním operačním systémem a hardwarem.
  • Kontejnery: Když používáte kontejnery, každá instance sdílí operační systém a hardwarové prostředky s hostitelským počítačem.

Virtuální počítače i kontejnery poskytují izolované prostředí, ve kterém aplikace, jako je SQL Server, běží, jako by byly na samostatném fyzickém počítači.

Vytvoření virtuálních počítačů je větší a trvá déle, ale protože mají vlastní operační systém, použijte pro hostitelský počítač jinou konfiguraci a hardware. Virtuální počítače můžete také kombinovat s různými operačními systémy na stejném hostiteli. Například na hostiteli s Linuxem můžete nainstalovat virtuální počítač s Linuxem a Apache pro hostování webu. K hostování databáze může být také jiný virtuální počítač s Windows a SQL Serverem.

Kontejnery jsou menší, takže se načítají mnohem rychleji než virtuální počítače. Pokud ale váš hostitel používá Linux Ubuntu, musí například všechny kontejnery v tomto počítači spouštět stejnou verzi Ubuntu. Na hostiteli s Linuxem můžete nainstalovat kontejner se systémem Linux a Apache, ale kontejner databáze musí také spouštět Linux. To je možné, pokud používáte SQL Server 2017 nebo novější.

Diagram comparing the layers of software required to run VMs versus Containers.

Na hostitelském počítači musíte k hostování virtuálních počítačů nainstalovat software, jako je Hyper-V nebo VirtualBox. Pro kontejnery můžete použít systém Dockeru, CRI-O, rkt a další hostitele kontejnerů.

Důvody použití služby Virtual Machines

Stále existují situace, kdy kontejnery nejsou nejlepším řešením. Vzhledem k tomu, že kontejnery běží v jednom operačním systému a sdílejí systémové prostředky, je zabezpečení velmi důležité. Pokud útočník získá oprávnění superuživatele , můžou některé vektory vést k získání přístupu k aplikacím. V kontejnerech musí aplikace běžet ve stejném operačním systému jako hostitelský počítač. V kontejnerech ve Windows nemůžete spouštět linuxové aplikace. S virtuálními počítači hostujete počítač s Linuxem ve Windows nebo počítač s Windows v macOS a získáte větší flexibilitu. Virtuální počítače umožňují hostovat více aplikací s úzkou integrací do jednoho virtuálního počítače. Kontejnery tradičně hostují pouze jednotlivé aplikace.

Virtuální počítače jsou méně efektivní než kontejnery. Na dané sadě hardwaru můžete spustit alespoň dvojnásobný počet aplikací v kontejnerech, než je možné s virtuálními počítači. Virtuální počítač používá více prostředků, protože potřebuje úplnou kopii operačního systému a virtualizovaných verzí veškerého hardwaru pro podporu hostovaného operačního systému.

Důvody použití kontejnerů

Kontejnery jsou ve srovnání jednodušší a umožňují zabalit aplikace do menších nároků. Vzhledem k tomu, že jeden operační systém hostuje kontejnery, je méně správy. Potřebujete opravit a aktualizovat jenom jeden operační systém, a ne každý hostovaný operační systém na každém virtuálním počítači. Kontejnery jsou menší a jednodušší, takže je můžete spustit v sekundách, a ne v minutách, které trvá spuštění virtuálního počítače.

Orchestrace

K orchestraci kontejnerů můžete použít Docker Swarm, Kubernetes a další řešení. Orchestrátory monitorují a umožňují škálovat aplikace pomocí kontejnerů a poskytovat úroveň zotavení po havárii. Microsoft poskytuje nástroje a příklady použití Kubernetes, takže je to dobrá volba pro kontejnerizaci SQL Serveru v Linuxu. V imagi kontejneru Linuxu je k dispozici SQL Server pro použití s Kubernetes.

Kontejnerizovaný SQL Server v Linuxu

Jedním z problémů s databázemi spuštěnými v kontejnerech je trvalé úložiště. Musíte zadat umístění úložiště mimo kontejner, kde může databáze uchovávat soubory databáze. Změny jsou pak dostupné pro všechny kontejnery v clusteru. Pokud používáte Kubernetes, můžete pro toto umístění použít trvalý svazek.

Diagram of the a Kubernetes cluster running SQL Server and the relationship between nodes, pods, storage, replica sets, and the service.

Nejprve vytvořte trvalý svazek a pak přidejte trvalou deklaraci identity svazku (PVC). Vytvořte manifest nasazení pro SQL Server v Linuxu, který používá image kontejneru vytvořenou mssql-server-linux Microsoftem. Manifest obsahuje také definice pro PVC a nástroj pro vyrovnávání zatížení pro službu, aby se zaručila konzistentní IP adresa. Vytvořte nasazení a zkontrolujte, jestli je SQL Server spuštěný uvnitř podu. Po dokončení tohoto nastavení se Kubernetes spustí novou instanci, pokud uzel selže. Jednoduchým testem je odstranit tento pod a zkontrolovat, jestli se nový spustí automaticky.

Prověřte si své znalosti

1.

Kdy by byl virtuální počítač nejlepší volbou pro hostování aplikace?