Развертывание расширений кластера Kubernetes с поддержкой Azure Arc и управление ими
Вы можете создавать экземпляры расширений в кластере Kubernetes с поддержкой Arc, устанавливая обязательные и необязательные параметры, включая параметры, связанные с обновлениями и конфигурациями. Вы также можете просматривать, перечислять, обновлять и удалять экземпляры расширения.
Прежде чем начать, ознакомьтесь с общими сведениями о расширениях кластера Kubernetes с поддержкой Arc и просмотрите список доступных в настоящее время расширений.
Предварительные требования
Последняя версия Azure CLI.
Последние версии расширений
connectedk8s
Azure CLI иk8s-extension
. Установите эти расширения, выполнив следующие команды:az extension add --name connectedk8s az extension add --name k8s-extension
connectedk8s
Если расширения иk8s-extension
уже установлены, убедитесь, что они обновлены до последней версии с помощью следующих команд:az extension update --name connectedk8s az extension update --name k8s-extension
Существующий кластер Kubernetes с поддержкой Azure Arc, подключенный по крайней мере с одним узлом операционной системы и типа
linux/amd64
архитектуры .- Если вы еще не подключились к кластеру, воспользуйтесь нашим кратким руководством.
- Обновите агенты до последней версии.
Примечание
Установка расширений Azure Arc в гибридных кластерах AKS, подготовленных из Azure, в настоящее время находится на этапе предварительной версии с поддержкой Open Service Mesh с поддержкой Azure Arc, поставщика секретов Azure Key Vault, Flux (GitOps) и Microsoft Defender для облачных расширений.
Создание экземпляра расширения
Чтобы создать новый экземпляр расширения, используйте k8s-extension create
, передавая значения для необходимых параметров.
В этом примере создается экземпляр расширения Аналитики контейнеров Azure Monitor в кластере Kubernetes с поддержкой 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
Выходные данные:
{
"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"
}
Примечание
Служба не может хранить конфиденциальные данные более 48 часов. Если агенты Kubernetes с поддержкой Azure Arc не имеют сетевого подключения более 48 часов и не могут определить, следует ли создать расширение в кластере, расширение переходит в Failed
состояние . После этого вам потребуется выполнить k8s-extension create
еще раз, чтобы создать новый ресурс Azure расширения.
Аналитика контейнеров Azure Monitor — это одноэлементное расширение (требуется только одно для каждого кластера). Перед установкой с помощью расширений необходимо очистить все предыдущие установки Диаграммы Helm в Службе аналитики контейнеров Azure Monitor (без расширений). Следуйте инструкциям по удалению диаграммы Helm перед запуском az k8s-extension create
.
Необходимые параметры
При использовании для az k8s-extension create
создания экземпляра расширения требуются следующие параметры.
Имя параметра | Описание |
---|---|
--name |
Имя экземпляра расширения |
--extension-type |
Тип расширения, которое требуется установить в кластере. Например: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes |
--scope |
Область установки для расширения: cluster или namespace |
--cluster-name |
Имя ресурса Kubernetes с поддержкой Azure Arc, в котором должен быть создан экземпляр расширения |
--resource-group |
Группа ресурсов, содержащая ресурс Kubernetes с поддержкой Azure Arc |
--cluster-type |
Тип кластера, в котором должен быть создан экземпляр расширения. В большинстве сценариев используйте connectedClusters , который соответствует кластерам Kubernetes с поддержкой Azure Arc. |
Примечание
При работе с [гибридными кластерами AKS, подготовленными из Azure](#aks-hybrid-clusters-provisioned-from-azure-preview, необходимо задать для --cluster-type
использования provisionedClusters
и добавить --cluster-resource-provider microsoft.hybridcontainerservice
в команду . Установка расширений Azure Arc в гибридных кластерах AKS, подготовленных из Azure, в настоящее время находится на этапе предварительной версии.
Необязательные параметры
Используйте один или несколько из этих необязательных параметров в соответствии с вашими сценариями вместе с необходимыми параметрами.
Имя параметра | Описание |
---|---|
--auto-upgrade-minor-version |
Логическое свойство, определяющее, обновляется ли дополнительный номер версии расширения автоматически. Значение по умолчанию — true . Если для этого параметра задано значение true , задать параметр нельзя version , так как версия будет динамически обновляться. Если задано значение false , расширение не будет обновляться автоматически, даже для версий исправлений. |
--version |
Версия устанавливаемого расширения (конкретная версия для прикрепления к ней экземпляра расширения). Не следует указывать, если auto-upgrade-minor-version для задано значение true . |
--configuration-settings |
Параметры, которые можно передать в расширение для управления его функциями. Они передаются в виде пар, key=value разделенных пробелами, после имени параметра. Если этот параметр используется в команде, то --configuration-settings-file не может использоваться в той же команде. |
--configuration-settings-file |
Путь к JSON-файлу с парами key=value , которые будут использоваться для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, то --configuration-settings не может использоваться в той же команде. |
--configuration-protected-settings |
Параметры, которые не можно получить с помощью GET вызовов API или az k8s-extension show команд. Обычно используется для передачи конфиденциальных параметров. Они передаются в виде пар, key=value разделенных пробелами, после имени параметра. Если этот параметр используется в команде, то --configuration-protected-settings-file не может использоваться в той же команде. |
--configuration-protected-settings-file |
Путь к JSON-файлу с парами key=value , которые будут использоваться для передачи конфиденциальных параметров в расширение. Если этот параметр используется в команде, то --configuration-protected-settings не может использоваться в той же команде. |
--release-namespace |
Этот параметр указывает пространство имен, в котором будет создан выпуск. Относится только к , если scope для задано значение cluster . |
--release-train |
Авторы расширений могут публиковать версии в разных поездах выпуска, таких как Stable , Preview и т. д. Если этот параметр не задан явно, Stable используется по умолчанию. Этот параметр нельзя использовать, если --auto-upgrade-minor-version для задано значение false . |
--target-namespace |
Указывает пространство имен, в котором будет создан выпуск. Разрешение системной учетной записи, созданной для этого экземпляра расширения, будет ограничено этим пространством имен. Относится только к , если scope для задано значение namespace . |
Показать сведения о расширении
Чтобы просмотреть сведения об установленном экземпляре расширения, используйте k8s-extension show
, передавая значения обязательных параметров.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Выходные данные:
{
"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"
}
Список всех расширений, установленных в кластере
Чтобы просмотреть список всех расширений, установленных в кластере, используйте k8s-extension list
, передавая значения обязательных параметров.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Выходные данные:
[
{
"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"
}
]
Удаление экземпляр расширения
Чтобы удалить экземпляр расширения в кластере, используйте k8s-extension delete
, передавая значения обязательных параметров.
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Примечание
Ресурс Azure, представляющий это расширение, немедленно удаляется. Выпуск Helm в кластере, связанном с этим расширением, удаляется только в том случае, если агенты, работающие в кластере Kubernetes, подключены к сети и могут снова обратиться к службам Azure для получения требуемого состояния.
Важно!
При работе с гибридными кластерами AKS, подготовленными из Azure, необходимо добавить --yes
в команду delete. Установка расширений Azure Arc в гибридных кластерах AKS, подготовленных из Azure, в настоящее время находится на этапе предварительной версии.
Гибридные кластеры AKS, подготовленные из Azure (предварительная версия)
Вы можете развертывать расширения в гибридных кластерах AKS, подготовленных из Azure. Однако для успешного развертывания следует учитывать несколько ключевых различий.
Значение параметра
--cluster-type
должно бытьprovisionedClusters
равно .Необходимо добавить
--cluster-resource-provider microsoft.hybridcontainerservice
в команды.При удалении экземпляра расширения необходимо добавить
--yes
в команду :az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type provisionedClusters --cluster-resource-provider microsoft.hybridcontainerservice --yes
Кроме того, необходимо использовать последнюю версию модуля Azure CLI k8s-extension
(версия >= 1.3.3). Чтобы добавить последнюю версию или обновить ее до последней версии, используйте следующие команды:
# add if you do not have this installed
az extension add --name k8s-extension
# update if you do have the module installed
az extension update --name k8s-extension
Важно!
Установка расширений Azure Arc в гибридных кластерах AKS, подготовленных из Azure, в настоящее время находится на этапе предварительной версии.
Дальнейшие действия
- Полный список команд и параметров см. в справочнике по cli az k8s-extension .
- Узнайте больше о том, как расширения работают с кластерами Kubernetes с поддержкой Arc.
- Просмотрите расширения кластера, доступные в настоящее время для Kubernetes с поддержкой Azure Arc.