Nasazení a správa rozšíření clusteru Kubernetes s podporou Služby Azure Arc

Instance rozšíření můžete vytvářet v clusteru Kubernetes s podporou arc, nastavit požadované a volitelné parametry, včetně možností souvisejících s aktualizacemi a konfiguracemi. Můžete také zobrazit, zobrazit, zobrazit, aktualizovat a odstranit instance rozšíření.

Než začnete, přečtěte si koncepční přehled rozšíření clusteru Kubernetes s podporou Arc a projděte si seznam aktuálně dostupných rozšíření.

Požadavky

  • Nejnovější verze Azure CLI.

  • Nejnovější verze connectedk8s rozšíření Azure k8s-extension CLI Nainstalujte tato rozšíření spuštěním následujících příkazů:

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

    connectedk8s Pokud už jsou rozšíření k8s-extension nainstalovaná, ujistěte se, že jsou aktualizované na nejnovější verzi, a to pomocí následujících příkazů:

    az extension update --name connectedk8s
    az extension update --name k8s-extension
    
  • Existující cluster Kubernetes s podporou Azure Arc s alespoň jedním uzlem operačního systému a typem linux/amd64architektury . Pokud nasazujete Flux (GitOps), můžete použít cluster založený na ARM64 bez linux/amd64 uzlu.

Vytvoření instance rozšíření

Pokud chcete vytvořit novou instanci rozšíření, použijte k8s-extension createpředávání hodnot požadovaných parametrů.

Tento příklad vytvoří instanci rozšíření Azure Monitor container Přehledy v clusteru Kubernetes s podporou Azure Arc:

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

Výstup:

{
  "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"
}

Poznámka:

Služba nemůže uchovávat citlivé informace déle než 48 hodin. Pokud agenti Kubernetes s podporou Azure Arc nemají připojení k síti déle než 48 hodin a nemůžou určit, jestli se má v clusteru vytvořit rozšíření, rozšíření přejde do Failed stavu. Jakmile k tomu dojde, budete muset znovu spustit k8s-extension create , abyste vytvořili nový prostředek Azure s rozšířením.

Přehledy kontejneru Azure Monitoru je jednoúčelové rozšíření (vyžaduje se jenom jedno na cluster). Před instalací stejných rozšíření budete muset vyčistit všechny předchozí instalace chartů Helm kontejner Přehledy u služby Azure Monitor (bez rozšíření). Před spuštěním az k8s-extension createpostupujte podle pokynů pro odstranění chartu Helm .

Povinné parametry

Při vytváření az k8s-extension create instance rozšíření jsou vyžadovány následující parametry.

Název parametru Popis
--name Název instance rozšíření
--extension-type Typ rozšíření , které chcete nainstalovat do clusteru. Příklad: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes
--scope Rozsah instalace pro rozšíření: cluster nebo namespace
--cluster-name Název prostředku Kubernetes s podporou Azure Arc, na kterém se má instance rozšíření vytvořit
--resource-group Skupina prostředků obsahující prostředek Kubernetes s podporou Azure Arc
--cluster-type Typ clusteru, na kterém se má instance rozšíření vytvořit. Ve většině scénářů použijte connectedClustersclustery Kubernetes s podporou Azure Arc.

Volitelné parametry

Podle potřeby použijte jeden nebo více těchto volitelných parametrů společně s požadovanými parametry.

Poznámka:

Instanci rozšíření můžete automaticky upgradovat na nejnovější podverze a verze oprav nastavením auto-upgrade-minor-version na truehodnotu , nebo můžete místo toho nastavit verzi instance rozšíření ručně pomocí parametru --version . Doporučujeme povolit automatické upgrady pro podverze a verze oprav, abyste měli vždy nejnovější opravy zabezpečení a možnosti.

Protože upgrady hlavních verzí můžou zahrnovat zásadní změny, automatické upgrady pro nové hlavní verze instance rozšíření se nepodporují. Můžete zvolit, kdy ručně upgradovat instance rozšíření na novou hlavní verzi.

