Udostępnij za pośrednictwem


Uaktualnianie pośrednio połączonego kontrolera danych z obsługą usługi Azure Arc przy użyciu narzędzi platformy Kubernetes

W tym artykule wyjaśniono, jak uaktualnić pośrednio połączony kontroler danych z obsługą usługi Azure Arc za pomocą narzędzi platformy Kubernetes.

Podczas uaktualniania kontrolera danych można uaktualnić części płaszczyzny sterowania danymi, takie jak niestandardowe definicje zasobów (CRD) i kontenery. Uaktualnienie kontrolera danych nie spowoduje przestoju usług danych (serwera SQL Managed Instance lub PostgreSQL).

W tym artykule zastosujesz plik yaml do:

  1. Utwórz konto usługi na potrzeby uruchamiania uaktualnienia.
  2. Uaktualnij program inicjerowy.
  3. Uaktualnij kontroler danych.

Uwaga

Niektóre warstwy i tryby usług danych są ogólnie dostępne, a niektóre są dostępne w wersji zapoznawczej. Jeśli instalujesz ogólnie dostępne usługi i usługi w wersji zapoznawczej na tym samym kontrolerze danych, nie możesz przeprowadzić uaktualnienia. Aby uaktualnić, usuń wszystkie wystąpienia bazy danych spoza ga. Listę ogólnie dostępnych usług i usług w wersji zapoznawczej można znaleźć w informacjach o wersji.

Wymagania wstępne

Przed rozpoczęciem uaktualniania kontrolera danych potrzebne są następujące elementy:

  • Aby nawiązać połączenie i uwierzytelnić się w klastrze Kubernetes
  • Wybrany istniejący kontekst kubernetes

Potrzebujesz pośrednio połączonego kontrolera danych z lub nowszym imageTag: v1.0.0_2021-07-30 .

Instalowanie narzędzi

Aby uaktualnić kontroler danych przy użyciu narzędzi Platformy Kubernetes, musisz mieć zainstalowane narzędzia Kubernetes.

W przykładach w tym artykule użyto kubectlmetody , ale podobne podejścia mogą być używane z innymi narzędziami kubernetes, takimi jak pulpit nawigacyjny kubernetes, lub helm, ocjeśli znasz te narzędzia i plik Yaml/json platformy Kubernetes.

Instalowanie narzędzia kubectl

Wyświetlanie dostępnych obrazów i wybieranie wersji

Pobierz listę dostępnych obrazów kontrolera danych za pomocą następującego polecenia:

az arcdata dc list-upgrades --k8s-namespace <namespace>

Powyższe polecenie zwraca dane wyjściowe, takie jak w poniższym przykładzie:

Found 2 valid versions.  The current datacontroller version is <current-version>.
<available-version>
...

Uaktualnianie kontrolera danych

W tej sekcji pokazano, jak uaktualnić pośrednio połączony kontroler danych.

Uwaga

Niektóre warstwy i tryby usług danych są ogólnie dostępne, a niektóre są dostępne w wersji zapoznawczej. Jeśli instalujesz ogólnie dostępne usługi i usługi w wersji zapoznawczej na tym samym kontrolerze danych, nie możesz przeprowadzić uaktualnienia. Aby uaktualnić, usuń wszystkie wystąpienia bazy danych spoza ga. Listę ogólnie dostępnych usług i usług w wersji zapoznawczej można znaleźć w informacjach o wersji.

Aby uzyskać obsługiwane ścieżki uaktualniania, zobacz Uaktualnianie usług danych z obsługą usługi Azure Arc.

Uaktualnienie

Przed rozpoczęciem uaktualniania kontrolera danych musisz nawiązać połączenie z klastrem Kubernetes i uwierzytelnić się w klastrze Kubernetes.

Tworzenie konta usługi na potrzeby uruchamiania uaktualnienia

Ważne

Wymaga uprawnień platformy Kubernetes do tworzenia konta usługi, powiązania roli, roli klastra, powiązania roli klastra i wszystkich uprawnień RBAC udzielanych do konta usługi.

Zapisz kopię pliku arcdata-deployer.yaml i zastąp symbol zastępczy {{NAMESPACE}} w pliku przestrzenią nazw kontrolera danych, na przykład: arc. Uruchom następujące polecenie, aby utworzyć konto usługi wdrażania przy użyciu edytowanego pliku.

kubectl apply --namespace arc -f arcdata-deployer.yaml

Uaktualnianie programu inicjjącego

Następujące polecenie tworzy zadanie uaktualniania programu inicjatora i powiązanych obiektów Kubernetes.

Ważne

Plik yaml w poniższym poleceniu jest domyślnie mcr.microsoft.com/arcdata. Zapisz kopię pliku yaml i zaktualizuj go do innego rejestru/repozytorium, jeśli to konieczne.

kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/bootstrapper-upgrade-job.yaml

Uaktualnianie kontrolera danych

Następujące polecenie poprawia tag obrazu w celu uaktualnienia kontrolera danych.

kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/data-controller-upgrade.yaml

Monitorowanie stanu uaktualnienia

Postęp uaktualniania można monitorować za pomocą narzędzia kubectl.

kubectl

kubectl get datacontrollers --namespace <namespace> -w
kubectl get monitors --namespace <namespace> -w

Uaktualnienie jest dwuczęściowym procesem. Najpierw kontroler zostanie uaktualniony, a następnie stos monitorowania zostanie uaktualniony. Podczas uaktualniania użyj polecenia kubectl get monitors -n <namespace> -w , aby wyświetlić stan. Dane wyjściowe będą:

NAME           STATUS     AGE
monitorstack   Updating   36m
monitorstack   Updating   36m
monitorstack   Updating   39m
monitorstack   Updating   39m
monitorstack   Updating   41m
monitorstack   Ready      41m

Rozwiązywanie problemów

Gdy żądana wersja zostanie ustawiona na określoną wersję, zadanie programu inicjujące podejmie próbę uaktualnienia do tej wersji, dopóki nie zakończy się pomyślnie. Jeśli uaktualnienie zakończy się pomyślnie, RunningVersion właściwość specyfikacji zostanie zaktualizowana do nowej wersji. Uaktualnienia mogą zakończyć się niepowodzeniem w scenariuszach, takich jak nieprawidłowy tag obrazu, nie można nawiązać połączenia z rejestrem lub repozytorium, niewystarczającą ilością procesora CPU lub pamięci przydzieloną do kontenerów lub niewystarczającą ilością miejsca do magazynowania.

  1. Uruchom poniższe polecenie, aby sprawdzić, czy którykolwiek z zasobników ma Error stan lub ma dużą liczbę ponownych uruchomień:

    kubectl get pods --namespace <namespace>
    
  2. Aby sprawdzić, czy wystąpił błąd, uruchom polecenie

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Aby uzyskać listę kontenerów w zasobnikach, uruchom polecenie

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Aby pobrać dzienniki dla kontenera, uruchom polecenie

    kubectl logs <pod name> <container name> --namespace <namespace>
    

Aby wyświetlić typowe błędy i sposoby ich rozwiązywania, przejdź do artykułu Rozwiązywanie problemów z zasobami.