Udostępnij za pośrednictwem


Migrowanie do usługi Azure Kubernetes Service (AKS)

Aby ułatwić zaplanowanie i przeprowadzenie pomyślnej migracji do usługi Azure Kubernetes Service (AKS), ten przewodnik zawiera szczegółowe informacje dotyczące bieżącej zalecanej konfiguracji usługi AKS. Chociaż ten artykuł nie obejmuje każdego scenariusza, zawiera linki do bardziej szczegółowych informacji dotyczących planowania pomyślnej migracji.

W tym artykule podsumujemy szczegóły migracji dla:

  • Konteneryzowanie aplikacji za pośrednictwem usługi Azure Migrate
  • Usługa AKS z usługą Azure Load Balancer (w warstwie Standardowa) i zestawami skalowania maszyn wirtualnych
  • Istniejące dołączone usługi platformy Azure
  • Zapewnianie prawidłowych przydziałów
  • Wysoka dostępność i ciągłość działania
  • Zagadnienia dotyczące aplikacji bezstanowych
  • Zagadnienia dotyczące aplikacji stanowych
  • Wdrażanie konfiguracji klastra

Uwaga

W zależności od scenariusza następujące narzędzia typu open source mogą pomóc w migracji:

Zanim rozpoczniesz

  • Upewnij się, że docelowa wersja rozwiązania Kubernetes znajduje się w obsługiwanym oknie dla usługi AKS. Starsze wersje mogą nie znajdować się w obsługiwanym zakresie i wymagać uaktualnienia wersji do obsługi usługi AKS. Aby uzyskać więcej informacji, zobacz Wersje platformy Kubernetes obsługiwane przez usługę AKS.
  • Jeśli przeprowadzasz migrację do nowszej wersji platformy Kubernetes, zapoznaj się z zasadami obsługi niesymetryczności wersji i wersji platformy Kubernetes.

Ważną praktyką, którą należy uwzględnić w procesie migracji, jest pamiętanie o przestrzeganiu powszechnie używanych wzorców wdrażania i testowania. Testowanie aplikacji przed wdrożeniem jest ważnym krokiem w celu zapewnienia jego jakości, funkcjonalności i zgodności ze środowiskiem docelowym. Może pomóc w zidentyfikowaniu i naprawieniu błędów, usterek lub problemów, które mogą mieć wpływ na wydajność, bezpieczeństwo lub użyteczność aplikacji lub podstawowej infrastruktury.

Migrowanie aplikacji do usługi AKS przy użyciu usługi Azure Migrate

Usługa Azure Migrate oferuje ujednoliconą platformę do oceny i migracji do serwerów lokalnych platformy Azure, infrastruktury, aplikacji i danych. W przypadku usługi AKS można użyć usługi Azure Migrate do wykonywania następujących zadań:

Usługa AKS z zestawami skalowania maszyn wirtualnych i usługa Load Balancer w warstwie Standardowa

Usługa AKS to usługa zarządzana oferująca unikatowe możliwości z niższym obciążeniem zarządzania. Ponieważ usługa AKS jest usługą zarządzaną, musisz wybrać spośród zestawu regionów obsługiwanych przez usługę AKS. Może być konieczne zmodyfikowanie istniejących aplikacji, aby zachować je w dobrej kondycji na płaszczyźnie sterowania zarządzanej przez usługę AKS podczas przejścia z istniejącego klastra do usługi AKS.

Zalecamy używanie klastrów usługi AKS wspieranych przez zestawy skalowania maszyn wirtualnych i moduł równoważenia obciążenia (w warstwie Standardowa), aby upewnić się, że są dostępne następujące funkcje:

Klastry AKS wspierane przez zestawy dostępności maszyn wirtualnych nie obsługują wielu z tych funkcji.

Tworzenie klastra usługi AKS przy użyciu usługi Load Balancer (Standardowa) i zestawów skalowania maszyn wirtualnych

Poniższy przykład obejmuje tworzenie klastra usługi AKS z pulą z jednym węzłem wspieranym przez zestaw skalowania maszyn wirtualnych. Umożliwia automatyczne skalowanie klastra w puli węzłów dla klastra i ustawia co najmniej jeden i maksymalnie trzy węzły.

  1. Utwórz grupę zasobów przy użyciu az group create polecenia .

    az group create --name myResourceGroup --location eastus
    
  2. Utwórz klaster usługi AKS przy użyciu az aks create polecenia .

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 1 \
        --vm-set-type VirtualMachineScaleSets \
        --load-balancer-sku standard \
        --enable-cluster-autoscaler \
        --min-count 1 \
        --max-count 3 \
        --generate-ssh-keys
    