Název parametru Popis
--auto-upgrade-minor-version Logická vlastnost, která určuje, zda je podverze rozšíření automaticky upgradována. Výchozí nastavení je true. Pokud je tento parametr nastavený na true, parametr nemůžete nastavit version , protože verze se bude dynamicky aktualizovat. Pokud je nastavená hodnota false, rozšíření se automaticky neupgraduje ani pro verze oprav.
--version Verze rozšíření, ke které se má nainstalovat (konkrétní verze pro připnutí instance rozšíření). Nesmí být zadána, pokud auto-upgrade-minor-version je nastavena na truehodnotu .
--configuration-settings Nastavení, které lze předat do rozšíření za účelem řízení jeho funkčnosti. Předávají se jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr použije v příkazu, --configuration-settings-file nedá se použít ve stejném příkazu.
--configuration-settings-file Cesta k souboru JSON s key=value páry, které se mají použít k předávání nastavení konfigurace do rozšíření. Pokud se tento parametr použije v příkazu, --configuration-settings nedá se použít ve stejném příkazu.
--configuration-protected-settings Nastavení, které se nedají načíst pomocí GET Volání rozhraní API nebo az k8s-extension show příkazy. Obvykle se používá k předávání citlivých nastavení. Předávají se jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr použije v příkazu, --configuration-protected-settings-file nedá se použít ve stejném příkazu.
--configuration-protected-settings-file Cesta k souboru JSON s key=value páry, které se mají použít k předávání citlivých nastavení do rozšíření. Pokud se tento parametr použije v příkazu, --configuration-protected-settings nedá se použít ve stejném příkazu.
--release-namespace Tento parametr označuje obor názvů, ve kterém bude verze vytvořena. Relevantní pouze v případě, že scope je nastavena hodnota cluster.
--release-train Autoři rozšíření mohou publikovat verze v různých verzích vlaků, jako Stableje , Previewatd. Pokud tento parametr není explicitně nastavený, Stable použije se jako výchozí.
--target-namespace Označuje obor názvů, ve kterém bude verze vytvořena. Oprávnění systémového účtu vytvořeného pro tuto instanci rozšíření bude omezeno na tento obor názvů. Relevantní pouze v případě, že scope je nastavena hodnota namespace.

Zobrazit podrobnosti o rozšíření

Pokud chcete zobrazit podrobnosti o aktuálně nainstalované instanci rozšíření, použijte k8s-extension showpředávání hodnot povinných parametrů.

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

Výstup:

{
  "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"
}

Výpis všech rozšíření nainstalovaných v clusteru

Pokud chcete zobrazit seznam všech rozšíření nainstalovaných v clusteru, použijte k8s-extension listk předání hodnot povinných parametrů.

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

Výstup:

[
  {
    "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"
  }
]

Aktualizace instance rozšíření

Poznámka:

Informace o konkrétních nastaveních a --configuration-protected-settings možnostech aktualizace najdete v --configuration-settings dokumentaci ke konkrétnímu typu rozšíření. Očekává --configuration-protected-settingsse, že budou všechna nastavení k dispozici, i když se aktualizuje jenom jedno nastavení. Pokud některá z těchto nastavení vynecháte, budou tato nastavení považována za za zastaralá a odstraněná.

Pokud chcete aktualizovat existující instanci rozšíření, použijte k8s-extension updatepředávání hodnot povinných a volitelných parametrů. Povinné a volitelné parametry se mírně liší od parametrů použitých k vytvoření instance rozšíření.

Tento příklad aktualizuje auto-upgrade-minor-version nastavení instance rozšíření Azure Machine Učení natrue:

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

Požadované parametry pro aktualizaci

