Bereitstellen und Verwalten Azure Arc-fähiger Kubernetes-Clustererweiterungen
Sie können Erweiterungsinstanzen in einem Kubernetes-Cluster mit Arc-Unterstützung erstellen und erforderliche und optionale Parameter festlegen, einschließlich Optionen für Updates und Konfigurationen. Sie können Erweiterungsinstanzen anzeigen, auflisten, aktualisieren und löschen.
Bevor Sie beginnen, lesen Sie den konzeptionellen Überblick über Kubernetes-Clustererweiterungen mit Arc-Unterstützung und überprüfen Sie die Liste der derzeit verfügbaren Erweiterungen.
Voraussetzungen
Die neueste Version von Azure CLI.
Die neuesten Versionen der
connectedk8s
undk8s-extension
Azure CLI-Erweiterungen. Installieren Sie diese Erweiterungen, indem Sie die folgenden Befehle ausführen:az extension add --name connectedk8s az extension add --name k8s-extension
Wenn die Erweiterungen
connectedk8s
undk8s-extension
bereits installiert sind, aktualisieren Sie sie mit dem folgenden Befehl auf die neueste Version:az extension update --name connectedk8s az extension update --name k8s-extension
Ein bestehender Cluster mit Azure Arc-Unterstützung, der mit Kubernetes verbunden ist, mit mindestens einem Knoten des Betriebssystems und des Architekturtyps
linux/amd64
. Wenn Sie Flux (GitOps) einsetzen, können Sie einen ARM64-basierten Cluster ohne einenlinux/amd64
-Knoten verwenden.- Wenn Sie noch keine Verbindung mit einem Cluster hergestellt haben, verwenden Sie unseren Schnellstart.
- Aktualisieren Sie Ihre Agents auf die neueste Version.
Erstellen einer Erweiterungsinstanz
Um eine neue Erweiterungsinstanz zu erstellen, verwenden Sie k8s-extension create
und übergeben Sie Werte für die erforderlichen Parameter.
Dieses Beispiel erstellt eine Erweiterungsinstanz für Azure Monitor Container Insights in Ihrem Kubernetes-Cluster mit Azure Arc-Unterstützung:
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Ausgabe:
{
"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"
}
Hinweis
Der Dienst kann vertrauliche Informationen nicht für mehr als 48 Stunden aufbewahren. Wenn Kubernetes-Agents mit Azure Arc-Unterstützung für mehr als 48 Stunden nicht über Netzwerkkonnektivität verfügen und nicht bestimmen können, ob eine Erweiterung auf dem Cluster erstellt werden soll, geht die Erweiterung in den Status Failed
über. Sobald das erfolgt, müssen Sie k8s-extension create
erneut ausführen, um eine neue Erweiterungs-Azure-Ressource zu erstellen.
Azure Monitor Container Insights ist eine Singleton-Erweiterung (nur eine pro Cluster erforderlich). Sie müssen alle vorherigen Helm-Diagramminstallationen von Azure Monitor Container Insights (ohne Erweiterungen) bereinigen, bevor Sie die gleichen über Erweiterungen installieren. Befolgen Sie die Anweisungen zum Löschen des Helm-Diagramms vor der Ausführung von az k8s-extension create
.
Erforderliche Parameter
Die folgenden Parameter sind erforderlich, wenn Sie az k8s-extension create
zum Erstellen einer Erweiterungsinstanz verwenden.
Parametername | BESCHREIBUNG |
---|---|
--name |
Name der Erweiterungsinstanz |
--extension-type |
Der Typ der Erweiterung, die Sie auf dem Cluster installieren möchten. Beispiel: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes |
--scope |
Umfang der Installation für die Erweiterung – cluster oder namespace |
--cluster-name |
Name der Azure Arc-fähigen Kubernetes-Ressource, auf der die Erweiterungsinstanz erstellt werden soll |
--resource-group |
Die Ressourcengruppe, in der die Azure Arc-fähige Kubernetes-Ressource enthalten ist |
--cluster-type |
Der Clustertyp, auf dem die Erweiterungsinstanz erstellt werden soll. Verwenden Sie für die meisten Szenarien connectedClusters , was Kubernetes-Cluster mit Azure Arc-Unterstützung entspricht. |
Optionale Parameter
Verwenden Sie einen oder mehrere dieser optionalen Parameter je nach Bedarf für Ihre Szenarien, zusammen mit den erforderlichen Parametern.
Hinweis
Sie können Ihre Erweiterungsinstanz automatisch auf die neuesten Neben- und Patchversionen aktualisieren, indem Sie auto-upgrade-minor-version
auf true
setzen, oder Sie können die Version der Erweiterungsinstanz stattdessen manuell mit dem Parameter --version
festlegen. Wir empfehlen, automatische Upgrades für Neben- und Patchversionen zu aktivieren, damit Sie immer über die neuesten Sicherheitspatches und Funktionen verfügen.
Da Upgrades von Hauptversionen Änderungen beinhalten können, werden automatische Upgrades für neue Hauptversionen einer Erweiterungsinstanz nicht unterstützt. Sie können wählen, wann Erweiterungsinstanzen manuell auf eine neue Hauptversion aktualisiert werden sollen.
Parametername | Beschreibung |
---|---|
--auto-upgrade-minor-version |
Boolesche Eigenschaft, die bestimmt, ob die Nebenversion der Erweiterung automatisch aktualisiert wird. Die Standardeinstellung ist true . Wenn dieser Parameter auf true festgelegt ist, können Sie den version -Parameter nicht festlegen, da die Version dynamisch aktualisiert wird. Wenn diese Option auf false gesetzt ist, wird die Erweiterung nicht automatisch aktualisiert, auch nicht bei Patchversionen. |
--version |
Version der zu installierenden Erweiterung (bestimmte Version, an die die Erweiterungsinstanz angeheftet wird). Darf nicht angegeben werden, wenn auto-upgrade-minor-version auf true gesetzt ist. |
--configuration-settings |
Einstellungen, die an die Erweiterung übergeben werden können, um deren Funktionalität zu steuern. Sie werden als leerzeichengetrennte key=value -Paare nach dem Parameternamen übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings-file nicht im selben Befehl verwendet werden. |
--configuration-settings-file |
Der Pfad zu einer JSON-Datei mit key=value -Paaren, die verwendet werden sollen, um Konfigurationseinstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings nicht im selben Befehl verwendet werden. |
--configuration-protected-settings |
Einstellungen, die nicht mithilfe von GET -API-Aufrufen oder az k8s-extension show -Befehlen abgerufen werden können. Wird in der Regel verwendet, um vertrauliche Einstellungen zu übergeben. Sie werden als leerzeichengetrennte key=value -Paare nach dem Parameternamen übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings-file nicht im selben Befehl verwendet werden. |
--configuration-protected-settings-file |
Der Pfad zu einer JSON-Datei mit key=value -Paaren, die verwendet werden sollen, um vertrauliche Einstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings nicht im selben Befehl verwendet werden. |
--release-namespace |
Dieser Parameter gibt den Namespace an, in dem die Freigabe erstellt wird. Nur relevant, wenn scope auf cluster gesetzt ist. |
--release-train |
Erweiterungsersteller können Versionen in unterschiedlichen Release Trains wie Stable , Preview usw. veröffentlichen. Wenn dieser Parameter nicht explizit festgelegt ist, wird Stable als Standard verwendet. |
--target-namespace |
Das gibt den Namespace an, in dem die Freigabe erstellt wird. Die Berechtigung des für diese Erweiterungsinstanz erstellten Systemkontos wird auf diesen Namespace beschränkt. Nur relevant, wenn scope auf namespace gesetzt ist. |
Erweiterungsdetails anzeigen
Zeigen Sie Details einer aktuell installierten Erweiterungsinstanz mit k8s-extension show
an, wobei Sie Werte für die obligatorischen Parameter übergeben.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Ausgabe:
{
"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"
}
Alle auf dem Cluster installierten Erweiterungen auflisten
Zeigen Sie eine Liste aller auf dem Cluster installierten Erweiterungen mit k8s-extension list
an, wobei Sie Werte für die obligatorischen Parameter übergeben.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Ausgabe:
[
{
"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"
}
]
Erweiterungsinstanz aktualisieren
Hinweis
Informationen zu den spezifischen Einstellungen in --configuration-settings
und --configuration-protected-settings
, die aktualisiert werden können, finden Sie in der Dokumentation für den spezifischen Erweiterungstyp. Bei --configuration-protected-settings
wird erwartet, dass alle Einstellungen bereitgestellt werden, auch wenn nur eine Einstellung aktualisiert wird. Wenn einige Einstellungen weggelassen werden, werden diese Einstellungen als veraltet betrachtet und gelöscht.
Aktualisieren Sie eine vorhandene Erweiterungsinstanz mit k8s-extension update
, indem Sie Werte für die obligatorischen und die optionalen Parameter übergeben. Die obligatorischen und optionalen Parameter unterscheiden sich geringfügig von denen, die zur Erstellung einer Erweiterungsinstanz verwendet werden.
In diesem Beispiel wird die Einstellung auto-upgrade-minor-version
für eine Azure Machine Learning-Erweiterungsinstanz auf true
aktualisiert:
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
Erforderliche Parameter für die Aktualisierung
Parametername | BESCHREIBUNG |
---|---|
--name |
Name der Erweiterungsinstanz |
--cluster-name |
Name des Clusters, auf dem die Erweiterungsinstanz angelegt werden soll |
--resource-group |
Die Ressourcengruppe, die das Cluster enthält |
--cluster-type |
Der Clustertyp, auf dem die Erweiterungsinstanz erstellt werden soll. Verwenden Sie connectedClusters für Kubernetes-Cluster mit Azure Arc-Unterstützung. Für AKS-Cluster nutzen Sie managedClusters . |
Optionale Parameter für die Aktualisierung
Parametername | Beschreibung |
---|---|
--auto-upgrade-minor-version |
Boolesche Eigenschaft, die angibt, ob die Nebenversion der Erweiterung automatisch aktualisiert wird. Die Standardeinstellung ist true . Wenn dieser Parameter auf „true“ festgelegt ist, können Sie den version -Parameter nicht festlegen, da die Version dynamisch aktualisiert wird. Wenn diese Option auf false gesetzt ist, wird die Erweiterung nicht automatisch aktualisiert, auch nicht bei Patchversionen. |
--version |
Version der zu installierenden Erweiterung (bestimmte Version, an die die Erweiterungsinstanz angeheftet wird). Muss nicht angegeben werden, wenn „auto-upgrade-minor-version“ auf true festgelegt ist. |
--configuration-settings |
Einstellungen, die an die Erweiterung übergeben werden können, um deren Funktionalität zu steuern. Sie werden als leerzeichengetrennte key=value -Paare nach dem Parameternamen übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings-file nicht im selben Befehl verwendet werden. Nur die Einstellungen, die eine Aktualisierung erfordern, müssen angegeben werden. Die angegebenen Einstellungen werden durch die angegebenen Werte ersetzt. |
--configuration-settings-file |
Der Pfad zur JSON-Datei mit key=value -Paaren, die verwendet werden sollen, um Konfigurationseinstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-settings nicht im selben Befehl verwendet werden. |
--configuration-protected-settings |
Einstellungen, die nicht mithilfe von GET -API-Aufrufen oder az k8s-extension show -Befehlen abgerufen werden können. Wird in der Regel verwendet, um vertrauliche Einstellungen zu übergeben. Sie werden als leerzeichengetrennte key=value -Paare nach dem Parameternamen übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings-file nicht im selben Befehl verwendet werden. Wenn Sie eine geschützte Einstellung aktualisieren, wird erwartet, dass alle geschützten Einstellungen angegeben werden. Wenn einige Einstellungen weggelassen werden, werden diese Einstellungen als veraltet betrachtet und gelöscht. |
--configuration-protected-settings-file |
Der Pfad zu einer JSON-Datei mit key=value -Paaren, die verwendet werden sollen, um vertrauliche Einstellungen an die Erweiterung zu übergeben. Wenn dieser Parameter im Befehl verwendet wird, kann --configuration-protected-settings nicht im selben Befehl verwendet werden. |
--scope |
Umfang der Installation für die Erweiterung – cluster oder namespace . |
--release-train |
Erweiterungsersteller können Versionen in unterschiedlichen Release Trains wie Stable , Preview usw. veröffentlichen. Wenn dieser Parameter nicht explizit festgelegt ist, wird Stable als Standard verwendet. |
Upgrade der Erweiterungsinstanz
Wie bereits erwähnt, wird die Erweiterung automatisch aktualisiert, wenn Sie auto-upgrade-minor-version
auf „true“ setzen, wenn eine neue Nebenversion veröffentlicht wird. Für die meisten Szenarien empfiehlt es sich, automatische Upgrades zu aktivieren. Wenn Sie auto-upgrade-minor-version
auf „false“ setzen, müssen Sie die Erweiterung manuell aktualisieren, wenn Sie eine neuere Version wünschen.
Manuelle Upgrades sind auch erforderlich, um eine neue Hauptinstanz einer Erweiterung zu erhalten. Sie können wählen, wann Sie ein Upgrade durchführen möchten, um unerwartete Änderungen bei Upgrades der Hauptversion zu vermeiden.
Um eine Erweiterungsinstanz manuell zu aktualisieren, verwenden Sie k8s-extension update
und geben mit dem Parameter version
eine Version an.
In diesem Beispiel wird eine Azure Machine Learning-Erweiterungsinstanz auf Version x.y.z aktualisiert:
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Löschen der Erweiterungsinstanz
Löschen Sie eine Erweiterungsinstanz auf einem Cluster mit k8s-extension delete
, wobei Sie Werte für die obligatorischen Parameter übergeben:
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Hinweis
Die Azure-Ressource, die diese Erweiterung darstellt, wird sofort gelöscht. Die Helm-Freigabe auf dem Cluster, die dieser Erweiterung zugeordnet ist, wird nur gelöscht, wenn die auf dem Kubernetes-Cluster ausgeführten Agents über Netzwerkkonnektivität verfügen und wieder auf Azure-Dienste zugreifen können, um den gewünschten Status abzurufen.
Nächste Schritte
- Eine umfassende Liste der Befehle und ihrer Parameter finden Sie in der az k8s-extension CLI-Referenz.
- Erfahren Sie mehr darüber, wie Erweiterungen mit Kubernetes-Clustern mit Arc-Unterstützung funktionieren.
- Überprüfen Sie die derzeit verfügbaren Clustererweiterungen für Kubernetes mit Azure Arc-Unterstützung.
- Erhalten Sie Hilfe bei der Behebung von Problemen mit Erweiterungen.