Istniejące dołączone usługi platformy Azure

Podczas migrowania klastrów być może dołączono zewnętrzne usługi platformy Azure. Chociaż następujące usługi nie wymagają rekreacji zasobów, wymagają aktualizacji połączeń z poprzednich do nowych klastrów w celu zachowania funkcjonalności:

  • Azure Container Registry
  • Dziennik analizy Azure
  • Azure Application Insights
  • Azure Traffic Manager
  • Konto usługi Azure Storage
  • Zewnętrzne bazy danych

Zapewnianie prawidłowych przydziałów

Ponieważ inne maszyny wirtualne są wdrażane w ramach subskrypcji podczas migracji, należy sprawdzić, czy limity przydziału i limity są wystarczające dla tych zasobów. W razie potrzeby zażądaj zwiększenia limitu przydziału procesorów wirtualnych.

Może być konieczne zażądanie zwiększenia limitów przydziału sieci, aby upewnić się, że adresy IP nie są wyczerpane. Aby uzyskać więcej informacji, zobacz Sieci i zakresy adresów IP dla usługi AKS.

Aby uzyskać więcej informacji, zobacz Limity subskrypcji i usług platformy Azure. Aby sprawdzić bieżące limity przydziału, w witrynie Azure Portal przejdź do bloku subskrypcji, wybierz subskrypcję, a następnie wybierz pozycję Użycie i limity przydziału.

Wysoka dostępność i ciągłość działania

Jeśli aplikacja nie może obsłużyć przestojów, należy postępować zgodnie z najlepszymi rozwiązaniami dotyczącymi scenariuszy migracji wysokiej dostępności. Przeczytaj więcej na temat najlepszych rozwiązań dotyczących złożonego planowania ciągłości działania, odzyskiwania po awarii i maksymalizacji czasu pracy w usłudze Azure Kubernetes Service (AKS).

W przypadku złożonych aplikacji zwykle migrujesz w czasie, a nie jednocześnie, co oznacza, że stare i nowe środowiska mogą wymagać komunikacji za pośrednictwem sieci. Aplikacje wcześniej korzystające z ClusterIP usług do komunikowania się mogą być narażone jako typ LoadBalancer i odpowiednio zabezpieczone.

Aby ukończyć migrację, należy wskazać klientom nowe usługi działające w usłudze AKS. Zalecamy przekierowanie ruchu przez zaktualizowanie systemu DNS w celu wskazania modułu równoważenia obciążenia siedzącego przed klastrem usługi AKS.

Usługa Azure Traffic Manager może kierować klientów do żądanego klastra Kubernetes i wystąpienia aplikacji. Traffic Manager to oparty na systemie DNS moduł równoważenia obciążenia ruchu, który może dystrybuować ruch sieciowy między regionami. Aby uzyskać najlepszą wydajność i nadmiarowość, należy kierować cały ruch aplikacji przez usługę Traffic Manager przed przejściem do klastra usługi AKS.

W przypadku wdrożenia z wieloma klastrami klienci powinni nawiązać połączenie z nazwą DNS usługi Traffic Manager wskazującą usługi w każdym klastrze usługi AKS. Zdefiniuj te usługi przy użyciu punktów końcowych usługi Traffic Manager. Każdy punkt końcowy jest adresem IP modułu równoważenia obciążenia usługi. Ta konfiguracja służy do kierowania ruchu sieciowego z punktu końcowego usługi Traffic Manager w jednym regionie do punktu końcowego w innym regionie.

Usługa AKS z usługą Traffic Manager

Usługa Azure Front Door to kolejna opcja routingu ruchu dla klastrów usługi AKS. Dzięki usłudze Azure Front Door można definiować i monitorować globalny routing ruchu internetowego oraz zarządzać nim, optymalizując pod kątem najlepszej wydajności i natychmiastowego przejścia w tryb failover w celu zapewnienia wysokiej dostępności.

Zagadnienia dotyczące aplikacji bezstanowych

Migracja aplikacji bezstanowych obejmuje następujące kroki:

  1. Zastosuj definicje zasobów (YAML lub Helm) do nowego klastra.
  2. Upewnij się, że wszystko działa zgodnie z oczekiwaniami.
  3. Przekieruj ruch, aby aktywować nowy klaster.

Zagadnienia dotyczące aplikacji stanowych

Starannie zaplanuj migrację aplikacji stanowych, aby uniknąć utraty danych lub nieoczekiwanych przestojów.