Název parametru Popis
--name Název instance rozšíření
--cluster-name Název clusteru, na kterém se musí vytvořit instance rozšíření
--resource-group Skupina prostředků obsahující cluster
--cluster-type Typ clusteru, na kterém se má instance rozšíření vytvořit. Pro clustery Kubernetes s podporou Azure Arc použijte connectedClusters. Pro clustery AKS použijte managedClusters.

Volitelné parametry pro aktualizaci

Název parametru Popis
--auto-upgrade-minor-version Logická vlastnost, která určuje, zda je podverze rozšíření automaticky upgradována. Výchozí nastavení je true. Pokud je tento parametr nastavený na hodnotu true, nemůžete parametr nastavit version , protože verze se bude dynamicky aktualizovat. Pokud je nastavená hodnota false, rozšíření se automaticky neupgraduje ani pro verze oprav.
--version Verze rozšíření, ke které se má nainstalovat (konkrétní verze pro připnutí instance rozšíření). Pokud je nastavena truemožnost automatického upgradu podverze, nesmí být zadána .
--configuration-settings Nastavení, které lze předat do rozšíření za účelem řízení jeho funkčnosti. Předávají se jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr použije v příkazu, --configuration-settings-file nedá se použít ve stejném příkazu. Je potřeba zadat pouze nastavení, která vyžadují aktualizaci. Zadaná nastavení budou nahrazena zadanými hodnotami.
--configuration-settings-file Cesta k souboru JSON s dvojicemi key=value , které se mají použít pro předávání nastavení konfigurace do rozšíření. Pokud se tento parametr použije v příkazu, --configuration-settings nedá se použít ve stejném příkazu.
--configuration-protected-settings Nastavení, které se nedají načíst pomocí GET Volání rozhraní API nebo az k8s-extension show příkazy. Obvykle se používá k předávání citlivých nastavení. Předávají se jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr použije v příkazu, --configuration-protected-settings-file nedá se použít ve stejném příkazu. Při aktualizaci chráněného nastavení se očekává, že se zadají všechna chráněná nastavení. Pokud některá z těchto nastavení vynecháte, budou tato nastavení považována za za zastaralá a odstraněná.
--configuration-protected-settings-file Cesta k souboru JSON s dvojicemi key=value , které se mají použít pro předávání citlivých nastavení do rozšíření. Pokud se tento parametr použije v příkazu, --configuration-protected-settings nedá se použít ve stejném příkazu.
--scope Rozsah instalace pro rozšíření - cluster nebo namespace.
--release-train Autoři rozšíření mohou publikovat verze v různých verzích vlaků, jako Stableje , Previewatd. Pokud tento parametr není explicitně nastavený, Stable použije se jako výchozí.

Upgrade instance rozšíření

Jak jsme uvedli dříve, pokud nastavíte auto-upgrade-minor-version hodnotu true, rozšíření se při vydání nové podverze automaticky upgraduje. Ve většině scénářů doporučujeme povolit automatické upgrady. Pokud nastavíte auto-upgrade-minor-version hodnotu false, budete muset rozšíření upgradovat ručně, pokud chcete novější verzi.

K získání nové hlavní instance rozšíření se vyžadují také ruční upgrady. Můžete zvolit, kdy provést upgrade, abyste se vyhnuli neočekávaným změnám způsobujícím chybu s upgrady hlavních verzí.

Pokud chcete instanci rozšíření upgradovat ručně, použijte k8s-extension update a nastavte version parametr tak, aby určil verzi.

Tento příklad aktualizuje instanci rozšíření Azure Machine Učení na verzi x.y.z:

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

Odstranění instance rozšíření

Pokud chcete odstranit instanci rozšíření v clusteru, použijte k8s-extension deletepředávání hodnot povinných parametrů:

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

Poznámka:

Prostředek Azure představující toto rozšíření se okamžitě odstraní. Verze Helm v clusteru přidruženém k tomuto rozšíření se odstraní jenom v případě, že agenti spuštění v clusteru Kubernetes mají síťové připojení a můžou se znovu spojit se službami Azure a načíst požadovaný stav.

Další kroky