Možnosti úložiště pro cluster Kubernetes
Tento článek porovnává možnosti úložiště služby Amazon Elastic Kubernetes Service (Amazon EKS) a Azure Kubernetes Service (AKS) a popisuje možnosti ukládání dat úloh v AKS.
Poznámka:
Tento článek je součástí série článků, které pomáhají odborníkům, kteří jsou obeznámeni s Amazon EKS, porozumět službě Azure Kubernetes Service (AKS).
Možnosti úložiště Amazon EKS
Při spouštění aplikací, které vyžadují úložiště dat, nabízí Amazon EKS různé typy svazků pro dočasné i dlouhodobé úložiště.
Dočasné svazky
Pro aplikace, které vyžadují dočasné místní svazky, ale po restartování není nutné uchovávat data, je možné použít dočasné svazky. Kubernetes podporuje různé typy dočasných svazků, například emptyDir, configMap, downwardAPI, secreta hostPath. Abyste zajistili nákladovou efektivitu a výkon, je důležité zvolit nejvhodnější hostitelský svazek. V Amazon EKS můžete použít gp3 jako kořenový svazek, který nabízí nižší ceny než u svazků gp2.
Další možností efemérních svazků je úložiště instancí Amazon EC2, které poskytují dočasné blokové úložiště pro instance EC2. Tyto svazky jsou fyzicky připojené k hostitelům a existují pouze během životnosti instance. Použití svazků místního úložiště v Kubernetes vyžaduje dělení, konfiguraci a formátování disků pomocí uživatelských dat Amazon EC2.
Trvalé svazky
I když je Kubernetes obvykle přidružený ke spuštěným bezstavovým aplikacím, existují případy, kdy se vyžaduje trvalé úložiště dat. Persistentních svazků Kubernetes (PV) lze použít k nezávislému ukládání dat nezávisle na podech, což umožňuje zachování dat i přes životnost daného podu. Amazon EKS podporuje různé typy možností úložiště pro virtuální počítače, včetně Amazon EBS, Amazon EFS, Amazon FSx pro Lustrea Amazon FSx pro NetApp ONTAP.
Svazky Amazon EBS jsou vhodné pro úložiště na úrovni bloků, databáze a aplikace náročné na propustnost. Uživatelé Amazon EKS můžou používat nejnovější generaci blokového úložiště gp3 pro rovnováhu mezi cenou a výkonem. Pro aplikace s vyšším výkonem lze použít blokové express svazky io2 .
Amazon EFS je bezserverový elastický systém souborů, který se dá sdílet napříč několika kontejnery a uzly. Automaticky se zvětší a zmenší při přidávání nebo odebírání souborů a eliminuje potřebu plánování kapacity. Ovladač Amazon Elastic File System Container Storage Interface (CSI) se používá k integraci Amazon EFS s Kubernetes.
Amazon FSx pro Lustre poskytuje vysoce výkonné paralelní úložiště souborů, které je ideální pro scénáře vyžadující vysokou propustnost a operace s nízkou latencí. Dá se propojit s úložištěm dat Amazon S3 pro ukládání velkých datových sad. Amazon FSx pro NetApp ONTAP je plně spravované řešení sdíleného úložiště založené na systému souborů ONTAP v NetAppu.
Uživatelé Amazon EKS můžou využívat nástroje, jako je AWS Compute Optimizer a Velero k optimalizaci konfigurací úložiště a správě záloh a snímků.
Možnosti úložiště AKS
Aplikace spuštěné ve službě Azure Kubernetes Service (AKS) můžou potřebovat ukládat a načítat data. I když některé úlohy aplikací můžou používat místní, rychlé úložiště na nepotřebných, vyprázdněných uzlech, jiné vyžadují úložiště, které se v rámci platformy Azure zachová na častějších datových svazcích. Může být zapotřebí více podů:
- Sdílejte stejné datové svazky.
- Znovu připojte datové svazky, pokud je pod přeplánovaný na jiném uzlu.
Tento článek představuje možnosti úložiště a základní koncepty, které poskytují úložiště aplikacím v AKS.
Typy svazků
Svazky Kubernetes představují více než jen tradiční disk pro ukládání a načítání informací. Svazky Kubernetes je také možné použít jako způsob, jak vložit data do podu pro použití v kontejnerech.
Mezi běžné typy svazků v Kubernetes patří EmptyDirs, Secreta ConfigMaps.
EmptyDirs
Pro Pod, který definuje „emptyDir
“ svazek, je svazek vytvořen, když je Pod přiřazen k uzlu. Jak název napovídá, emptyDir
svazek je zpočátku prázdný. Všechny kontejnery v podu můžou číst a zapisovat stejné soubory ve svazku emptyDir
, i když je možné tento svazek připojit ke stejným nebo různým cestám v každém kontejneru. Po odebrání Podu z uzlu z jakéhokoli důvodu se data v emptyDir
odstraní trvale.
Tajemství
Tajný je objekt, který obsahuje malé množství citlivých dat, jako je heslo, token nebo klíč. Tyto informace by jinak byly zahrnuty do specifikace podu nebo image kontejneru. Použitím tajného kódu se vyhnete vkládání důvěrných dat přímo do kódu aplikace. Vzhledem k tomu, že tajné kódy lze vytvářet nezávisle na podech, které je používají, existuje menší riziko vystavení tajného kódu (a jeho dat) během procesů vytváření, prohlížení a úprav podů. Kubernetes a aplikace běžící ve vašem clusteru mohou také přijmout další opatření s Secrets, například zabránit, aby citlivá data byla zapsána do trvalého úložiště. Tajné kódy jsou sice podobné objektům ConfigMap, ale jsou speciálně navržené tak, aby ukládaly důvěrná data.
Tajné kódy můžete použít pro následující účely:
- Nastavení proměnných prostředí pro kontejner.
- Zadejte přihlašovací údaje, jako jsou klíče SSH nebo hesla podů.
- Povolit kubeletu vyžádat image kontejneru z privátních registrů.
Řídicí rovina Kubernetes používá také tajné kódy, jako jsou tajné kódy tokenu bootstrap, což je mechanismus, který pomáhá automatizovat registraci uzlů.
Mapy konfigurace
ConfigMap je objekt Kubernetes, který slouží k uložení necitlivých dat v párech klíč-hodnota. Pody mohou využívat ConfigMapy jako proměnné prostředí, argumenty příkazového řádku, nebo jako konfigurační soubory v objemu . Objekt ConfigMap umožňuje oddělit konfiguraci specifickou pro prostředí od imagí kontejneru, aby vaše aplikace byly snadno přenosné.
Objekt ConfigMap neposkytuje tajemství ani šifrování. Pokud jsou data, která chcete uložit, důvěrná, použijte tajné místo objektu ConfigMap nebo použijte další nástroje (třetí strany) k zachování soukromí vašich dat.
Konfigurační mapu můžete použít k nastavení konfiguračních dat odděleně od kódu aplikace. Představte si například, že vyvíjíte aplikaci, kterou můžete spustit na vlastním počítači (pro vývoj) a v cloudu (pro zpracování skutečného provozu). Napíšete kód, který bude vypadat v proměnné prostředí s názvem DATABASE_HOST
. Místně nastavíte tuto proměnnou na localhost
. V cloudu nastavíte odkaz na službu Kubernetes Service, která zpřístupní komponentu databáze do clusteru. To vám umožní načíst image kontejneru spuštěnou v cloudu a v případě potřeby ladit přesně stejný kód.
Trvalé svazky
Svazky definované a vytvořené jako součást životního cyklu podu existují pouze do jeho odstranění. Pody často očekávají, že jejich úložiště zůstane zachováno, pokud se během údržby pod přeplánuje na jiném hostiteli, což je obzvláště důležité u StatefulSets. trvalý svazek (PV) je prostředek úložiště vytvořený a spravovaný rozhraním API Kubernetes, který může existovat po celou dobu životnosti jednotlivého podu. K zajištění trvalého svazku můžete použít následující služby Azure Storage:
Jak je uvedeno v části Svazky, volba disků Azure nebo souborů Azure je často určena potřebou souběžného přístupu k datům nebo úrovni výkonu.
Správce clusteru může staticky vytvořit trvalý svazek nebo je možné vytvořit svazek dynamicky serverem rozhraní API Kubernetes. Pokud je pod naplánovaný a vyžaduje úložiště, které je aktuálně nedostupné, může Kubernetes vytvořit podkladové úložiště Azure Disk nebo File a připojit ho k podu. Dynamické zřizování používá třídu úložiště k identifikaci typu prostředku, který je potřeba vytvořit.
Důležitý
Trvalé svazky nemůžou sdílet pody s Windows a Linuxem kvůli rozdílům v podpoře systému souborů mezi těmito dvěma operačními systémy.
Pokud chcete plně spravované řešení pro přístup k datům na úrovni bloků, zvažte použití azure Container Storage místo ovladačů CSI. Azure Container Storage se integruje s Kubernetes, což umožňuje dynamické a automatické zřizování trvalých svazků. Azure Container Storage podporuje disky Azure, dočasné disky a Azure Elastic SAN (Preview) jako záložní úložiště, které nabízí flexibilitu a škálovatelnost stavových aplikací běžících v clusterech Kubernetes.
Třídy úložiště
Pokud chcete určit různé úrovně úložiště, například Premium nebo Standard, můžete vytvořit třídu úložiště.
Třída úložiště také definuje zásady ukládání. Když odstraníte trvalý svazek, politika obnovení řídí chování základního prostředku Azure Storage. Základní prostředek je možné odstranit nebo ponechat pro použití s budoucím podem.
U clusterů využívajících Azure Container Storage uvidíte další třídu úložiště s názvem acstor-<storage-pool-name>
. Vytvoří se také interní třída úložiště.
Pro clustery používající ovladače rozhraní Container Storage Interface (CSI)se vytvoří následující další třídy úložiště:
Třída úložiště | Popis |
---|---|
managed-csi |
K vytvoření spravovaného disku používá místně redundantní úložiště SSD úrovně Azure Standard (LRS). Zásady uvolnění paměti zajistí, že se základní disk Azure odstraní, když se odstraní trvalý svazek, který ho použil. Třída úložiště také nakonfiguruje trvalé svazky tak, aby se rozšiřily. Můžete upravit trvalou deklaraci identity svazku a určit tak novou velikost. S účinností od verze Kubernetes 1.29, v clusterech Azure Kubernetes Service (AKS), které jsou nasazeny napříč několika zónami dostupnosti, tato třída úložiště využívá zónově redundantní úložiště SSD Azure Standard (ZRS) k vytváření spravovaných disků. |
managed-csi-premium |
K vytvoření spravovaného disku používá místně redundantní úložiště Azure Premium (LRS). Zásada uvolnění znovu zajistí, že se základní disk Azure odstraní, když se odstraní trvalý svazek, který ho použil. Podobně tato třída úložiště umožňuje rozšíření trvalých svazků. S účinností od Kubernetes verze 1.29, v clusterech Azure Kubernetes Service (AKS) nasazených napříč několika zónami dostupnosti, využívá tato třída úložiště Azure Premium zónově redundantního úložiště (ZRS) k vytváření spravovaných disků. |
azurefile-csi |
Používá úložiště Azure Standard k vytvoření sdílené složky Azure. Zásada uvolnění zajišťuje, že se Azure file share odstraní, když se odstraní trvalý svazek, který jej použil. |
azurefile-csi-premium |
Používá Azure Premium Storage k vytvoření sdílení souborů Azure. Zásada uvolnění zajišťuje, že se Azure file share odstraní, když se odstraní trvalý svazek, který jej použil. |
azureblob-nfs-premium |
Používá Azure Premium Storage k vytvoření kontejneru úložiště objektů blob v Azure a připojení pomocí protokolu NFS v3. Zásada uvolnění paměti zajišťuje, že se základní kontejner úložiště objektů blob v Azure odstraní, když se odstraní trvalý svazek, který ho použil. |
azureblob-fuse-premium |
Používá Azure Premium Storage k vytvoření kontejneru azure Blob Storage a připojení pomocí BlobFuse. Zásada uvolnění paměti zajišťuje, že se základní kontejner úložiště objektů blob v Azure odstraní, když se odstraní trvalý svazek, který ho použil. |
Pokud pro trvalý svazek nezadáte třídu úložiště, použije se výchozí třída úložiště. Ujistěte se, že svazky používají příslušné úložiště, které potřebujete při požadavku na trvalé svazky.
Důležité: Počínaje Kubernetes verze 1.21 používá AKS ve výchozím nastavení ovladače CSI a migrace na CSI je povolená. I když stávající trvalé svazky ve stromu nadále fungují, počínaje verzí 1.26 už AKS nebude podporovat svazky vytvořené pomocí ovladače stromu a úložiště zřízeného pro soubory a disky.
Třída default
bude stejná jako managed-csi
.
Počínaje Kubernetes verze 1.29 platí, že když nasadíte clustery Azure Kubernetes Service (AKS) napříč několika zónami dostupnosti, AKS teď využívá zónově redundantní úložiště (ZRS) k vytváření spravovaných disků v rámci integrovaných tříd úložiště. ZRS zajišťuje synchronní replikaci spravovaných disků Azure napříč několika zónami dostupnosti Azure ve zvolené oblasti. Tato strategie redundance zvyšuje odolnost vašich aplikací a chrání vaše data před selháními datacentra.
Je ale důležité si uvědomit, že zónově redundantní úložiště (ZRS) má oproti místně redundantnímu úložišti (LRS) vyšší náklady. Pokud je optimalizace nákladů prioritou, můžete vytvořit novou třídu úložiště s parametrem skuname
nastaveným na LRS. Pak můžete použít novou třídu úložiště ve vaší trvalé deklaraci identity svazku (PVC).
Třídu úložiště můžete vytvořit pro jiné potřeby pomocí kubectl
. Následující příklad používá spravované disky Úrovně Premium a určuje, že základní disk Azure by se při odstranění podu měl zachovat:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: managed-premium-retain
provisioner: disk.csi.azure.com
parameters:
skuName: Premium_ZRS
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
Mějte na paměti, že AKS odsouhlasí výchozí třídy úložiště a přepíše všechny změny, které v těchto třídách úložiště provedete.
Další informace o třídách úložiště najdete v tématu StorageClass v Kubernetes.
Požadavky na trvalé svazky
Deklarace trvalého svazku (PVC) vyžaduje uložení konkrétní třídy úložiště, režimu přístupu a velikosti. Server rozhraní API Kubernetes může dynamicky zřizovat prostředek úložiště Azure, pokud žádný existující prostředek nemůže splnit požadavek na základě definované třídy úložiště.
Definice podu zahrnuje svazek, jakmile je připojen k podu.
Po přiřazení dostupného prostředku úložiště k podu žádajícímu o úložiště se trvalý svazek svázaný s trvalou deklarací identity svazku. Trvalé svazky jsou mapovány na nároky v poměru 1:1.
Následující příklad manifestu YAML ukazuje trvalé nároky na objem, které používají třídu úložiště managed-premium storage a požadují disk Azure o velikosti 5Gi:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: azure-managed-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: managed-premium-retain
resources:
requests:
storage: 5Gi
Při vytváření definice podu zadáte také:
- Deklarace trvalého svazku pro vyžádání požadovaného úložiště.
- Připojení svazku pro vaše aplikace ke čtení a zápisu dat.
Následující příklad manifestu YAML ukazuje, jak se dá předchozí přetrvávající nárok na svazek použít k připojení svazku v /mnt/azure:
kind: Pod
apiVersion: v1
metadata:
name: nginx
spec:
containers:
- name: myfrontend
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
volumeMounts:
- mountPath: "/mnt/azure"
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: azure-managed-disk
Pro připojení svazku v kontejneru Windows zadejte písmeno jednotky a cestu. Například:
...
volumeMounts:
- mountPath: "d:"
name: volume
- mountPath: "c:\k"
name: k-dir
...
Dočasný disk s operačním systémem
Azure ve výchozím nastavení automaticky replikuje disk operačního systému pro virtuální počítač do služby Azure Storage, aby se zabránilo ztrátě dat při přemístění virtuálního počítače na jiného hostitele. Vzhledem k tomu, že kontejnery nejsou navržené tak, aby měly trvalý místní stav, nabízí toto chování omezenou hodnotu a zároveň poskytuje určité nevýhody. Mezi tyto nevýhody patří, ale nejsou omezené na pomalejší zřizování uzlů a vyšší latenci čtení a zápisu.
Naproti tomu dočasné disky s operačním systémem se ukládají jenom na hostitelském počítači, stejně jako dočasný disk. Díky této konfiguraci získáte nižší latenci čtení a zápisu spolu s rychlejším škálováním uzlů a upgrady clusteru.
Pokud pro operační systém explicitně nepožadujete spravované disky Azure, AKS pro danou konfiguraci fondu uzlů ve výchozím nastavení nastaví dočasný operační systém.
Požadavky na velikost a doporučení pro dočasné disky s operačním systémem jsou k dispozici v dokumentaci k virtuálním počítačům Azure. Tady jsou některé obecné aspekty velikosti:
- Pokud jste se rozhodli použít výchozí velikost virtuálního počítače AKS Standard_DS2_v2 SKU s výchozí velikostí disku OS 100 GiB, výchozí velikost virtuálního počítače podporuje efemérní OS, ale mezipaměť má pouze 86 GiB. Pokud ji explicitně nezadáte, tato konfigurace se ve výchozím nastavení nastaví na spravované disky. Pokud požadujete dočasný operační systém, zobrazí se chyba ověření.
- Pokud požadujete stejnou skladovou položku Standard_DS2_v2 s diskem s operačním systémem o velikosti 60 GiB, tato konfigurace by ve výchozím nastavení používala efemérní disk pro operační systém. Požadovaná velikost 60 GiB je menší než maximální velikost mezipaměti 86 GiB.
- Pokud vyberete skladovou položku Standard_D8s_v3 s diskem s operačním systémem 100 GB, tato velikost virtuálního počítače podporuje dočasný operační systém a má 200 GiB místa v mezipaměti. Pokud nezadáte typ disku s operačním systémem, fond uzlů bude ve výchozím nastavení přijímat dočasný operační systém.
Nejnovější generace řady virtuálních počítačů nemá vyhrazenou mezipaměť, ale pouze dočasné úložiště. Pokud jste například vybrali velikost virtuálního počítače Standard_E2bds_v5 s výchozí velikostí disku s operačním systémem 100 GiB, podporuje dočasné disky s operačním systémem, ale má pouze 75 GB dočasného úložiště. Pokud ji explicitně nezadáte, tato konfigurace se ve výchozím nastavení nastaví na spravované disky s operačním systémem. Pokud požadujete dočasný disk s operačním systémem, zobrazí se chyba ověření.
- Pokud požadujete stejnou velikost virtuálního počítače Standard_E2bds_v5 s diskem s operačním systémem 60 GiB, tato konfigurace ve výchozím nastavení používá dočasné disky s operačním systémem. Požadovaná velikost 60 GiB je menší než maximální dočasné úložiště 75 GiB.
- Pokud vyberete Standard_E4bds_v5 skladovou položku s diskem s operačním systémem 100 GiB, tato velikost virtuálního počítače podporuje dočasný operační systém a má 150 GiB dočasného úložiště. Pokud typ disku s operačním systémem nezadáte, Azure ve výchozím nastavení zřídí dočasný disk s operačním systémem do fondu uzlů.
Klíče spravované zákazníkem
Šifrování dočasného disku s operačním systémem můžete spravovat pomocí vlastních klíčů v clusteru AKS. Další informace najdete v tématu Použití klíče spravovaného zákazníkem s diskem Azure v AKS.
Obsahy
Kubernetes obvykle zpracovává jednotlivé pody jako dočasné a jednorázové prostředky. Aplikace mají k dispozici různé přístupy k používání a uchovávání dat. svazek představuje způsob, jak ukládat, načítat a uchovávat data napříč pody a prostřednictvím životního cyklu aplikace.
Tradiční svazky se vytvářejí jako Kubernetesové prostředky podporované službou Azure Storage. Můžete ručně vytvořit datové svazky, které se mají přiřadit přímo podům, nebo je Kubernetes automaticky vytvořit. Datové svazky mohou používat: Azure Disk, Azure Files, Azure NetApp Filesnebo Azure Blob Storage.
Poznámka:
V závislosti na SKU virtuálního počítače, který používáte, může mít ovladač CSI disku Azure limit svazku pro jednotlivé uzly. U některých vysoce výkonných virtuálních počítačů (například 16 jader) je limit 64 svazků na uzel. Pokud chcete zjistit limit na skladovou položku virtuálního počítače, projděte si sloupec Maximální počet datových disků pro každou nabízenou skladovou položku virtuálního počítače. Seznam nabízených skladových položek virtuálních počítačů a jejich odpovídajících podrobných limitů kapacity najdete v tématu velikosti virtuálních počítačů pro obecné účely.
Pokud chcete pomoct určit nejvhodnější řešení pro vaše úlohy mezi soubory Azure a Službou Azure NetApp Files, projděte si informace uvedené v článku porovnání služby Azure Files a Azure NetApp Files.
Azure Disk
Ve výchozím nastavení se cluster AKS dodává s předem vytvořenými managed-csi
třídami úložiště a managed-csi-premium
třídami úložiště, které používají Disk Storage. Podobně jako Amazon EBS tyto třídy vytvářejí spravovaný disk nebo blokové zařízení, které je připojené k uzlu pro přístup k podu.
Třídy disků umožňují statické i dynamické zřizování svazků. Uvolnění zásad zajišťuje odstranění disku s trvalým svazkem. Disk můžete rozšířit úpravou deklarace identity trvalého svazku.
Tyto třídy úložiště používají spravované disky Azure s místně redundantním úložištěm (LRS). LRS znamená, že data mají tři synchronní kopie v rámci jednoho fyzického umístění v primární oblasti Azure. LRS je nejlevnější možnost replikace, ale nenabízí ochranu před selháním datacentra. Můžete definovat vlastní třídy úložiště, které používají disky spravované zónově redundantním úložištěm (ZRS). Zónově redundantní úložiště (ZRS) synchronně replikuje spravovaný disk Azure napříč třemi zónami dostupnosti Azure v oblasti, kterou vyberete. Každá zóna dostupnosti je samostatné fyzické umístění s nezávislým napájením, chlazením a sítěmi. Disky ZRS poskytují alespoň 99,99999999999999% (12 9) odolnosti za daný rok. Spravovaný disk ZRS je možné připojit virtuálním počítačem v jiné zóně dostupnosti . Disky ZRS momentálně nejsou dostupné ve všech oblastech Azure. Další informace o discích ZRS najdete v tématu Možnosti zónově redundantního úložiště (ZRS) pro disky Azure pro zajištění vysoké dostupnosti. Kromě toho můžete kvůli zmírnění rizika ztráty dat provádět pravidelné zálohy nebo snímky dat diskového úložiště pomocí služby Azure Kubernetes Service Backup nebo řešení třetích stran, jako jsou Velero nebo azure Backup, které můžou používat integrované technologie snímků.
K vytvoření prostředku Kubernetes DataDisk můžete použít Azure Disk. Mezi typy disků patří:
- Prémiové SSD disky (doporučeno pro většinu pracovních zátěží)
- Premium SSD v2
- disky Ultra
- Standardní SSD
- Standardní HDD
Spropitné
Pro většinu produkčních a vývojových úloh použijte disky SSD úrovně Premium.
Vzhledem k tomu, že je disk Azure připojený jako ReadWriteOnce, je k dispozici pouze pro jeden uzel. Pro úložné svazky, které jsou přístupné pro pody na více uzlech současně, použijte Azure Files.
Disky SSD úrovně Azure Premium v2
Disky SSD úrovně Azure Premium v2 nabízejí náročné vstupně-výstupní úlohy v podniku, konzistentní latenci disků v milisekundách a vysokou IOPS a propustnost. Výkon (kapacita, propustnost a IOPS) disků SSD úrovně Premium v2 se dá kdykoli nezávisle nakonfigurovat, což usnadňuje nákladově efektivní situaci, když splňuje požadavky na výkon. Další informace o konfiguraci nového nebo existujícího clusteru AKS pro použití disků SSD úrovně Azure Premium v2 najdete v tématu Použití disků SSD úrovně Azure Premium v2 ve službě Azure Kubernetes Service.
Ultra Disk Storage
Diskové úložiště úrovně Ultra je vrstva spravovaného disku Azure, která nabízí vysokou propustnost, vysoké IOPS a konzistentní diskové úložiště s nízkou latencí pro virtuální počítače Azure. Diskové úložiště úrovně Ultra je určené pro úlohy, které jsou náročné na data a transakce. Stejně jako ostatní skladové položky diskového úložiště a Amazon EBS připojí diskové úložiště Úrovně Ultra jeden pod současně a neposkytuje souběžný přístup.
Pomocí příznaku --enable-ultra-ssd
povolte diskové úložiště úrovně Ultra v clusteru AKS.
Pokud zvolíte Disk Storage úrovně Ultra, mějte na paměti jeho omezení a nezapomeňte vybrat kompatibilní velikost virtuálního počítače. Diskové úložiště Úrovně Ultra je dostupné s místně redundantní replikací úložiště (LRS).
Používání vlastních klíčů (BYOK)
Azure šifruje všechna neaktivní uložená data na spravovaném disku. Ve výchozím nastavení se data šifrují pomocí klíčů spravovaných Microsoftem. Pokud chcete mít větší kontrolu nad šifrovacími klíči, můžete pro clustery AKS zadat klíče spravované zákazníkem pro šifrování neaktivních uložených disků operačního systému i datových disků. Další informace najdete v tématu Používání vlastních klíčů (BYOK) se spravovanými disky Azure ve službě Azure Kubernetes Service (AKS).
Soubory Azure
DiskOvé úložiště nemůže poskytovat souběžný přístup ke svazku, ale ke připojení sdílené složky SMB (Server Message Block) verze 3.1.1 nebo sdílené složky systému souborů NFS (Network File System) verze 4.1 (NFS) verze 4.1, která je podporována službou Azure Storage, můžete použít Azure Files. Tento proces poskytuje úložiště připojené k síti, které je podobné Amazon EFS. Stejně jako u Disk Storage existují dvě možnosti:
- Úložiště Azure Files úrovně Standard je podporováno běžnými pevnými disky (HDD).
- Azure Files Premium Storage zálohuje sdílenou složku s vysoce výkonnými jednotkami SSD. Minimální velikost sdílené složky pro Premium je 100 GB.
Služba Azure Files nabízí následující možnosti replikace účtu úložiště pro ochranu dat v případě selhání:
- Standard_LRS: Místně redundantní úložiště úrovně Standard (LRS)
- Standard_GRS: Geograficky redundantní úložiště úrovně Standard (GRS)
- Standard_ZRS: Zónově redundantní úložiště úrovně Standard (ZRS)
- Standard_RAGRS: Geograficky redundantní úložiště jen pro čtení úrovně Standard (RA-GRS)
- Standard_RAGZRS: Standardní geograficky zónově redundantní úložiště jen pro čtení (RA-GZRS)
- Premium_LRS: Místně redundantní úložiště úrovně Premium (LRS)
- Premium_ZRS: Zónově redundantní úložiště úrovně Premium (ZRS)
Pokud chcete optimalizovat náklady na službu Azure Files, kupte rezervace kapacity služby Azure Files.
Azure NetApp Files
azure NetApp Files je vysoce výkonná služba úložiště souborů účtovaná podle objemu dat spuštěná v Azure a podporuje svazky využívající NFS (NFSv3 nebo NFSv4.1), smba se dvěma protokoly (NFSv3 a SMB nebo NFSv4.1 a SMB). Uživatelé Kubernetes mají dvě možnosti použití svazků Azure NetApp Files pro úlohy Kubernetes:
- Vytvořit svazky Azure NetApp Files staticky. V tomto scénáři je vytváření svazků externí pro AKS. Svazky se vytvářejí pomocí Azure CLI nebo webu Azure Portal a pak se v Kubernetes zveřejňují vytvořením
PersistentVolume
. Staticky vytvořené svazky Azure NetApp Files mají mnoho omezení (například neschopnost rozšířit, potřeba nadprovisioningu atd.). Staticky vytvořené svazky se nedoporučují pro většinu případů použití. - Vytvářejte svazky Azure NetApp Files dynamickya orchestrujte prostřednictvím Kubernetes. Tato metoda je upřednostňovaným způsob, jak vytvořit více svazků přímo prostřednictvím Kubernetes a dosahuje se Astra Trident . Astra Trident je orchestrátor dynamického úložiště kompatibilní s CSI, který pomáhá zřizovat svazky nativně prostřednictvím Kubernetes.
Další informace najdete v tématu Konfigurace služby Azure NetApp Files pro službu Azure Kubernetes Service.
Azure Blob úložiště
ovladač rozhraní azure Blob Storage Container Storage Interface (CSI) je specifikace CSIovladač vyhovující předpisům používaný službou Azure Kubernetes Service (AKS) ke správě životního cyklu služby Azure Blob Storage. CsI je standard pro zveřejnění libovolných systémů blokového a souborového úložiště pro kontejnerizované úlohy v Kubernetes.
Díky přijetí a používání CSI teď může AKS psát, nasazovat a iterovat moduly plug-in, aby zpřístupnily nové nebo vylepšené existující systémy úložiště v Kubernetes. Použití ovladačů CSI v AKS obchází nutnost zasahovat do základního kódu Kubernetes a čekat na jeho vydávací cykly.
Když azure Blob Storage připojíte jako systém souborů do kontejneru nebo podu, můžete použít úložiště objektů blob s řadou aplikací, které pracují s velkým množstvím nestrukturovaných dat. Například:
- Data souboru protokolu
- Obrázky, dokumenty a streamování videa nebo zvuku
- Data zotavení po havárii
K datům v úložišti objektů lze přistupovat aplikacemi pomocí BlobFuse nebo protokolu NFS (Network File System) 3.0. Před zavedením ovladače CSI služby Azure Blob Storage bylo jedinou možností ruční instalace nepodporovaného ovladače pro přístup k úložišti objektů blob z vaší aplikace spuštěné v AKS. Pokud je v AKS povolený ovladač CSI služby Azure Blob Storage, existují dvě předdefinované třídy úložiště: azureblob-fuse-premium a azureblob-nfs-premium.
Chcete-li vytvořit cluster AKS s podporou ovladačů CSI, podívejte se na ovladače CSI v AKS. Další informace o rozdílech v přístupu mezi jednotlivými typy úložiště Azure pomocí protokolu NFS najdete v tématu Porovnání přístupu ke službě Azure Files, Blob Storage a Azure NetApp Files se systémem souborů NFS.
Azure HPC Cache
Azure HPC Cache zrychluje přístup k datům pro úlohy PROSTŘEDÍ HPC se všemi škálovatelnostmi cloudových řešení. Pokud zvolíte toto řešení úložiště, nezapomeňte nasadit cluster AKS v oblasti, která podporuje mezipaměť Azure HPC.
Server NFS
Nejlepší možností pro sdílený přístup nfs je použití služby Azure Files nebo Azure NetApp Files. Server NFS můžete vytvořit také na virtuálním počítači Azure, který exportuje svazky.
Mějte na paměti, že tato možnost podporuje pouze statické zřizování. Sdílené složky NFS musíte zřídit ručně na serveru a nemůžete to udělat automaticky ze služby AKS.
Toto řešení je založené na infrastruktuře jako službě (IaaS), nikoli na platformě jako službě (PaaS). Zodpovídáte za správu serveru NFS, včetně aktualizací operačního systému, vysoké dostupnosti, zálohování, zotavení po havárii a škálovatelnosti.
Používání vlastních klíčů (BYOK) s disky Azure
Azure Storage šifruje všechna neaktivní uložená data v účtu úložiště, včetně disků s operačním systémem a datových disků clusteru AKS. Ve výchozím nastavení se data šifrují pomocí klíčů spravovaných Microsoftem. Pokud chcete mít větší kontrolu nad šifrovacími klíči, můžete zadat klíče spravované zákazníkem, které se použijí pro šifrování ve zbytku operačního systému a datových disků clusterů AKS. Další informace naleznete v tématu:
Azure Container Storage
Azure Container Storage je cloudová služba pro správu svazků, nasazení a orchestraci sestavená nativně pro kontejnery. Integruje se s Kubernetes a umožňuje dynamicky a automaticky zřizovat trvalé svazky pro ukládání dat pro stavové aplikace běžící v clusterech Kubernetes.
Azure Container Storage využívá existující nabídky Azure Storage pro skutečné úložiště dat a nabízí řešení pro orchestraci a správu svazků účelně vytvořené pro kontejnery. Mezi podporované možnosti záložního úložiště patří:
- Disky Azure: Podrobná kontrola skladových položek úložiště a konfigurací Jsou vhodné pro databáze úrovně 1 a pro obecné účely.
- Dočasné disky: Využívá prostředky místního úložiště na uzlech AKS (NVMe nebo temp SSD). Nejvhodnější pro aplikace bez požadavků na stálost dat nebo s podporou integrované replikace dat. AKS zjistí dostupné dočasné úložiště na uzlech AKS a získá je pro nasazení svazku.
- Azure Elastic SAN: Zřízení plně spravovaného prostředku na vyžádání Vhodné pro databáze pro obecné účely, služby streamování a zasílání zpráv, prostředí CD/CI a další úlohy vrstvy 1/vrstvy 2. Několik clusterů má současně přístup k jedné síti SAN, ale trvalé svazky je možné připojit pouze jedním příjemcem najednou.
Doteď poskytuje cloudové úložiště kontejnerům vyžadovaným pomocí jednotlivých ovladačů rozhraní úložiště kontejnerů (CSI) k používání služeb úložiště určených pro úlohy zaměřené na infrastrukturu jako službu (IaaS) a jejich fungování pro kontejnery. To vytváří provozní režii a zvyšuje riziko problémů s dostupností, škálovatelností, výkonem, použitelností a náklady.
Azure Container Storage je odvozeno od OpenEBS, opensourcového řešení, které poskytuje možnosti úložiště kontejnerů pro Kubernetes. Díky nabídce řešení orchestrace spravovaných svazků prostřednictvím řadičů úložiště založených na mikroslužbách v prostředí Kubernetes azure Container Storage umožňuje skutečné nativní úložiště pro kontejnery.
Azure Container Storage je vhodný v následujících scénářích:
Zrychlení iniciativ mezi kontejnery virtuálních počítačů: Azure Container Storage nabízí celé spektrum nabídek blokového úložiště Azure, které byly dříve dostupné jenom pro virtuální počítače a zpřístupňuje je pro kontejnery. Patří sem dočasný disk, který poskytuje extrémně nízkou latenci pro úlohy, jako je Cassandra, a také Azure Elastic SAN, která poskytuje nativní cíle iSCSI a sdílené zřízené cíle.
Zjednodušení správy svazků pomocí Kubernetes: Díky poskytování orchestrace svazků prostřednictvím řídicí roviny Kubernetes umožňuje Azure Container Storage snadno nasazovat a spravovat svazky v Rámci Kubernetes – aniž by bylo nutné se přesouvat mezi různými řídicími rovinami.
Snížení celkových nákladů na vlastnictví (TCO): Zvýšení efektivity nákladů zvýšením škály trvalých svazků podporovaných na pod nebo uzel Snižte prostředky úložiště potřebné ke zřizování dynamickým sdílením prostředků úložiště. Upozorňujeme, že podpora vertikálního navýšení kapacity pro samotný fond úložiště není podporovaná.
Azure Container Storage nabízí následující klíčové výhody:
Rychlé škálování mimo stavové pody: Azure Container Storage připojuje trvalé svazky přes protokoly síťového blokového úložiště (NVMe-oF nebo iSCSI), které nabízejí rychlé připojení a odpojení trvalých svazků. Při inicializaci nebo v produkčním prostředí můžete podle potřeby začít s malými prostředky a nasazovat prostředky a zajistit tak, aby vaše aplikace byly hladověné nebo nenarušované. Odolnost aplikací se vylepšuje díky respawnům podů v clusteru, což vyžaduje rychlý přesun trvalých svazků. Azure Container Storage úzce páruje s životním cyklem podů pomocí vzdálených síťových protokolů, aby podporovala vysoce odolné a vysoce škálovatelné stavové aplikace v AKS.
Vylepšený výkon stavových úloh: Azure Container Storage umožňuje vynikající výkon čtení a poskytuje výkon zápisu téměř na disk pomocí NVMe-oF přes RDMA. Zákazníci tak mohou nákladově efektivně splňovat požadavky na výkon pro různé úlohy kontejnerů, včetně náročných na vstupně-výstupní operace vrstvy 1, pro obecné účely, citlivé na propustnost a vývoj/testování. Urychlete dobu připojení/odpojení trvalých svazků a minimalizujte dobu převzetí služeb při selhání podu.
Orchestrace svazků nativních pro Kubernetes: Vytvářejte fondy úložiště a trvalé svazky, zachytávejte snímky a spravujte celý životní cyklus svazků pomocí
kubectl
příkazů bez přepínání mezi sadami nástrojů pro různé operace řídicí roviny.
Řešení třetích stran
Stejně jako Amazon EKS je AKS implementací Kubernetes a můžete integrovat řešení úložiště Kubernetes třetích stran. Tady je několik příkladů řešení úložiště třetích stran pro Kubernetes:
- Rook promění distribuované systémy úložiště na samoobslužnou správu služeb úložiště automatizací úloh správce úložiště. Rook poskytuje své služby prostřednictvím operátoru Kubernetes pro každého poskytovatele úložiště.
- GlusterFS je bezplatný opensourcový škálovatelný síťový systém, který používá běžný hardware mimo police k vytváření rozsáhlých distribuovaných řešení úložiště pro úlohy náročné na data a náročné na šířku pásma.
- Ceph poskytuje spolehlivou a škálovatelnou jednotnou službu úložiště s objekty, bloky a rozhraními souborů z jednoho clusteru vytvořeného z komoditních hardwarových komponent.
- Multicloudové úložiště objektů MinIO umožňuje podnikům vytvářet datovou infrastrukturu kompatibilní s AWS S3 v jakémkoli cloudu, která poskytuje konzistentní přenosné rozhraní pro vaše data a aplikace.
- Portworx je ucelené řešení pro ukládání a správu dat pro projekty Kubernetes a iniciativy založené na kontejnerech. Portworx nabízí podrobné úložiště, zotavení po havárii, zabezpečení dat a migrace s více cloudy.
- Quobyte poskytuje vysoce výkonné úložiště souborů a objektů, které můžete nasadit na jakémkoli serveru nebo cloudu, abyste mohli škálovat výkon, spravovat velké objemy dat a zjednodušit správu.
- Ondat poskytuje konzistentní vrstvu úložiště napříč libovolnou platformou. V prostředí Kubernetes můžete spustit databázi nebo jakoukoli trvalou úlohu, aniž byste museli spravovat vrstvu úložiště.
Aspekty úložiště Kubernetes
Při výběru řešení úložiště pro Amazon EKS nebo AKS zvažte následující faktory.
Režimy přístupu ke třídě úložiště
V Kubernetes verze 1.21 a novější používají třídy úložiště AKS a Amazon EKS ovladače Container Storage Interface (CSI) pouze a ve výchozím nastavení.
Různé služby podporují třídy úložiště, které mají různé režimy přístupu.
Služba | ReadWriteOnce | ReadOnlyMany | ReadWriteMany |
---|---|---|---|
Disky Azure | X | ||
Soubory Azure | X | X | X |
Azure NetApp Files | X | X | X |
Server NFS | X | X | X |
Azure HPC Cache | X | X | X |
Dynamické a statické zřizování
Dynamicky zřizují svazky , aby se snížily režijní náklady na správu statických vytváření trvalých svazků. Nastavte správnou zásadu uvolnění paměti, abyste se vyhnuli nepoužívaným diskům při odstraňování podů.
Backup
Zvolte nástroj pro zálohování trvalých dat. Nástroj by měl odpovídat vašemu typu úložiště, jako jsou snímky, Azure Backup, Velero nebo Kasten.
Optimalizace nákladů
Pokud chcete optimalizovat náklady na Azure Storage, použijte rezervace Azure. Nezapomeňte zkontrolovat, které služby podporují rezervace Azure. Viz také Správa nákladů pro cluster Kubernetes.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autoři:
- Paul Salvatori | Hlavní systémový inženýr
- Laura Nicolas | Vedoucí architekt cloudových řešení
Další přispěvatelé:
- Chad Kittel | Hlavní softwarový inženýr
- Ed Price | Vedoucí programový manažer obsahu
- Theano Petersen | Technický spisovatel
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- AKS pro odborníky na Amazon EKS
- Správa identit a přístupu Kubernetes
- Monitorování a protokolování Kubernetes
- Zabezpečení síťového přístupu k Kubernetes
- Správa nákladů pro Kubernetes
- Správa uzlů a fondů uzlů Kubernetes
- Zásady správného řízení clusteru