Distribuera och hantera Azure Arc-aktiverade Kubernetes-klustertillägg

Du kan skapa tilläggsinstanser i ett Arc-aktiverat Kubernetes-kluster, ange obligatoriska och valfria parametrar, inklusive alternativ som rör uppdateringar och konfigurationer. Du kan också visa, lista, uppdatera och ta bort tilläggsinstanser.

Innan du börjar kan du läsa den konceptuella översikten över Arc-aktiverade Kubernetes-klustertillägg och granska listan över tillgängliga tillägg.

Förutsättningar

  • Den senaste versionen av Azure CLI.

  • De senaste versionerna av och k8s-extension Azure CLI-tilläggenconnectedk8s. Installera dessa tillägg genom att köra följande kommandon:

    az extension add --name connectedk8s
    az extension add --name k8s-extension
    

    Om tilläggen connectedk8s och k8s-extension redan är installerade kontrollerar du att de har uppdaterats till den senaste versionen med hjälp av följande kommandon:

    az extension update --name connectedk8s
    az extension update --name k8s-extension
    
  • Ett befintligt Azure Arc-aktiverat Kubernetes-anslutet kluster med minst en nod av operativsystems- och arkitekturtypen linux/amd64. Om du distribuerar Flux (GitOps) kan du använda ett ARM64-baserat kluster utan nod linux/amd64 .

Skapa tilläggsinstans

Om du vill skapa en ny tilläggsinstans använder du k8s-extension createoch skickar in värden för de obligatoriska parametrarna.

I det här exemplet skapas en Azure Monitor Container Insights-tilläggsinstans i ett Azure Arc-aktiverat Kubernetes-kluster:

az k8s-extension create --name azuremonitor-containers  --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Produktionen:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": null,
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

Kommentar

Tjänsten kan inte behålla känslig information i mer än 48 timmar. Om Azure Arc-aktiverade Kubernetes-agenter inte har nätverksanslutning på mer än 48 timmar och inte kan avgöra om ett tillägg ska skapas i klustret övergår tillägget till Failed tillstånd. När det händer måste du köra k8s-extension create igen för att skapa en ny Azure-resurs för tillägg.

Azure Monitor Container Insights är ett singleton-tillägg (endast ett krävs per kluster). Du måste rensa alla tidigare Helm-diagraminstallationer av Azure Monitor Container Insights (utan tillägg) innan du installerar samma sak via tillägg. Följ anvisningarna för att ta bort Helm-diagrammet innan du kör az k8s-extension create.

Obligatoriska parametrar

Följande parametrar krävs när du använder az k8s-extension create för att skapa en tilläggsinstans.

Parameternamn beskrivning
--name Namn på tilläggsinstansen
--extension-type Den typ av tillägg som du vill installera i klustret. Exempel: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes
--scope Omfång för installation för tillägget: cluster eller namespace
--cluster-name Namnet på den Azure Arc-aktiverade Kubernetes-resursen som tilläggsinstansen måste skapas på
--resource-group Resursgruppen som innehåller Den Azure Arc-aktiverade Kubernetes-resursen
--cluster-type Den klustertyp som tilläggsinstansen måste skapas på. I de flesta scenarier använder du connectedClusters, vilket motsvarar Azure Arc-aktiverade Kubernetes-kluster.

Valfria parametrar

Använd en eller flera av dessa valfria parametrar efter behov för dina scenarier, tillsammans med de obligatoriska parametrarna.

Kommentar

Du kan välja att automatiskt uppgradera tilläggsinstansen till de senaste delversionerna och korrigeringsversionerna genom att ange auto-upgrade-minor-version till true, eller så kan du i stället ange versionen av tilläggsinstansen manuellt med hjälp av parametern --version . Vi rekommenderar att du aktiverar automatiska uppgraderingar för mindre versioner och korrigeringsversioner så att du alltid har de senaste säkerhetskorrigeringarna och funktionerna.

Eftersom större versionsuppgraderingar kan omfatta icke-bakåtkompatibla ändringar stöds inte automatiska uppgraderingar för nya större versioner av en tilläggsinstans. Du kan välja när tilläggsinstanser ska uppgraderas manuellt till en ny huvudversion.

