Flytta ett AKS-kluster (Azure Kubernetes Service) till en annan region
Den här artikeln beskriver vägledning för att flytta ett Azure Kubernetes Service-kluster till en annan region.
Det finns olika orsaker till varför du kanske vill flytta dina befintliga Azure-resurser från en region till en annan. Du kanske vill:
- Dra nytta av en ny Azure-region.
- Distribuera endast funktioner eller tjänster som är tillgängliga i specifika regioner.
- Uppfylla interna policy- och styrningskrav.
- Justera med företagsfusioner och förvärv
- Uppfylla kapacitetsplaneringskraven.
Kommentar
Kunder med snabba lanseringscykler använder ofta CI/CD-pipelines. I sådana fall kan du överväga att ändra bygg- och versionspipelines i stället för att distribuera AKS-klustren i målregionen igen.
Förutsättningar
Innan du börjar planeringssteget för omlokalisering bör du först granska följande förutsättningar:
Se till att målregionen har tillräckligt med kapacitet (VM SKU:er) för att hantera de nya klusternoderna.
Kontrollera att du har behörighet att skapa resurser till målprenumerationen. Kontrollera att Azure-principen inte begränsar de regioner som AKS kan distribueras till.
(Valfritt) Samla in mallar eller skript för infrastruktur som kod (IaC) som du etablerade AKS-källklustret med.
Samla in Kubernetes-manifesten för att återskapa programarbetsbelastningen i målklustret.
Dricks
Utvärdera en GitOps-metod för arbetsbelastningsdistribution där Kubernetes-konfigurationsmanifest lagras i en git-lagringsplats och tillämpas automatiskt av en GitOps-operatör som körs i klustret, till exempel Flux. En GitOps-metod gör omdistribution av arbetsbelastningar till olika kluster lika enkelt som att installera GitOps-kontrollanten och peka den på lagringsplatsen.
Granska implementeringen av klustrets ingress.
Dokumentera de DNS-ändringar som krävs för att peka en offentlig domän till klustrets ingressslutpunkt.
Granska om klustret lagrar några tillståndsdata, till exempel beständiga volymer, som du behöver migrera till målklustret.
Dokumentera offentlig TLS-certifikathantering och -distribution.
Samla in alla IP-adresser som definierats i AKS API-tjänstens tillåtna lista.
Förstå alla beroende resurser. Några av resurserna kan vara:
- Köer, meddelandebussar, cachemotorer
- Azure Key Vault
- Hanterad identitet
- Konfiguration av virtuellt nätverk. Definiera tillräckligt med undernätsstorlekar för att tillåta containerns IP-tillväxt om du använder azure-modellen för avancerade nätverk
- Offentlig IP-adress
- Virtuell nätverksgateway (VNG). Om plats-till-plats-kommunikation krävs till en lokal miljö i målregionen måste en virtuell nätverksdel skapas i det virtuella målnätverket.
- Privat Azure-slutpunkt. Azure PaaS-resurser som använder privata länkslutpunkter måste granskas och nya privata länkinstanser skapas i målregionen, till exempel ACR, Azure SQL DB, KeyVault osv.
- Azure Application Gateway
- Azure DNS
- Azure Firewall
- Azure Monitor (Container Insights)
- Azure Container Registry kan replikera avbildningar mellan ACR-instanser. För optimala prestanda vid hämtar avbildningar bör registret finnas i målregionen.
Kommentar
Om du använder Azure Container Registry för att autentisera till containerregistret kan det nya AKS-klustrets hanterade identitet vara den tilldelade
AcrPull
RBAC-rollen. - Azure Managed Disks
- Azure Files
Förbereda
Innan du påbörjar klusterflyttsprocessen måste du slutföra följande förberedelser:
För att hantera AKS-klusternoder och poddar distribuerar du det virtuella nätverket med många undernät av tillräcklig storlek om du använder Azure CNI-nätverk.
Om du använder Azure Key Vault distribuerar du Nyckelvalvet.
Se till att relevanta TLS-ingresscertifikat är tillgängliga för distribution, helst i ett säkert lager, till exempel Azure Key Vault.
Distribuera ett containerregister. Synkronisera antingen källregisterbilderna automatiskt eller återskapa och skicka nya avbildningar till målregistret med hjälp av en CI/CD-pipeline eller ett skript.
(Valfritt) Distribuera Azure Application Gateway för att hantera inkommande trafik Application Gateway Ingress Controller (AGIC) kan integreras nära med klustret
Distribuera alla datakällor som krävs av klusterarbetsbelastningen och återställa eller synkronisera källdata.
Kör befintliga IaC-artefakter som definierats i en CI/CD-pipeline som användes för att distribuera källklustret och de tjänster som det är beroende av. Ändra kod- eller mallindataparametrarna för att distribuera om till en annan resursgrupp och Azure-region.
Omdistribuera
Distribuera AKS-klustret utan någon datamigrering genom att följa dessa steg:
Om du vill skapa målmiljön i Azure kör du de befintliga IaC-artefakterna manuellt på en lokal arbetsstation.
Om det inte finns några befintliga IaC-tillgångar kan den aktuella klusterkonfigurationen exporteras som en ARM-mall och köras mot målregionen. IaC-mallar skapas från grunden eller ändras versioner av exempelmallar med hjälp av Bicep, JSON, Terraform eller någon annan lösning.
Kommentar
- Private Link-anslutningar, ACR-anslutna register och Azure Monitor-arbetsytedatakällor exporteras för närvarande inte med den här metoden och måste därför tas bort från den genererade mallen före körningen.
Distribuera containerarbetsbelastningen till AKS-klustret, vilket kan uppnås på två sätt:
- Pull-manifest hämtas från en lagringsplats och tillämpas av en kontrollant som körs i klustret, så kallad GitOps-metod.
- Push (Git: Pusha). Manifest skickas till klustret med kubernetes API-tjänsten och kubectl-kommandoradsverktyget, antingen från en CI/CD-pipeline eller en lokal arbetsstation.
Utför testning och validering för att säkerställa att det nya klustret fungerar som förväntat.
Ändra dina offentliga DNS-poster så att de pekar på den externa inkommande IP-adressen för målklustret (Azure Public Load Balancer IP eller Application Gateway Public IP).
En distribution med hjälp av en global belastningsutjämningslösning som Azure DNS eller Azure Traffic Manager måste lägga till regionen i konfigurationen.
Distribuera om med datamigrering
AKS-arbetsbelastningar som använder lokal lagring, till exempel beständiga volymer, för att lagra data eller värddatabastjänster i klustret kan säkerhetskopieras i ett källkluster och återställas till ett målkluster. Information om hur du utför säkerhetskopiering och återställning finns i Säkerhetskopiera Azure Kubernetes Service med Azure CLI.
Relaterat innehåll
- Använda Azure Portal för att exportera en mall
- Skapa kluster – Bicep
- Skapa kluster – JSON
- Skapa kluster – Terraform
- Baslinjearkitektur för ett AKS-kluster (Azure Kubernetes Service)
- Dagsguide för Azure Kubernetes Services (AKS) dag-2
- Metodtips för lagring och säkerhetskopiering i Azure Kubernetes Service (AKS)