Sdílet prostřednictvím


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

Rozšíření v clusteru Kubernetes s podporou Azure Arc můžete použít pro přístup ke službám a scénářům Azure. Tento článek popisuje, jak vytvořit instance rozšíření a nastavit požadované a volitelné parametry, včetně možností pro aktualizace a konfigurace. Naučíte se také zobrazovat, vypisovat, aktualizovat a odstraňovat instance rozšíření.

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

Požadavky

  • Nejnovější verze Azure CLI.

  • Nejnovější verze rozšíření Azure CLI connectedk8s a k8s-extension. Pokud chcete nainstalovat tato rozšíření, spusťte následující příkazy:

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

    Pokud jsou již nainstalována rozšíření connectedk8s a k8s-extension, ujistěte se pomocí těchto příkazů, že jsou aktualizována na nejnovější verzi:

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

Vytvoření instance rozšíření

K vytvoření nové instance rozšíření použijte k8s-extension create příkaz. Pro zástupné symboly požadovaných parametrů použijte hodnoty z vašeho scénáře.

Tento příklad vytvoří přehledy kontejnerů v instanci rozšíření Azure Monitoru v clusteru Kubernetes s podporou Služby 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

Zkontrolujte výstup, který vypadá jako v tomto příkladu:

{
  "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 neuchovává citlivé informace za 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. V tomto scénáři musíte znovu spustit k8s-extension create, abyste vytvořili nový zdroj rozšíření Azure.

Pro každý cluster se vyžaduje jenom jeden přehled kontejnerů v rozšíření Azure Monitoru. Než nainstalujete Container Insights prostřednictvím rozšíření, musíte odstranit všechny předchozí instalace Helm chartů pro Container Insights, které nepoužívají rozšíření. Před spuštěním az k8s-extension create dokončete kroky pro odstranění Helm chartu.

Povinné parametry

Následující tabulka popisuje parametry, které jsou potřeba při az k8s-extension create vytváření instance rozšíření:

Název parametru Popis
--name Název instance rozšíření.
--extension-type Typ rozšíření , které chcete nainstalovat do clusteru. Například Microsoft.AzureMonitor.Containers nebo microsoft.azuredefender.kubernetes.
--scope Rozsah instalace rozšíření. Použijte 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ů, která obsahuje 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 connectedClusterstyp clusteru pro cluster Kubernetes s podporou Azure Arc.

Volitelné parametry

Můžete použít jeden nebo více těchto volitelných parametrů s požadovanými parametry pro váš scénář.

Poznámka:

Instanci rozšíření můžete automaticky upgradovat na nejnovější podverze a verze oprav nastavením auto-upgrade-minor-version na true. Verzi instance rozšíření můžete také nastavit ručně pomocí parametru --version . Doporučujeme povolit automatické upgrady pro vedlejší a opravné verze, abyste měli vždy nejnovější bezpečnostní opravy a funkce.

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á nastaví, zda se menší verze rozšíření aktualizuje automaticky. Výchozí nastavení je true. Pokud je tento parametr nastavený na true, nemůžete parametr nastavit version , protože verze se dynamicky aktualizuje. Pokud je tento parametr nastavený na false, rozšíření se neupgraduje automaticky, ani pro verze oprav.
--version Verze rozšíření, která má být nainstalována (konkrétní verze pro přiřazení instance rozšíření). Parametr version nelze nastavit, pokud je auto-upgrade-minor-version nastavený na true.
--configuration-settings Nastavení, která lze předat do rozšíření pro řízení jeho funkčnosti. Tato nastavení se předávají jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr používá v příkazu, nemůžete ve stejném příkazu použít --configuration-settings-file.
--configuration-settings-file Cesta k souboru JSON s key=value páry, které se mají použít pro předávání nastavení konfigurace do rozšíření. Pokud tento parametr použijete v příkazu, nemůžete ve stejném příkazu použít --configuration-settings.
--configuration-protected-settings Nastavení, která se nedají načíst pomocí GET volání rozhraní API nebo az k8s-extension show příkazů Obvykle se používá k předávání citlivých nastavení. Tato nastavení se předávají jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se tento parametr používá v příkazu, nemůžete ve stejném příkazu použít --configuration-protected-settings-file.
--configuration-protected-settings-file Cesta k souboru JSON s dvojicemi key=value , které se mají použít k předání citlivých nastavení do rozšíření. Pokud se tento parametr používá v příkazu, nemůžete použít --configuration-protected-settings v tom samém příkazu.
--release-namespace Tento parametr označuje obor názvů, ve kterém se má verze vytvořit. Tento parametr je relevantní pouze v případě, že scope je nastaven na cluster.
--release-train Autor rozšíření může publikovat verze v různých vydávacích větvích, jako například Stable nebo Preview. Pokud tento parametr není explicitně nastavený, Stable je výchozí hodnota.
--target-namespace Určuje obor názvů, ve kterém se má verze vytvořit. Oprávnění pro systémový účet vytvořený pro tuto instanci rozšíření je omezena na tento obor názvů. Toto nastavení je relevantní pouze pokud je scope nastaveno na namespace.

Zobrazit podrobnosti o rozšíření

Pokud chcete zobrazit podrobnosti o aktuálně nainstalované instanci rozšíření, použijte k8s-extension show příkaz. V kódu použijte hodnoty z vašeho scénáře pro zástupné symboly požadovaných parametrů.

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

Zkontrolujte výstup, který vypadá jako v tomto příkladu:

{
  "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 list příkaz. V kódu použijte hodnoty z vašeho scénáře pro zástupné symboly požadovaných parametrů.

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

Zkontrolujte výstup, který vypadá jako v tomto příkladu:

[
  {
    "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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:

Chcete-li porozumět konkrétním nastavením v --configuration-settings a --configuration-protected-settings, která lze aktualizovat, podívejte se do dokumentace pro konkrétní typ rozšíření. Zadejte všechna nastavení pro --configuration-protected-settings, i když se aktualizuje pouze jedno nastavení. Pokud některá z těchto nastavení vynecháte, považují se vynechaná nastavení za zastaralá a budou odstraněna.

Chcete-li aktualizovat existující instanci rozšíření, použijte k8s-extension update. Předejte hodnoty povinných a volitelných parametrů. Povinné a volitelné parametry se mírně liší od parametrů, které používáte k vytvoření instance rozšíření.

Tento příklad aktualizuje auto-upgrade-minor-version nastavení instance rozšíření Azure Machine Learning na 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

Požadované parametry pro aktualizaci

Název parametru Popis
--name Název instance rozšíření.
--cluster-name Název clusteru, na kterém je instance rozšíření vytvořena.
--resource-group Skupina prostředků, která obsahuje 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 se podverze rozšíření automaticky upgraduje. Výchozí nastavení je true. Pokud je tento parametr nastavený na true, nemůžete parametr nastavit version , protože verze se dynamicky aktualizuje. Pokud je parametr nastavený na false, rozšíření se automaticky neupgraduje ani pro verze oprav.
--version Verze rozšíření, která má být nainstalována (konkrétní verze pro pevné přiřazení instance rozšíření). Nesmí být zadáno, pokud je auto-upgrade-minor-version nastaveno na true.
--configuration-settings Nastavení, která lze předat do rozšíření pro řízení jeho funkčnosti. Tato nastavení se předávají jako dvojice oddělené key=value mezerami za názvem parametru. Pokud se parametr používá 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í se nahradí zadanými hodnotami.
--configuration-settings-file Cesta k souboru JSON, který obsahuje key=value páry, které se mají použít pro předání nastavení konfigurace do rozšíření. Pokud se tento parametr používá v příkazu, nemůžete použít --configuration-settings ve stejném příkazu.
--configuration-protected-settings Nastavení, která nelze získat pomocí GET volání API nebo az k8s-extension show příkazů. Obvykle se používá k předávání citlivých nastavení. Tato nastavení se předávají 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í nakonfigurujte všechna chráněná nastavení. Pokud některá z těchto nastavení vynecháte, považují se tato nastavení za zastaralá a odstraní se.
--configuration-protected-settings-file Cesta k souboru JSON, jenž obsahuje páry key=value, které se mají použít pro předávání citlivých nastavení do rozšíření. Pokud se tento parametr používá v příkazu, nemůžete použít --configuration-protected-settings ve stejném příkazu.
--scope Rozsah instalace rozšíření. Použijte buď cluster nebo namespace.
--release-train Autor rozšíření může publikovat verze v různých verzních vedeních, jako například Stable nebo Preview. Pokud tento parametr není explicitně nastavený, Stable je výchozí hodnota.

Upgradovat rozšíření instance

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 na false, musíte rozšíření upgradovat ručně, pokud chcete získat novější verzi.

K získání nové hlavní instance rozšíření se vyžadují také ruční upgrady. Můžete se rozhodnout, kdy provést upgrade, abyste se vyhnuli neočekávaným změnám, které by mohly narušit fungování, při upgradech hlavních verzí.

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

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

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

Smazat instanci rozšíření

Pokud chcete odstranit instanci rozšíření v clusteru, použijte k8s-extension delete příkaz. Pro zástupné symboly požadovaných parametrů použijte hodnoty z vašeho scénáře.

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

Poznámka:

Prostředek Azure, který představuje 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 spojit se službami Azure, aby získaly požadovaný stav.