Použití kontejnerů s SQL Serverem v Linuxu
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ší.
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.
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.