Dela via


Uppgradera en indirekt ansluten Azure Arc-aktiverad datakontrollant med kubernetes-verktyg

Den här artikeln beskriver hur du uppgraderar en indirekt ansluten Azure Arc-aktiverad datakontrollant med Kubernetes-verktyg.

Under en uppgradering av datakontrollanten kan delar av datakontrollplanet, till exempel anpassade resursdefinitioner (CRD) och containrar uppgraderas. En uppgradering av datakontrollanten orsakar inte avbrott för datatjänsterna (SQL Managed Instance eller PostgreSQL-servern).

I den här artikeln använder du en .yaml-fil för att:

  1. Skapa tjänstkontot för att köra uppgraderingen.
  2. Uppgradera bootstrappern.
  3. Uppgradera datastyrenheten.

Kommentar

Vissa av datatjänstnivåerna och lägena är allmänt tillgängliga och vissa är i förhandsversion. Om du installerar GA- och förhandsversionstjänster på samma datakontrollant kan du inte uppgradera på plats. Om du vill uppgradera tar du bort alla icke-GA-databasinstanser. Du hittar listan över allmänt tillgängliga tjänster och förhandsversionstjänster i Viktig information.

Förutsättningar

Innan du påbörjar uppgraderingen av datakontrollanten behöver du:

  • Ansluta och autentisera till ett Kubernetes-kluster
  • En befintlig Kubernetes-kontext har valts

Du behöver en indirekt ansluten datakontrollant med imageTag: v1.0.0_2021-07-30 eller större.

Installera verktygen

Om du vill uppgradera datakontrollanten med kubernetes-verktyg måste du ha Kubernetes-verktygen installerade.

Exemplen i den här artikeln använder kubectl, men liknande metoder kan användas med andra Kubernetes-verktyg, till exempel Kubernetes-instrumentpanelen eller ochelm om du är bekant med dessa verktyg och Kubernetes yaml/json.

Installera kubectl-verktyget

Visa tillgängliga bilder och välj en version

Hämta listan över tillgängliga avbildningar för datakontrollanten med följande kommando:

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

Kommandot ovan returnerar utdata som i följande exempel:

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

Uppgradera datakontrollant

Det här avsnittet visar hur du uppgraderar en indirekt ansluten datakontrollant.

Kommentar

Vissa av datatjänstnivåerna och lägena är allmänt tillgängliga och vissa är i förhandsversion. Om du installerar GA- och förhandsversionstjänster på samma datakontrollant kan du inte uppgradera på plats. Om du vill uppgradera tar du bort alla icke-GA-databasinstanser. Du hittar listan över allmänt tillgängliga tjänster och förhandsversionstjänster i Viktig information.

Information om uppgraderingsvägar som stöds finns i Uppgradera Azure Arc-aktiverade datatjänster.

Uppgradering

Du måste ansluta och autentisera till ett Kubernetes-kluster och ha en befintlig Kubernetes-kontext vald innan du påbörjar uppgraderingen av datakontrollanten.

Skapa tjänstkontot för att köra uppgraderingen

Viktigt!

Kräver Kubernetes-behörigheter för att skapa tjänstkonto, rollbindning, klusterroll, klusterrollbindning och alla RBAC-behörigheter som beviljas till tjänstkontot.

Spara en kopia av arcdata-deployer.yaml och ersätt platshållaren {{NAMESPACE}} i filen med datakontrollantens namnområde, till exempel: arc. Kör följande kommando för att skapa distributionstjänstkontot med den redigerade filen.

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

Uppgradera bootstrappern

Följande kommando skapar ett jobb för att uppgradera bootstrapper- och relaterade Kubernetes-objekt.

Viktigt!

Yaml-filen i följande kommando mcr.microsoft.com/arcdata som standard. Spara en kopia av yaml-filen och uppdatera den till ett annat register/en annan lagringsplats om det behövs.

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

Uppgradera datastyrenheten

Följande kommando korrigerar avbildningstaggen för att uppgradera datakontrollanten.

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

Övervaka uppgraderingsstatusen

Du kan övervaka uppgraderingens förlopp med kubectl.

kubectl

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

Uppgraderingen är en process i två delar. Först uppgraderas kontrollanten och sedan uppgraderas övervakningsstacken. Under uppgraderingen använder du kubectl get monitors -n <namespace> -w för att visa statusen. Följande utdata returneras:

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

Felsökning

När den önskade versionen är inställd på en viss version försöker bootstrapper-jobbet uppgradera till den versionen tills den lyckas. Om uppgraderingen lyckas RunningVersion uppdateras egenskapen för specifikationen till den nya versionen. Uppgraderingar kan misslyckas för scenarier som en felaktig avbildningstagg, det går inte att ansluta till registret eller lagringsplatsen, otillräcklig processor eller minne som allokerats till containrarna eller otillräcklig lagring.

  1. Kör kommandot nedan för att se om någon av poddarna visar status Error eller har ett stort antal omstarter:

    kubectl get pods --namespace <namespace>
    
  2. Om du vill titta på Händelser för att se om det finns ett fel kör du

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Om du vill hämta en lista över containrarna i poddarna kör du

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Om du vill hämta loggarna för en container kör du

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

Om du vill visa vanliga fel och felsöka dem går du till Felsöka resurser.