Een indirect verbonden gegevenscontroller met Azure Arc upgraden met behulp van Kubernetes-hulpprogramma's
In dit artikel wordt uitgelegd hoe u een indirect verbonden gegevenscontroller met Azure Arc kunt upgraden met Kubernetes-hulpprogramma's.
Tijdens een upgrade van een gegevenscontroller kunnen delen van het gegevensbeheervlak, zoals Aangepaste resourcedefinities (CRD's) en containers, worden bijgewerkt. Een upgrade van de gegevenscontroller veroorzaakt geen downtime voor de gegevensservices (SQL Managed Instance of PostgreSQL-server).
In dit artikel past u een YAML-bestand toe op:
- Maak het serviceaccount voor het uitvoeren van een upgrade.
- Voer een upgrade uit voor de bootstrapper.
- Voer een upgrade uit van de gegevenscontroller.
Notitie
Sommige gegevensserviceslagen en -modi zijn algemeen beschikbaar en sommige zijn in preview. Als u GA- en preview-services op dezelfde gegevenscontroller installeert, kunt u geen upgrade uitvoeren. Als u een upgrade wilt uitvoeren, verwijdert u alle niet-GA-database-exemplaren. U vindt de lijst met algemeen beschikbare en preview-services in de releaseopmerkingen.
Vereisten
Voordat u begint met de upgrade van de gegevenscontroller, hebt u het volgende nodig:
- Verbinding maken en verifiëren met een Kubernetes-cluster
- Een bestaande Kubernetes-context geselecteerd
U hebt een indirect verbonden gegevenscontroller met de imageTag: v1.0.0_2021-07-30
of meer nodig.
Hulpprogramma's installeren
Als u de gegevenscontroller wilt upgraden met behulp van Kubernetes-hulpprogramma's, moet u de Kubernetes-hulpprogramma's hebben geïnstalleerd.
De voorbeelden in dit artikel gebruiken kubectl
, maar vergelijkbare benaderingen kunnen worden gebruikt met andere Kubernetes-hulpprogramma's, zoals het Kubernetes-dashboard, oc
of helm als u bekend bent met deze hulpprogramma's en Kubernetes yaml/json.
Het kubectl-hulpprogramma installeren
Beschikbare installatiekopieën weergeven en een versie kiezen
Haal de lijst met beschikbare installatiekopieën voor de gegevenscontroller op met de volgende opdracht:
az arcdata dc list-upgrades --k8s-namespace <namespace>
Met de bovenstaande opdracht wordt uitvoer geretourneerd zoals in het volgende voorbeeld:
Found 2 valid versions. The current datacontroller version is <current-version>.
<available-version>
...
Gegevenscontroller upgraden
In deze sectie wordt beschreven hoe u een indirect verbonden gegevenscontroller kunt upgraden.
Notitie
Sommige gegevensserviceslagen en -modi zijn algemeen beschikbaar en sommige zijn in preview. Als u GA- en preview-services op dezelfde gegevenscontroller installeert, kunt u geen upgrade uitvoeren. Als u een upgrade wilt uitvoeren, verwijdert u alle niet-GA-database-exemplaren. U vindt de lijst met algemeen beschikbare en preview-services in de releaseopmerkingen.
Zie Gegevensservices met Azure Arc upgraden voor ondersteunde upgradepaden.
Upgraden
U moet verbinding maken en verifiëren bij een Kubernetes-cluster en een bestaande Kubernetes-context hebben geselecteerd voordat u de upgrade van de gegevenscontroller start.
Het serviceaccount maken voor het uitvoeren van een upgrade
Belangrijk
Vereist Kubernetes-machtigingen voor het maken van een serviceaccount, rolbinding, clusterrol, clusterrolbinding en alle RBAC-machtigingen die aan het serviceaccount worden verleend.
Sla een kopie van arcdata-deployer.yaml op en vervang de tijdelijke aanduiding {{NAMESPACE}}
in het bestand door de naamruimte van de gegevenscontroller, bijvoorbeeld: arc
. Voer de volgende opdracht uit om het serviceaccount voor de deployer te maken met het bewerkte bestand.
kubectl apply --namespace arc -f arcdata-deployer.yaml
De bootstrapper upgraden
Met de volgende opdracht maakt u een taak voor het upgraden van de bootstrapper en gerelateerde Kubernetes-objecten.
Belangrijk
Het yaml-bestand in de volgende opdracht wordt standaard mcr.microsoft.com/arcdata. Sla indien nodig een kopie van het yaml-bestand op en werk het bij naar een ander register/opslagplaats.
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/bootstrapper-upgrade-job.yaml
De gegevenscontroller upgraden
Met de volgende opdracht wordt de installatiekopieëntag gepatcht om de gegevenscontroller te upgraden.
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/data-controller-upgrade.yaml
De upgradestatus bewaken
U kunt de voortgang van de upgrade bewaken met kubectl.
kubectl
kubectl get datacontrollers --namespace <namespace> -w
kubectl get monitors --namespace <namespace> -w
De upgrade is een tweedelige procedure. Eerst wordt de controller bijgewerkt en vervolgens wordt de bewakingsstack bijgewerkt. Gebruik tijdens de upgrade kubectl get monitors -n <namespace> -w
om de status weer te geven. De uitvoer is:
NAME STATUS AGE
monitorstack Updating 36m
monitorstack Updating 36m
monitorstack Updating 39m
monitorstack Updating 39m
monitorstack Updating 41m
monitorstack Ready 41m
Probleemoplossing
Wanneer de gewenste versie is ingesteld op een specifieke versie, probeert de bootstrapper-taak een upgrade uit te voeren naar die versie totdat deze slaagt. Als de upgrade is geslaagd, wordt de RunningVersion
eigenschap van de specificatie bijgewerkt naar de nieuwe versie. Upgrades kunnen mislukken voor scenario's zoals een onjuiste installatiekopieëntag, kan geen verbinding maken met register of opslagplaats, onvoldoende CPU of geheugen toegewezen aan de containers of onvoldoende opslag.
Voer de onderstaande opdracht uit om te zien of een van de pods een
Error
status heeft of een groot aantal herstarts heeft:kubectl get pods --namespace <namespace>
Als u gebeurtenissen wilt bekijken om te zien of er een fout is, voert u de opdracht uit
kubectl describe pod <pod name> --namespace <namespace>
Als u een lijst met de containers in de pods wilt ophalen, voert u de opdracht uit
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
Voer de opdracht uit om de logboeken voor een container op te halen
kubectl logs <pod name> <container name> --namespace <namespace>
Als u veelvoorkomende fouten wilt bekijken en problemen wilt oplossen, gaat u naar Bronnen voor probleemoplossing.