Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zálohování služby Azure Kubernetes Service (AKS) je jednoduchý cloudový nativní proces, který můžete použít k zálohování a obnovení kontejnerizovaných aplikací a dat spuštěných v clusteru AKS. Můžete nakonfigurovat naplánované zálohování pro stav clusteru a data aplikací uložená na trvalých svazcích Kubernetes v ovladači Azure Disk Storage založeném na rozhraní kontejneru (CSI).
Řešení poskytuje podrobné řízení. Konkrétní obor názvů nebo celý cluster můžete zálohovat nebo obnovit tak, že zálohy uložíte místně do kontejneru objektů blob a jako snímky disků. Zálohování AKS můžete použít pro kompletní scénáře, včetně provozního obnovení, klonování vývojářských nebo testovacích prostředí a scénářů upgradu clusteru.
Zálohování AKS se integruje s Centrem zálohování v Azure a poskytuje jedno zobrazení, které vám pomůže řídit, monitorovat, provozovat a analyzovat zálohy ve velkém měřítku. Vaše zálohy jsou dostupné také na webu Azure Portal v části Nastavení v nabídce služby pro instanci AKS.
Jak funguje zálohování AKS?
Zálohování AKS můžete použít k zálohování úloh AKS a trvalých svazků nasazených v clusterech AKS. Řešení vyžaduje, aby bylo v clusteru AKS nainstalované rozšíření Backup. Úložiště záloh komunikuje s aplikací za účelem dokončení operací zálohování a obnovení. Použití rozšíření Backup je povinné. Rozšíření musí být nainstalované v clusteru AKS, aby bylo možné povolit zálohování a obnovení clusteru. Při konfiguraci zálohování AKS přidáte hodnoty pro účet úložiště a kontejner objektů blob, kde se ukládají zálohy.
Společně s rozšířením Backup se ve spravované skupině prostředků AKS vytvoří identita uživatele (označovaná jako identita rozšíření). Identitě rozšíření je v účtu úložiště, kde jsou zálohy uloženy v kontejneru objektů blob, přiřazena role Přispěvatel účtu úložiště.
Aby bylo možné podporovat veřejné, privátní a autorizované clustery založené na IP adresách, zálohování AKS vyžaduje, abyste povolili funkci důvěryhodného přístupu mezi clusterem AKS a trezorem služby Backup. Důvěryhodný přístup umožňuje trezoru služby Backup přístup ke clusteru AKS, protože k němu jsou přiřazena konkrétní oprávnění pro operace zálohování. Další informace o důvěryhodném přístupu AKS najdete v tématu Povolení přístupu k clusterům AKS pomocí důvěryhodného přístupu k prostředkům Azure.
Zálohování AKS umožňuje ukládat zálohy jak do provozní úrovně, tak do vrstvy trezoru. Operační úroveň je místní úložiště dat (zálohy jsou ve vašem tenantovi ukládány jako snímky). Nyní můžete přesunout jeden bod obnovení denně a uložit ho do vrstvy trezoru ve formátu blob (mimo vašeho tenanta) pomocí zálohování AKS. Zálohy uložené ve vrstvě trezoru je také možné použít k obnovení dat v sekundární oblasti (spárovaná oblast Azure).
Po instalaci rozšíření Backup a povolení důvěryhodného přístupu můžete nakonfigurovat naplánované zálohování pro clustery podle zásad zálohování. Zálohy můžete obnovit také do původního clusteru nebo do jiného clusteru ve stejném předplatném a oblasti. Při nastavování konkrétní operace můžete jako konfiguraci zálohování a obnovení zvolit konkrétní obor názvů nebo celý cluster.
Zálohování AKS umožňuje provádění záloh vašich zdrojů dat AKS nasazených v clusteru. Umožňuje také operace zálohování dat uložených v trvalém svazku clusteru. Pak uloží zálohy do úložiště blobů. Trvalé svazky na bázích disku se zálohují jako snímky disků ve skupině prostředků pro snímky. Snímky a stav clusteru v objektu blob se kombinují a tvoří bod obnovení označovaný jako provozní vrstva uložená ve vašem tenantovi. Zálohy (první úspěšné zálohování za den, týden, měsíc nebo rok) v provozní vrstvě můžete také převést na objekty blob a pak je jednou denně přesunout do trezoru (mimo vašeho tenanta).
Poznámka:
Azure Backup v současné době podporuje pouze trvalé svazky v úložišti Azure Disk Storage založeném na ovladačích CSI. Během zálohování řešení přeskočí další typy trvalých svazků, jako jsou sdílené složky Azure a objekty blob. Pokud jste nastavili definovaná pravidla uchovávání pro úroveň trezoru, zálohy lze do trezoru přesunout jen tehdy, jsou-li trvalé svazky menší nebo rovny 1 TB.
Konfigurace zálohování
Pokud chcete nakonfigurovat zálohy pro clustery AKS, nejprve vytvořte úložiště záloh. Trezor poskytuje konsolidované zobrazení záloh nakonfigurovaných napříč různými zdroji dat. Zálohování AKS podporuje zálohy pro operační i trezorovou vrstvu.
Nastavení redundance úložiště trezoru služby Backup (místně redundantní úložiště nebo geograficky redundantní úložiště) se vztahuje pouze na zálohy uložené ve vrstvě trezoru. Pokud chcete použít zálohy pro zotavení po havárii, nastavte redundanci úložiště jako GRS s povoleným obnovením mezi oblastmi .
Poznámka:
Úložiště Backup a cluster AKS, který chcete zálohovat nebo obnovit, musí být ve stejné místní oblasti a předplatném.
Zálohování AKS automaticky spouští naplánovanou zálohovací úlohu. Úloha zkopíruje prostředky clusteru do Blob Storage a vytvoří přírůstkový snímek diskových trvalých svazků podle frekvence zálohování. Zálohy se uchovávají v provozní vrstvě a vrstvě trezoru podle doby uchovávání definované v zásadách zálohování. Zálohy se odstraní, když doba trvání skončí.
Zálohování AKS můžete použít k vytvoření více instancí zálohování pro jeden cluster AKS pomocí různých konfigurací zálohování na instanci zálohování. Doporučujeme však vytvořit každou záložní instanci clusteru AKS jedním z následujících dvou způsobů:
- V jiném trezoru služby Backup
- Použití samostatných zásad zálohování ve stejném trezoru služby Backup
Správa zálohování
Po dokončení konfigurace zálohování clusteru AKS se v trezoru služby Backup vytvoří instance zálohování. Instanci zálohování pro cluster můžete zobrazit v části Zálohování instance AKS na webu Azure Portal. Pro instanci můžete provádět jakékoli operace související se zálohováním, například inicializování obnovení, monitorování, zastavení ochrany atd. prostřednictvím příslušné instance zálohování.
Zálohování AKS se také integruje přímo s centrem zálohování, které vám pomůže centrálně spravovat ochranu všech clusterů AKS a dalších úloh podporovaných zálohováním. Centrum zálohování poskytuje jedno zobrazení pro všechny požadavky na zálohování, jako je monitorování úloh a stav záloh a obnovení. Centrum zálohování pomáhá zajistit dodržování předpisů a zásad správného řízení, analyzovat využití zálohování a provádět důležité operace pro zálohování a obnovení dat.
Zálohování AKS používá spravovanou identitu pro přístup k dalším prostředkům Azure. Ke konfiguraci zálohování clusteru AKS a obnovení ze starší zálohy vyžaduje spravovaná identita trezoru služby Backup sadu oprávnění v clusteru AKS. Vyžaduje také sadu oprávnění pro skupinu prostředků pro snímky, kde se snímky vytvářejí a spravují. Aktuálně vyžaduje klastr AKS sadu oprávnění na skupinu prostředků snímků.
Rozšíření Backup také vytvoří identitu uživatele a přiřadí sadu oprávnění pro přístup k účtu úložiště, kde se zálohy ukládají v objektu blob. Ke spravované identitě můžete udělit oprávnění pomocí řízení přístupu na základě role v Azure. Spravovaná identita je speciální typ služebního principu, který lze použít pouze se zdroji Azure. Přečtěte si další informace o spravovaných identitách.
Obnovení ze zálohy
Data můžete obnovit z libovolného bodu v čase, pro který existuje bod obnovení. Bod obnovení se vytvoří, když je instance zálohy v chráněném stavu. Lze použít k obnovení dat, dokud zásady zálohování umožňují uchování dat.
Azure Backup nabízí možnost obnovit všechny zálohované položky nebo použít podrobné ovládací prvky k výběru konkrétních položek ze záloh pomocí oborů názvů a dalších možností filtru. Obnovení můžete provést také v původním clusteru AKS (zálohovaný cluster) nebo v alternativním clusteru AKS. Zálohy uložené v provozní vrstvě a vrstvě trezoru můžete obnovit do clusteru ve stejném nebo jiném předplatném. K obnovení do clusteru v jiné oblasti (spárované oblasti Azure) lze použít jen zálohy uložené ve vrstvě Vault.
Pokud chcete obnovit zálohu uloženou ve vrstvě trezoru, musíte zadat pracovní umístění, kde jsou zálohovaná data hydratovaná. Toto pracovní umístění zahrnuje skupinu prostředků a účet úložiště ve stejné oblasti a předplatném jako cílový cluster pro obnovení. Během obnovení se v rámci aktualizace vytvoří konkrétní prostředky (kontejner objektů blob, disk a snímky disků). Po dokončení operace obnovení se vymažou.
Azure Backup pro AKS v současné době podporuje následující dvě možnosti pro scénář, ve kterém dojde ke střetu prostředků. Ke konfliktu prostředků dochází, když zálohovaný prostředek má stejný název jako prostředek v cílovém clusteru AKS. Při definování konfigurace obnovení můžete zvolit jednu z těchto možností.
Přeskočit: Tato možnost je ve výchozím nastavení vybraná. Pokud například zálohujete PersistentVolumeClaim (PVC)
pvc-azurediska obnovíte ji v cílovém clusteru, který má PVC stejného názvu, rozšíření zálohování přeskočí obnovení zálohovaného PVC. V takových scénářích doporučujeme odstranit prostředek z clusteru. Potom proveďte operaci obnovení, aby zálohované položky byly dostupné jenom v clusteru a nebyly přeskočeny.Oprava: Tato možnost umožňuje opravu měnitelné proměnné v zálohovaném prostředku na prostředku v cílovém clusteru. Pokud chcete aktualizovat počet replik v cílovém clusteru, můžete se rozhodnout pro opravu jako operaci.
Poznámka:
Zálohování AKS aktuálně neodstraňuje ani znovu nevytváří prostředky v cílovém clusteru, pokud již existují. Pokud se pokusíte obnovit trvalé svazky v původním umístění, odstraňte existující trvalé svazky a pak proveďte operaci obnovení.
Použití vlastních háků pro zálohování a obnovení
Pomocí vlastních hooků můžete pořizovat snímky svazků, které jsou konzistentní s aplikací, určené pro databáze nasazené jako kontejnerizované úlohy.
Co jsou vlastní hooky?
Pomocí zálohování AKS můžete spouštět vlastní háky jako součást operace zálohování a obnovení. Hooky jsou nakonfigurované tak, aby během operace zálohování nebo po obnovení spustily jeden nebo více příkazů pro spuštění v podu v kontejneru.
Tyto hooky definujete jako vlastní prostředek a nasadíte je v clusteru AKS, který chcete zálohovat nebo obnovit. Když je vlastní prostředek nasazen v clustru AKS v potřebném jmenném prostoru, poskytnete podrobnosti jako vstupní data pro proces nastavení zálohování a obnovení. Rozšíření Backup spouští háky definované v souboru YAML.
Poznámka:
Hooky se nespouštějí v shellu na kontejnerech.
Zálohování v AKS má dva typy háků:
- Zálohovací háky
- Obnovení háků
Zálohovací háky
Pokud používáte háček zálohování, můžete nakonfigurovat příkazy tak, aby se hák spustil před jakýmkoli vlastním zpracováním akcí (PreHooks). Háček můžete spustit také po dokončení všech vlastních akcí a všechny další položky určené vlastními akcemi se zálohují (PostHooks).
Například, zde je šablona YAML pro vlastní prostředek, který má být nasazen pomocí záložních háků.
apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
kind: BackupHook
metadata:
# BackupHook CR Name and Namespace
name: bkphookname0
namespace: default
spec:
# BackupHook is a list of hooks to execute before and after backing up a resource.
backupHook:
# BackupHook Name. This is the name of the hook that will be executed during backup.
# compulsory
- name: hook1
# Namespaces where this hook will be executed.
includedNamespaces:
- hrweb
excludedNamespaces:
labelSelector:
# PreHooks is a list of BackupResourceHooks to execute prior to backing up an item.
preHooks:
- exec:
# Container is the container in the pod where the command should be executed.
container: webcontainer
# Command is the command and arguments to execute.
command:
- /bin/uname
- -a
# OnError specifies how Velero should behave if it encounters an error executing this hook
onError: Continue
# Timeout is the amount of time to wait for the hook to complete before considering it failed.
timeout: 10s
- exec:
command:
- /bin/bash
- -c
- echo hello > hello.txt && echo goodbye > goodbye.txt
container: webcontainer
onError: Continue
# PostHooks is a list of BackupResourceHooks to execute after backing up an item.
postHooks:
- exec:
container: webcontainer
command:
- /bin/uname
- -a
onError: Continue
timeout: 10s
Obnovení háků
Ve skriptu pro obnovení háku se vlastní příkazy nebo skripty zapisují tak, aby se spouštěly v kontejnerech obnoveného podu AKS.
Tady je šablona YAML pro vlastní prostředek nasazený prostřednictvím háků pro obnovení:
apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
kind: RestoreHook
metadata:
name: restorehookname0
namespace: default
spec:
# RestoreHook is a list of hooks to execute after restoring a resource.
restoreHook:
# Name is the name of this hook.
- name: myhook-1
# Restored Namespaces where this hook will be executed.
includedNamespaces:
excludedNamespaces:
labelSelector:
# PostHooks is a list of RestoreResourceHooks to execute during and after restoring a resource.
postHooks:
- exec:
# Container is the container in the pod where the command should be executed.
container: webcontainer
# Command is the command and arguments to execute from within a container after a pod has been restored.
command:
- /bin/bash
- -c
- echo hello > hello.txt && echo goodbye > goodbye.txt
# OnError specifies how Velero should behave if it encounters an error executing this hook
# default value is Continue
onError: Continue
# Timeout is the amount of time to wait for the hook to complete before considering it failed.
execTimeout: 30s
# WaitTimeout defines the maximum amount of time Velero should wait for the container to be ready before attempting to run the command.
waitTimeout: 5m
Naučte se, jak používat háky při zálohování AKS.
Během obnovení rozšíření zálohování čeká, až se kontejner spustí, a pak na něm provede příkazy "exec" definované v krocích obnovení.
Pokud provádíte obnovení do stejného jmenného prostoru, který byl zálohován, hák obnovení se nespustí. Hledá pouze nově vytvořený kontejner. K tomuto výsledku dochází bez ohledu na to, jestli používáte politiku přeskočení nebo opravy.
Upravit prostředek při obnovování zálohování do clusteru AKS
Funkci Úpravy prostředků můžete použít k úpravě zálohovaných prostředků Kubernetes během obnovení zadáním oprav configmap nasazených v clusteru AKS.
Vytvořte a aplikujte modifikátor zdrojů v configmapě během obnovy
Abychom vytvořili a použili úpravu zdrojů, postupujte podle těchto kroků:
Vytvořte modifikátor
configmapprostředkuMusíte vytvořit jeden
configmapve svém upřednostňovaném oboru názvů ze souboru YAML, který definoval modifikátory prostředků.Příklad vytvoření příkazu:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "^mysql.*$" namespaces: - bar - foo labelSelector: matchLabels: foo: bar patches: - operation: replace path: "/spec/storageClassName" value: "premium" - operation: remove path: "/metadata/labels/test"- Předchozí krok použije opravu
configmapna všechny kopie trvalých svazků v panelu anamespacess názvem, který začíná nafooamysql. Oprava JSON nahradístorageClassNameprvkempremiuma odebere popisektestz kopií Persistent Volume. -
namespaceTady je původní obor názvů zálohovaného prostředku, nikoli nový obor názvů, do kterého se prostředek obnoví. - Pro konkrétní prostředek můžete zadat několik záplat JSON. Záplaty se použijí podle pořadí uvedeného v
configmap. Následující oprava se použije v daném pořadí. Pokud je pro stejnou cestu zadáno více oprav, přepíše poslední oprava předchozí opravy. - Můžete zadat více
resourceModifierRulesv policonfigmap. Pravidla se použijí v pořadí uvedeném vconfigmap.
- Předchozí krok použije opravu
Vytvořte referenci modifikátoru zdrojů v konfiguraci obnovy
Při provádění operace obnovení zadejte
ConfigMap nameanamespacekde se nasadí jako součást konfigurace obnovení. Tyto podrobnosti je potřeba zadat v rámci pravidel modifikátoru prostředků.
Operace podporované modifikátorem prostředků
Přidat
Operaci Přidat můžete použít k přidání nového bloku do JSON prostředku. V následujícím příkladu operace přidá do specifikace pomocí nasazení nové podrobnosti kontejneru.
version: v1 resourceModifierRules: - conditions: groupResource: deployments.apps resourceNameRegex: "^test-.*$" namespaces: - bar - foo patches: # Dealing with complex values by escaping the yaml - operation: add path: "/spec/template/spec/containers/0" value: "{\"name\": \"nginx\", \"image\": \"nginx:1.14.2\", \"ports\": [{\"containerPort\": 80}]}"Odstranit
Operaci Odebrat můžete použít k odebrání klíče z JSON prostředku. V následujícím příkladu operace odebere popisek, který má
testjako klíč.version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "^mysql.*$" namespaces: - bar - foo labelSelector: matchLabels: foo: bar patches: - operation: remove path: "/metadata/labels/test"Nahradit
Operaci Nahradit můžete použít k nahrazení hodnoty cesty uvedené na alternativní cestě. V následujícím příkladu operace nahradí
storageClassNamev PVC spremium.version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "^mysql.*$" namespaces: - bar - foo labelSelector: matchLabels: foo: bar patches: - operation: replace path: "/spec/storageClassName" value: "premium"Kopírovat
Pomocí operace kopírování můžete zkopírovat hodnotu z jedné cesty z prostředků definovaných do jiné cesty.
version: v1 resourceModifierRules: - conditions: groupResource: deployments.apps resourceNameRegex: "^test-.*$" namespaces: - bar - foo patches: - operation: copy from: "/spec/template/spec/containers/0" path: "/spec/template/spec/containers/1"Testování
Pomocí operace Testování můžete zkontrolovat, jestli v prostředku existuje určitá hodnota. Pokud je hodnota k dispozici, použije se oprava. Pokud hodnota není k dispozici, oprava se nepoužije. V následujícím příkladu operace zkontroluje, zda PVC mají
premiumjakoStorageClassNamea nahradí hostandard, pokud je to pravda.version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: ".*" namespaces: - bar - foo patches: - operation: test path: "/spec/storageClassName" value: "premium" - operation: replace path: "/spec/storageClassName" value: "standard"Oprava JSON
configmapautomaticky použije opravu JSON na všechna nasazení v oborech názvů anginxs názvem, který začíná nanginxdep. Oprava JSON aktualizuje počet12replik pro všechna taková nasazení.version: v1 resourceModifierRules: - conditions: groupResource: deployments.apps resourceNameRegex: "^nginxdep.*$" namespaces: - default - nginx patches: - operation: replace path: "/spec/replicas" value: "12"Oprava sloučení JSON
Tím
configmapse oprava sloučení JSON použije pro všechny aktorace ve výchozím oboru názvů anginxs názvem, který začíná nanginxdep. Oprava sloučení JSON přidá nebo aktualizuje popisekapphodnotounginx1.version: v1 resourceModifierRules: - conditions: groupResource: deployments.apps resourceNameRegex: "^nginxdep.*$" namespaces: - default - nginx mergePatches: - patchData: | { "metadata" : { "labels" : { "app" : "nginx1" } } }Strategická oprava sloučení
Tímto
configmapse aplikuje strategická oprava sloučení na všechny pody ve výchozím oboru názvů s názvem začínajícím nanginx. Strategická oprava sloučení aktualizuje image kontejnerunginxnamcr.microsoft.com/cbl-mariner/base/nginx:1.22.version: v1 resourceModifierRules: - conditions: groupResource: pods resourceNameRegex: "^nginx.*$" namespaces: - default strategicPatches: - patchData: | { "spec": { "containers": [ { "name": "nginx", "image": "mcr.microsoft.com/cbl-mariner/base/nginx:1.22" } ] } }
Která zálohovací úroveň úložiště je podporována zálohováním AKS?
Azure Backup pro AKS podporuje dvě úrovně úložiště jako úložiště dat záloh:
Operační úroveň: Doplněk pro zálohování nainstalovaný v clusteru AKS nejprve provede zálohování pořízením snímků svazků prostřednictvím ovladače CSI. Pak uloží stav clusteru do containeru BLOB ve vašem vlastním tenantu. Tato úroveň podporuje nižší cíl bodu obnovení (RPO) s minimální dobou trvání čtyř hodin mezi dvěma zálohami. Kromě toho pro diskové svazky Azure podporuje provozní úroveň rychlejší obnovení.
Úroveň trezoru: Pokud chcete uchovávat zálohovaná data po delší dobu s nižšími náklady než snímky, zálohování AKS podporuje úložiště dat ve standardním trezoru. Podle pravidel retence nastavených v zásadách zálohování se první úspěšná záloha v rámci dne, týdne, měsíce nebo roku přesune do kontejneru objektů blob mimo vašeho tenanta. Toto úložiště dat umožňuje nejen delší uchovávání dat, ale také poskytuje ochranu proti ransomwaru. Zálohy uložené v trezoru můžete také přesunout do jiné oblasti (spárované oblasti Azure) pro obnovení povolením geografické redundance a obnovení mezi oblastmi v trezoru záloh.
Poznámka:
Zálohovaná data můžete uložit ve standardním úložišti dat trezoru pomocí zásad zálohování definováním pravidel uchovávání informací. Do úrovně trezoru se přesune pouze jeden naplánovaný bod obnovení za den. Podle vybraného pravidla ale můžete do trezoru přesunout libovolný počet záloh na vyžádání.
Vysvětlení cen
Účtují se vám poplatky za:
Poplatek za chráněné instance: Azure Backup pro AKS účtuje poplatek za chráněnou instanci za obor názvů za měsíc. Když nakonfigurujete zálohování pro cluster AKS, vytvoří se chráněná instance. Každá instance má určitý počet oborů názvů, které se zálohují podle definice v konfiguraci zálohování. Další informace o cenách zálohování AKS najdete v tématu Ceny zálohování Azure a jako úlohu vyberte Službu Azure Kubernetes Service.
Poplatek za snímek: Azure Backup pro AKS chrání trvalý svazek založený na disku pořízením snímků uložených ve skupině prostředků ve vašem předplatném Azure. Za tyto snímky se účtují poplatky za úložiště snímků. Vzhledem k tomu, že se snímky nekopírují do trezoru zálohovacího úložiště, náklady na úložiště záloh se neuplatňují. Další informace o cenách snímků najdete v tématu Ceny spravovaných disků.
Poplatek za úložiště zálohování: Azure Backup pro AKS také podporuje ukládání záloh ve vrstvě trezoru. Zálohy můžete ukládat do vrstvy trezoru definováním pravidel uchovávání informací pro standard trezoru v zásadách zálohování, přičemž jeden bod obnovení za den může být přesunut do trezoru. Body obnovy uložené v úrovni trezoru se účtují jako samostatný poplatek (označovaný jako poplatek za úložiště zálohování) podle celkového množství uložených dat (v gigabajtech) a typu redundance povoleného v trezoru zálohování.