Kubernetes-clusterextensies met Azure Arc implementeren en beheren
U kunt extensie-exemplaren maken in een Kubernetes-cluster met Arc, vereiste en optionele parameters instellen, waaronder opties voor updates en configuraties. U kunt ook extensie-exemplaren weergeven, weergeven, bijwerken en verwijderen.
Lees voordat u begint het conceptuele overzicht van Kubernetes-clusterextensies met Arc en bekijk de lijst met momenteel beschikbare extensies.
Vereisten
De nieuwste versie van Azure CLI.
De nieuwste versies van de
connectedk8s
enk8s-extension
Azure CLI-extensies. Installeer deze extensies door de volgende opdrachten uit te voeren:az extension add --name connectedk8s az extension add --name k8s-extension
Als de
connectedk8s
extensiesk8s-extension
al zijn geïnstalleerd, controleert u of ze zijn bijgewerkt naar de nieuwste versie met behulp van de volgende opdrachten:az extension update --name connectedk8s az extension update --name k8s-extension
Een bestaand met Azure Arc verbonden Kubernetes-cluster, met ten minste één knooppunt van het besturingssysteem en het architectuurtype
linux/amd64
. Als u Flux (GitOps) implementeert, kunt u een OP ARM64 gebaseerd cluster zonderlinux/amd64
knooppunt gebruiken.- Als u nog geen cluster hebt verbonden, gebruikt u onze quickstart.
- Werk uw agents bij naar de nieuwste versie.
Extensie-exemplaar maken
Als u een nieuw extensie-exemplaar wilt maken, gebruikt k8s-extension create
u waarden door te geven voor de vereiste parameters.
In dit voorbeeld wordt een Azure Monitor Container Insights-extensie-exemplaar gemaakt op een Kubernetes-cluster met 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
Uitvoer:
{
"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"
}
Notitie
De service kan gevoelige informatie langer dan 48 uur niet bewaren. Als Kubernetes-agents met Azure Arc langer dan 48 uur geen netwerkverbinding hebben en niet kan bepalen of er een extensie in het cluster moet worden gemaakt, wordt de extensie overgezet naar Failed
de status. Zodra dat gebeurt, moet u opnieuw worden uitgevoerd k8s-extension create
om een nieuwe azure-extensieresource te maken.
Azure Monitor Container Insights is een singleton-extensie (slechts één vereist per cluster). U moet eventuele eerdere Helm-grafiekinstallaties van Azure Monitor Container Insights (zonder extensies) opschonen voordat u hetzelfde installeert via extensies. Volg de instructies voor het verwijderen van de Helm-grafiek voordat u deze uitvoert az k8s-extension create
.
Vereiste parameters
De volgende parameters zijn vereist wanneer u az k8s-extension create
een extensie-exemplaar maakt.
Parameternaam | Beschrijving |
---|---|
--name |
Naam van het extensie-exemplaar |
--extension-type |
Het type extensie dat u wilt installeren op het cluster. Bijvoorbeeld: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes |
--scope |
Bereik van installatie voor de extensie: cluster of namespace |
--cluster-name |
Naam van de Kubernetes-resource met Azure Arc waarop het extensie-exemplaar moet worden gemaakt |
--resource-group |
De resourcegroep met de Kubernetes-resource met Azure Arc |
--cluster-type |
Het clustertype waarop het extensie-exemplaar moet worden gemaakt. Gebruik voor de meeste scenario's, connectedClusters die overeenkomt met Kubernetes-clusters met Azure Arc. |
Optionele parameters
Gebruik een of meer van deze optionele parameters indien nodig voor uw scenario's, samen met de vereiste parameters.
Notitie
U kunt ervoor kiezen om uw extensie-exemplaar automatisch te upgraden naar de meest recente secundaire en patchversies door in te true
stellen auto-upgrade-minor-version
op , of u kunt in plaats daarvan de versie van het extensie-exemplaar handmatig instellen met behulp van de --version
parameter. Het is raadzaam om automatische upgrades in te schakelen voor secundaire en patchversies, zodat u altijd over de nieuwste beveiligingspatches en -mogelijkheden beschikt.
Omdat upgrades van primaire versies belangrijke wijzigingen kunnen bevatten, worden automatische upgrades voor nieuwe primaire versies van een extensie-exemplaar niet ondersteund. U kunt kiezen wanneer u extensie-exemplaren handmatig wilt upgraden naar een nieuwe primaire versie.
Parameternaam | Beschrijving |
---|---|
--auto-upgrade-minor-version |
Booleaanse eigenschap die bepaalt of de secundaire extensieversie automatisch wordt bijgewerkt. De standaardinstelling is true . Als deze parameter is ingesteld op true , kunt u de version parameter niet instellen, omdat de versie dynamisch wordt bijgewerkt. Als deze optie is ingesteld false , wordt de extensie niet automatisch bijgewerkt, zelfs voor patchversies. |
--version |
Versie van de extensie die moet worden geïnstalleerd (specifieke versie waaraan het extensie-exemplaar moet worden vastgemaakt). Mag niet worden opgegeven indien auto-upgrade-minor-version ingesteld op true . |
--configuration-settings |
Instellingen die kunnen worden doorgegeven aan de extensie om de functionaliteit ervan te beheren. Deze worden doorgegeven als door spaties gescheiden key=value paren na de parameternaam. Als deze parameter wordt gebruikt in de opdracht, --configuration-settings-file kan deze niet worden gebruikt in dezelfde opdracht. |
--configuration-settings-file |
Pad naar een JSON-bestand met key=value paren die moeten worden gebruikt voor het doorgeven van configuratie-instellingen aan de extensie. Als deze parameter wordt gebruikt in de opdracht, --configuration-settings kan deze niet worden gebruikt in dezelfde opdracht. |
--configuration-protected-settings |
Instellingen die niet kunnen worden opgehaald met API-aanroepen GET of az k8s-extension show opdrachten. Wordt meestal gebruikt om gevoelige instellingen door te geven. Deze worden doorgegeven als door spaties gescheiden key=value paren na de parameternaam. Als deze parameter wordt gebruikt in de opdracht, --configuration-protected-settings-file kan deze niet worden gebruikt in dezelfde opdracht. |
--configuration-protected-settings-file |
Pad naar een JSON-bestand met key=value paren die moeten worden gebruikt voor het doorgeven van gevoelige instellingen in de extensie. Als deze parameter wordt gebruikt in de opdracht, --configuration-protected-settings kan deze niet worden gebruikt in dezelfde opdracht. |
--release-namespace |
Deze parameter geeft de naamruimte aan waarin de release wordt gemaakt. Alleen relevant als scope deze is ingesteld op cluster . |
--release-train |
Auteurs van extensies kunnen versies publiceren in verschillende releasetreinen, zoals Stable , Preview enzovoort. Als deze parameter niet expliciet is ingesteld, Stable wordt deze als standaard gebruikt. |
--target-namespace |
Geeft de naamruimte aan waarin de release wordt gemaakt. De machtiging van het systeemaccount dat voor dit extensie-exemplaar is gemaakt, is beperkt tot deze naamruimte. Alleen relevant als scope deze is ingesteld op namespace . |
Extensiedetails weergeven
Als u details van een momenteel geïnstalleerde extensie-exemplaar wilt weergeven, gebruikt k8s-extension show
u waarden door te geven voor de verplichte parameters.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Uitvoer:
{
"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"
}
Lijst weergeven van alle extensies die op het cluster zijn geïnstalleerd
Als u een lijst wilt weergeven met alle extensies die op een cluster zijn geïnstalleerd, gebruikt k8s-extension list
u waarden voor de verplichte parameters door te geven.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Uitvoer:
[
{
"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"
}
]
Extensie-exemplaar bijwerken
Notitie
Raadpleeg de documentatie voor het specifieke extensietype om inzicht te krijgen in de specifieke instellingen in --configuration-settings
en --configuration-protected-settings
die kunnen worden bijgewerkt. Alle --configuration-protected-settings
instellingen worden naar verwachting opgegeven, zelfs als er slechts één instelling wordt bijgewerkt. Als een van deze instellingen wordt weggelaten, worden deze instellingen als verouderd beschouwd en verwijderd.
Als u een bestaand extensie-exemplaar wilt bijwerken, gebruikt k8s-extension update
u waarden door te geven voor de verplichte en optionele parameters. De verplichte en optionele parameters zijn iets anders dan de parameters die worden gebruikt om een extensie-exemplaar te maken.
In dit voorbeeld wordt de auto-upgrade-minor-version
instelling voor een Azure Machine Learning-extensie-exemplaar bijgewerkt naar 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
Vereiste parameters voor update
Parameternaam | Beschrijving |
---|---|
--name |
Naam van het extensie-exemplaar |
--cluster-name |
Naam van het cluster waarop het extensie-exemplaar moet worden gemaakt |
--resource-group |
De resourcegroep met het cluster |
--cluster-type |
Het clustertype waarop het extensie-exemplaar moet worden gemaakt. Gebruik connectedClusters voor Kubernetes-clusters met Azure Arc. Voor AKS-clusters gebruikt u managedClusters . |
Optionele parameters voor update
Parameternaam | Beschrijving |
---|---|
--auto-upgrade-minor-version |
Booleaanse eigenschap die aangeeft of de secundaire extensieversie automatisch wordt bijgewerkt. De standaardinstelling is true . Als deze parameter is ingesteld op true, kunt u de version parameter niet instellen, omdat de versie dynamisch wordt bijgewerkt. Als deze optie is ingesteld false , wordt de extensie niet automatisch bijgewerkt, zelfs voor patchversies. |
--version |
Versie van de extensie die moet worden geïnstalleerd (specifieke versie waaraan het extensie-exemplaar moet worden vastgemaakt). Mag niet worden opgegeven als de auto-upgrade-secundaire versie is ingesteld op true . |
--configuration-settings |
Instellingen die kunnen worden doorgegeven aan de extensie om de functionaliteit ervan te beheren. Deze worden doorgegeven als door spaties gescheiden key=value paren na de parameternaam. Als deze parameter wordt gebruikt in de opdracht, --configuration-settings-file kan deze niet worden gebruikt in dezelfde opdracht. Alleen de instellingen waarvoor een update is vereist, moeten worden opgegeven. De opgegeven instellingen worden vervangen door de opgegeven waarden. |
--configuration-settings-file |
Pad naar het JSON-bestand met key=value paren die moeten worden gebruikt voor het doorgeven van configuratie-instellingen aan de extensie. Als deze parameter wordt gebruikt in de opdracht, --configuration-settings kan deze niet worden gebruikt in dezelfde opdracht. |
--configuration-protected-settings |
Instellingen die niet kunnen worden opgehaald met API-aanroepen GET of az k8s-extension show opdrachten. Wordt meestal gebruikt om gevoelige instellingen door te geven. Deze worden doorgegeven als door spaties gescheiden key=value paren na de parameternaam. Als deze parameter wordt gebruikt in de opdracht, --configuration-protected-settings-file kan deze niet worden gebruikt in dezelfde opdracht. Wanneer u een beveiligde instelling bijwerkt, worden naar verwachting alle beveiligde instellingen opgegeven. Als een van deze instellingen wordt weggelaten, worden deze instellingen als verouderd beschouwd en verwijderd. |
--configuration-protected-settings-file |
Pad naar een JSON-bestand met key=value paren die moeten worden gebruikt voor het doorgeven van gevoelige instellingen aan de extensie. Als deze parameter wordt gebruikt in de opdracht, --configuration-protected-settings kan deze niet worden gebruikt in dezelfde opdracht. |
--scope |
Bereik van installatie voor de extensie - cluster of namespace . |
--release-train |
Auteurs van extensies kunnen versies publiceren in verschillende releasetreinen, zoals Stable , Preview enzovoort. Als deze parameter niet expliciet is ingesteld, Stable wordt deze als standaard gebruikt. |
Upgrade-extensie-exemplaar
Zoals eerder is aangegeven auto-upgrade-minor-version
, wordt de extensie automatisch bijgewerkt wanneer er een nieuwe secundaire versie wordt uitgebracht. Voor de meeste scenario's raden we u aan automatische upgrades in te schakelen. Als u deze optie instelt auto-upgrade-minor-version
op false, moet u de extensie handmatig upgraden als u een nieuwere versie wilt.
Handmatige upgrades zijn ook vereist om een nieuw hoofdexemplaren van een extensie op te halen. U kunt kiezen wanneer u een upgrade wilt uitvoeren om onverwachte wijzigingen met belangrijke versie-upgrades te voorkomen.
Als u een extensie-exemplaar handmatig wilt upgraden, gebruikt k8s-extension update
u de parameter en stelt u deze version
in om een versie op te geven.
In dit voorbeeld wordt een Azure Machine Learning-extensie-exemplaar bijgewerkt naar versie x.y.z:
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Extensie-exemplaar verwijderen
Als u een extensie-exemplaar in een cluster wilt verwijderen, gebruikt k8s-extension delete
u waarden door te geven voor de verplichte parameters:
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Notitie
De Azure-resource die deze extensie vertegenwoordigt, wordt onmiddellijk verwijderd. De Helm-release op het cluster dat aan deze extensie is gekoppeld, wordt alleen verwijderd wanneer de agents die op het Kubernetes-cluster worden uitgevoerd, netwerkconnectiviteit hebben en contact kunnen opnemen met Azure-services om de gewenste status op te halen.
Volgende stappen
- Bekijk de naslaginformatie over az k8s-extension CLI voor een uitgebreide lijst met opdrachten en parameters.
- Meer informatie over hoe extensies werken met Kubernetes-clusters met Arc.
- Bekijk de clusterextensies die momenteel beschikbaar zijn voor Kubernetes met Azure Arc.
- Hulp bij het oplossen van problemen met extensies.