Parameternamn beskrivning
--auto-upgrade-minor-version Boolesk egenskap som avgör om tilläggets delversion uppgraderas automatiskt. Standardinställningen är true. Om den här parametern är inställd på truekan du inte ange parametern version eftersom versionen uppdateras dynamiskt. Om värdet falseär inställt på uppgraderas inte tillägget automatiskt, inte ens för korrigeringsversioner.
--version Version av tillägget som ska installeras (specifik version för att fästa tilläggsinstansen på). Får inte anges om auto-upgrade-minor-version är inställt på true.
--configuration-settings Inställningar som kan skickas till tillägget för att styra dess funktioner. Dessa skickas som blankstegsavgränsade key=value par efter parameternamnet. Om den här parametern används i kommandot kan den --configuration-settings-file inte användas i samma kommando.
--configuration-settings-file Sökväg till en JSON-fil med key=value par som ska användas för att skicka konfigurationsinställningar till tillägget. Om den här parametern används i kommandot kan den --configuration-settings inte användas i samma kommando.
--configuration-protected-settings Inställningar som inte kan hämtas med hjälp av GET API-anrop eller az k8s-extension show -kommandon. Används vanligtvis för att skicka in känsliga inställningar. Dessa skickas som blankstegsavgränsade key=value par efter parameternamnet. Om den här parametern används i kommandot kan den --configuration-protected-settings-file inte användas i samma kommando.
--configuration-protected-settings-file Sökväg till en JSON-fil med key=value par som ska användas för att skicka känsliga inställningar till tillägget. Om den här parametern används i kommandot kan den --configuration-protected-settings inte användas i samma kommando.
--release-namespace Den här parametern anger det namnområde inom vilket versionen ska skapas. Endast relevant om scope är inställt på cluster.
--release-train Tilläggsförfattare kan publicera versioner i olika versionståg, till exempel Stable, Previewosv. Om den här parametern inte anges explicit Stable används som standard.
--target-namespace Anger det namnområde inom vilket versionen ska skapas. Behörigheten för systemkontot som skapats för den här tilläggsinstansen begränsas till det här namnområdet. Endast relevant om scope är inställt på namespace.

Visa tilläggsinformation

Om du vill visa information om en för närvarande installerad tilläggsinstans använder du k8s-extension showoch skickar in värden för de obligatoriska parametrarna.

az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Produktionen:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": "2021-04-02T12:13:49.636+00:00",
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

Visa en lista över alla tillägg som är installerade i klustret

Om du vill visa en lista över alla tillägg som är installerade i ett kluster använder du k8s-extension listoch skickar in värden för de obligatoriska parametrarna.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Produktionen:

[
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-15T02:26:03.5519523+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "Microsoft.AzureMonitor.Containers",
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
    "lastStatusTime": null,
    "name": "myExtInstanceName",
    "releaseTrain": "Stable",
    "resourceGroup": "myRG",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName1"
      }
    },
    "statuses": [],
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  },
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-02T00:41:16.8005159+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "microsoft.azuredefender.kubernetes",
    "id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
    "lastStatusTime": null,
    "name": "microsoft.azuredefender.kubernetes",
    "releaseTrain": "Stable",
    "resourceGroup": "myRg",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName2"
      }
    },
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  }
]

Instans av uppdateringstillägg

Kommentar

Se dokumentationen för den specifika tilläggstypen för att förstå de specifika inställningarna i --configuration-settings och --configuration-protected-settings som kan uppdateras. För --configuration-protected-settingsförväntas alla inställningar anges, även om endast en inställning uppdateras. Om någon av dessa inställningar utelämnas betraktas dessa inställningar som föråldrade och borttagna.

Om du vill uppdatera en befintlig tilläggsinstans använder du k8s-extension updateoch skickar in värden för de obligatoriska och valfria parametrarna. De obligatoriska och valfria parametrarna skiljer sig något från de som används för att skapa en tilläggsinstans.

