Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширения можно использовать в кластерах Kubernetes с поддержкой Azure Arc для включения Azure служб и сценариев. В этой статье описывается создание экземпляров расширений и установка обязательных и необязательных параметров, включая параметры обновлений и конфигураций. Вы также узнаете, как просматривать, перечислять, обновлять и удалять экземпляры расширения.
Перед началом работы ознакомьтесь с обзором расширений кластера Azure Arc-enabled Kubernetes и просмотрите список доступных в настоящее время расширений. Действия, описанные в этой статье, относятся к любому расширению, но ознакомьтесь с документацией по конкретному расширению, которое вы хотите развернуть, чтобы понять какие-либо определенные параметры конфигурации или рекомендации.
Предварительные условия
Последняя версия Azure CLI.
Последние версии расширений
connectedk8sиk8s-extensionAzure CLI. Чтобы установить или обновить последнюю версию этих расширений, выполните следующие команды:az extension add --upgrade --name connectedk8s az extension add --upgrade --name k8s-extensionСуществующий подключенный кластер Kubernetes с поддержкой Azure Arc с по крайней мере одним узлом операционной системы и типа архитектуры
linux/amd64. Если развернуть только расширения Flux (GitOps) или Microsoft Defender for Containers, можно использовать кластер на базе ARM64 без использованияlinux/amd64узла.- Если вы еще не подключили кластер, воспользуйтесь нашим кратким руководством по подключению к нему.
- Обновите ваших агентов до последней версии.
Создание экземпляра расширения
Чтобы создать экземпляр расширения, используйте k8s-extension create команду и укажите значения параметров для вашей среды.
В этом примере создается экземпляр расширения Container insights в Azure Monitor в кластерe Kubernetes с поддержкой Azure Arc:
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.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": "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"
}
Примечание.
Если агенты Kubernetes с поддержкой Azure Arc не имеют сетевого подключения в течение более 48 часов, они не могут создать расширение в кластере, а расширение переходит к состоянию Failed. Если это условие возникает, запустите k8s-extension create еще раз, чтобы создать ресурс расширения.
Для каждого кластера требуется только одно расширение Azure Monitor для аналитики контейнеров. Перед установкой аналитики контейнеров с помощью расширения необходимо удалить все предыдущие установки диаграмм Helm аналитики контейнеров, которые не используют расширения. Перед выполнением az k8s-extension createвыполните действия по удалению диаграммы Helm.
Обязательные параметры для создания расширения
Следующая таблица описывает необходимые параметры для использования az k8s-extension create для создания экземпляра расширения:
| Наименование параметра | Описание |
|---|---|
--name |
Имя экземпляра расширения. |
--extension-type |
Тип расширения, которое требуется установить в кластере. Например, Microsoft.AzureMonitor.Containers или microsoft.azuredefender.kubernetes. |
--cluster-name |
Имя ресурса Kubernetes с поддержкой Azure Arc, на котором создается экземпляр расширения. |
--resource-group |
Группа ресурсов, содержащая ресурс Kubernetes с поддержкой Azure Arc. |
--cluster-type |
Тип кластера, на котором создается экземпляр расширения. В большинстве сценариев используйте connectedClusters, тип кластера для кластера Kubernetes с поддержкой Azure Arc. |
Необязательные параметры для создания расширения
Используйте один или несколько из этих необязательных параметров с необходимыми параметрами для вашего сценария. Некоторые из этих параметров нельзя использовать вместе. Просмотрите описание каждого параметра и используйте те, которые применяются к вашему сценарию.
Примечание.
Чтобы автоматически обновить экземпляр расширения до последних минорных и патчевых версий, установите значение auto-upgrade-minor-versiontrue. Мы рекомендуем включить автоматическое обновление для минорных и патч-версий, чтобы вы всегда имели самые последние обновления безопасности и новые функции. Вы также можете задать версию экземпляра расширения вручную с помощью --version параметра.
Так как обновления основных версий могут включать критические изменения, поддержка автоматического обновления новых основных версий экземпляра расширения отсутствует. Вы можете выбрать, когда вручную обновить экземпляр расширения до новой основной версии.
| Наименование параметра | Описание |
|---|---|
--auto-upgrade-minor-version |
Логическое свойство, определяющее, производится ли автоматическое обновление минорных версий расширения. Значение по умолчанию равно true. Если вы зададите этот параметр как true, вы не сможете задать параметр version, так как версия обновляется динамически. Если этот параметр falseзадан, расширение не обновляется автоматически, даже для версий исправлений. |
--version |
Версия устанавливаемого расширения (конкретная версия для закрепления экземпляра расширения). Параметр нельзя задать version , если auto-upgrade-minor-version задано значение true. |
--configuration-settings |
Параметры, которые можно передать в расширение для управления его функциональностью. Передайте эти параметры в виде пар, разделенных key=value пробелами, после имени параметра. Если вы используете этот параметр в команде, вы не можете передать --config-settings-file в той же команде. |
--config-settings-file |
Путь к JSON-файлу с key=value парами, используемыми для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, вы не можете использовать --configuration-settings в той же команде. |
--config-protected-settings |
Параметры, которые не могут быть извлечены с помощью GET вызовов ИЛИ az k8s-extension show команд API. Обычно используется для передачи конфиденциальных параметров. Передайте эти параметры в виде пар, разделенных key=value пробелами, после имени параметра. Если этот параметр используется в команде, вы не можете использовать --config-protected-settings-file в той же команде. |
--config-protected-settings-file |
Путь к JSON-файлу с key=value парами, используемыми для передачи конфиденциальных настроек в расширение. Если этот параметр используется в команде, вы не можете использовать --config-protected-settings в той же команде. |
--release-train |
Цикл выпуска, если расширение опубликовало версии в разных циклах выпуска, таких как Stable или Preview. Если этот параметр не задан явным образом, Stable используется значение по умолчанию. |
--scope |
Область установки расширения (clusterилиnamespace). Большинство расширений являются кластеризованными, поэтому этот параметр требуется только в том случае, если расширение имеет область действия пространства имен. |
--release-namespace |
Если scope задано значение cluster, этот параметр указывает пространство имен, в котором создается выпуск. |
--target-namespace |
Если scope задано значение namespace, этот параметр указывает пространство имен, в котором создается выпуск. Разрешения для системной учетной записи, созданной для этого экземпляра расширения, ограничены этим пространством имен. |
Дополнительные сведения о других необязательных параметрах см. в справочной az k8s-extension create документации.
Отображение сведений о расширении
Чтобы просмотреть сведения о экземпляре расширения, установленного в данный момент, используйте 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/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"
}
]
Обновление экземпляра расширения
Примечание.
Сведения о конкретных параметрах и --configuration-settings их обновлении см. в --config-protected-settings документации по конкретному расширению. Для --config-protected-settings укажите все параметры, даже если вы обновляете только один параметр. Если вы опустите любой из этих параметров, неупустимые параметры удаляются.
Чтобы обновить существующий экземпляр расширения, используйте k8s-extension update. Передайте значения обязательных и необязательных параметров. Эти параметры немного отличаются от параметров, используемых для создания экземпляра расширения.
В этом примере обновляется параметр auto-upgrade-minor-version для экземпляра расширения Azure Machine Learning до true:
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters
Параметры, обязательные для обновления расширения
| Наименование параметра | Описание |
|---|---|
--name |
Имя экземпляра расширения. |
--cluster-name |
Имя кластера, на котором создается экземпляр расширения. |
--resource-group |
Группа ресурсов, содержащая кластер. |
--cluster-type |
Тип кластера, на котором создается экземпляр расширения. Для кластеров Kubernetes с поддержкой Azure Arc используйте connectedClusters. Для кластеров AKS используйте managedClusters. |
Необязательные параметры обновления расширения
| Наименование параметра | Описание |
|---|---|
--auto-upgrade-minor-version |
Логическое свойство, указывающее, обновляется ли минорная версия расширения автоматически. Значение по умолчанию равно true. Если для этого параметра задано trueзначение, параметр нельзя задать version , так как версия динамически обновляется. Если для параметра задано falseзначение, расширение не обновляется автоматически, даже для версий исправлений. |
--version |
Версия расширения, устанавливаемого (определенная версия для закрепления экземпляра этого расширения). Не должен быть указан, если auto-upgrade-minor-version задано значение true. |
--configuration-settings |
Параметры, которые можно передать в расширение для управления его функциональностью. Передайте эти параметры в виде пар, разделенных key=value пробелами, после имени параметра. Если этот параметр используется в команде, вы не можете использовать --config-settings-file в той же команде. Укажите только параметры, требующие обновления. Указанные параметры заменяются указанными значениями. |
--config-settings-file |
Путь к JSON-файлу, который содержит key=value пары для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, вы не можете использовать --configuration-settings в той же команде. |
--config-protected-settings |
Параметры, которые не могут быть извлечены с помощью GET вызовов ИЛИ az k8s-extension show команд API. Обычно используется для передачи конфиденциальных параметров. Передайте эти параметры в виде пар, разделенных key=value пробелами, после имени параметра. Если этот параметр используется в команде, его нельзя использовать --config-protected-settings-file в той же команде. При обновлении защищенного параметра настройте все защищенные параметры. Если вы опустите любой из параметров, эти параметры считаются устаревшими и удаляются. |
--config-protected-settings-file |
Путь к JSON-файлу, который содержит key=value пары, используемые для передачи конфиденциальных параметров в расширение. Если этот параметр используется в команде, вы не можете использовать --config-protected-settings в той же команде. |
--scope |
Область установки расширения (clusterилиnamespace). Большинство расширений являются кластеризованными, поэтому этот параметр требуется только в том случае, если расширение имеет область действия пространства имен. |
--release-train |
Поезд выпуска, если расширение опубликовало версии в разных поездах выпуска, таких как Stable или Preview. Если этот параметр не задан явным образом, Stable используется значение по умолчанию. |
Дополнительные сведения о других необязательных параметрах см. в справочной az k8s-extension update документации.
Модернизация экземпляра расширения
Как отмечалось ранее, если установить auto-upgrade-minor-version на true, расширение автоматически обновится при выпуске новой минорной версии. Для большинства сценариев включите автоматическое обновление. Если установить auto-upgrade-minor-version на false, необходимо вручную обновить расширение, если требуется более новая версия.
Чтобы получить новую основную версию расширения, необходимо выполнить обновление вручную. Чтобы избежать непредвиденных критических изменений в обновлениях основных версий, вы можете выбрать, когда следует обновить расширения.
Чтобы вручную обновить экземпляр расширения, используйте k8s-extension update и задайте version параметр.
В этом примере экземпляр расширения Azure Machine Learning обновляется до версии x.y.z:
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Удалите экземпляр расширения
Чтобы удалить экземпляр расширения в кластере, используйте k8s-extension delete. Используйте значения из сценария для обязательных заполнителей параметров.
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Примечание.
Эта команда немедленно удаляет ресурс расширения Azure. Однако команда удаляет выпуск Helm в кластере, связанном с этим расширением, только если агенты, работающие в кластере Kubernetes, имеют сетевое подключение и могут получить доступ к службам Azure.
Связанный контент
- Полный список команд и параметров см. в справочнике по интерфейсу командной строки az k8s-extension.
- Узнайте как расширения работают с кластерами Kubernetes, поддерживаемыми Azure Arc.
- Просмотрите расширения Cluster, доступные для Kubernetes с поддержкой Azure Arc.
- Сведения об устранении неполадок см. в статье об устранении неполадок с расширением.