Azure Files

W przeciwieństwie do dysków usługa Azure Files może być instalowana na wielu hostach jednocześnie. W klastrze usługi AKS platforma Azure i platforma Kubernetes nie uniemożliwiają utworzenia zasobnika, którego nadal używa klaster usługi AKS. Aby zapobiec utracie danych i nieoczekiwanemu zachowaniu, upewnij się, że klastry nie zapisują jednocześnie w tych samych plikach.

Jeśli aplikacja może hostować wiele replik wskazujących ten sam udział plików, wykonaj kroki migracji bezstanowej i wdróż definicje YAML w nowym klastrze.

Jeśli nie, możliwe podejście do migracji obejmuje następujące kroki:

  1. Zweryfikuj poprawność działania aplikacji.
  2. Wskaż ruch na żywo do nowego klastra usługi AKS.
  3. Odłącz stary klaster.

Jeśli chcesz rozpocząć od pustego udziału i utworzyć kopię danych źródłowych, możesz użyć az storage file copy polecenia , aby przeprowadzić migrację danych.

Migrowanie woluminów trwałych

Jeśli migrujesz istniejące woluminy trwałe do usługi AKS, zazwyczaj wykonaj następujące kroki:

  1. Zapisywanie w stanie spoczynku w aplikacji.
    • Ten krok jest opcjonalny i wymaga przestoju.
  2. Tworzenie migawek dysków.
  3. Utwórz nowe dyski zarządzane na podstawie migawek.
  4. Tworzenie woluminów trwałych w usłudze AKS.
  5. Zaktualizuj specyfikacje zasobnika, aby używać istniejących woluminów , a nie persistentVolumeClaims (statyczna aprowizacja).
  6. Wdróż aplikację w usłudze AKS.
  7. Zweryfikuj poprawność działania aplikacji.
  8. Wskaż ruch na żywo do nowego klastra usługi AKS.

Ważne

Jeśli nie chcesz przełączać zapisów w stan spoczynku, musisz replikować dane do nowego wdrożenia. W przeciwnym razie pominięto dane zapisane po wykonaniu migawek dysku.

Następujące narzędzia typu open source mogą ułatwić tworzenie dysków zarządzanych i migrowanie woluminów między klastrami Kubernetes:

  • Rozszerzenie kopiowania dysków interfejsu wiersza polecenia platformy Azure kopiuje i konwertuje dyski między grupami zasobów i regionami platformy Azure.
  • Rozszerzenie interfejsu wiersza polecenia platformy Azure kube wylicza woluminy USŁUGI ACS Kubernetes i migruje je do klastra usługi AKS.

Wdrażanie konfiguracji klastra

Zalecamy użycie istniejącego potoku ciągłej integracji i ciągłego dostarczania w celu wdrożenia znanej dobrej konfiguracji w usłudze AKS. Usługi Azure Pipelines można używać do kompilowania i wdrażania aplikacji w usłudze AKS. Sklonuj istniejące zadania wdrażania i upewnij się, że kubeconfig wskazuje nowy klaster usługi AKS.

Jeśli nie jest to możliwe, wyeksportuj definicje zasobów z istniejącego klastra Kubernetes, a następnie zastosuj je do usługi AKS. Do eksportowania obiektów można użyć kubectl polecenia . Na przykład:

kubectl get deployment -o yaml > deployments.yaml

Pamiętaj, aby zbadać dane wyjściowe i usunąć niepotrzebne pola danych na żywo.

Przenoszenie istniejących zasobów do innego regionu

Możesz przenieść klaster usługi AKS do innego regionu obsługiwanego przez usługę AKS. Zalecamy utworzenie nowego klastra w innym regionie, a następnie wdrożenie zasobów i aplikacji w nowym klastrze.

Jeśli masz jakiekolwiek usługi uruchomione w klastrze usługi AKS, musisz zainstalować i skonfigurować te usługi w klastrze w nowym regionie.

W tym artykule podsumowaliśmy szczegóły migracji dla:

  • Konteneryzowanie aplikacji za pośrednictwem usługi Azure Migrate
  • Usługa AKS z usługą Load Balancer (Standardowa) i zestawami skalowania maszyn wirtualnych
  • Istniejące dołączone usługi platformy Azure
  • Zapewnianie prawidłowych przydziałów
  • Wysoka dostępność i ciągłość działania
  • Zagadnienia dotyczące aplikacji bezstanowych
  • Zagadnienia dotyczące aplikacji stanowych
  • Wdrażanie konfiguracji klastra