I det auto-upgrade-minor-version här exemplet uppdateras inställningen för en Azure Machine Learning-tilläggsinstans till true:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters

Obligatoriska parametrar för uppdatering

Parameternamn beskrivning
--name Namn på tilläggsinstansen
--cluster-name Namnet på klustret där tilläggsinstansen måste skapas
--resource-group Resursgruppen som innehåller klustret
--cluster-type Den klustertyp som tilläggsinstansen måste skapas på. För Azure Arc-aktiverade Kubernetes-kluster använder du connectedClusters. För AKS-kluster använder du managedClusters.

Valfria parametrar för uppdatering

Parameternamn beskrivning
--auto-upgrade-minor-version Boolesk egenskap som anger om tilläggets delversion uppgraderas automatiskt. Standardinställningen är true. Om den här parametern är inställd på true kan du inte ange parametern version eftersom versionen uppdateras dynamiskt. Om värdet falseär inställt på uppgraderas inte tillägget automatiskt, inte ens för korrigeringsversioner.
--version Version av tillägget som ska installeras (specifik version för att fästa tilläggsinstansen på). Får inte anges om den automatiska uppgraderingsversionen är inställd på true.
--configuration-settings Inställningar som kan skickas till tillägget för att styra dess funktioner. Dessa skickas som blankstegsavgränsade key=value par efter parameternamnet. Om den här parametern används i kommandot kan den --configuration-settings-file inte användas i samma kommando. Endast de inställningar som kräver en uppdatering måste anges. De angivna inställningarna ersätts med de angivna värdena.
--configuration-settings-file Sökväg till JSON-filen med key=value par som ska användas för att skicka in konfigurationsinställningar till tillägget. Om den här parametern används i kommandot kan den --configuration-settings inte användas i samma kommando.
--configuration-protected-settings Inställningar som inte kan hämtas med hjälp av GET API-anrop eller az k8s-extension show -kommandon. Används vanligtvis för att skicka in känsliga inställningar. Dessa skickas som blankstegsavgränsade key=value par efter parameternamnet. Om den här parametern används i kommandot kan den --configuration-protected-settings-file inte användas i samma kommando. När du uppdaterar en skyddad inställning förväntas alla skyddade inställningar anges. Om någon av dessa inställningar utelämnas betraktas dessa inställningar som föråldrade och borttagna.
--configuration-protected-settings-file Sökväg till en JSON-fil med key=value par som ska användas för att skicka in känsliga inställningar till tillägget. Om den här parametern används i kommandot kan den --configuration-protected-settings inte användas i samma kommando.
--scope Omfång för installation för tillägget – cluster eller namespace.
--release-train Tilläggsförfattare kan publicera versioner i olika versionståg, till exempel Stable, Previewosv. Om den här parametern inte anges explicit Stable används som standard.

Instans av uppgraderingstillägg

Som tidigare nämnts uppgraderas tillägget automatiskt när en ny delversion släpps om du anger auto-upgrade-minor-version sant. I de flesta scenarier rekommenderar vi att du aktiverar automatiska uppgraderingar. Om du anger auto-upgrade-minor-version false måste du uppgradera tillägget manuellt om du vill ha en nyare version.

Manuella uppgraderingar krävs också för att få en ny större instans av ett tillägg. Du kan välja när du ska uppgradera för att undvika oväntade icke-bakåtkompatibla ändringar med större versionsuppgraderingar.

Om du vill uppgradera en tilläggsinstans manuellt använder k8s-extension update du och anger parametern version för att ange en version.

I det här exemplet uppdateras en Azure Machine Learning-tilläggsinstans till version x.y.z:

az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z

Ta bort tilläggsinstans

Om du vill ta bort en tilläggsinstans i ett kluster använder du k8s-extension deleteoch skickar in värden för de obligatoriska parametrarna:

az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Kommentar

Azure-resursen som representerar det här tillägget tas bort omedelbart. Helm-versionen på klustret som är associerat med det här tillägget tas bara bort när agenterna som körs i Kubernetes-klustret har nätverksanslutning och kan kontakta Azure-tjänster igen för att hämta önskat tillstånd.

Nästa steg