Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение можно использовать в кластере Kubernetes с поддержкой Azure Arc для доступа к службам и сценариям Azure. В этой статье описывается создание экземпляров расширений и установка обязательных и необязательных параметров, включая параметры обновлений и конфигураций. Вы также узнаете, как просматривать, перечислять, обновлять и удалять экземпляры расширения.
Перед началом работы ознакомьтесь с общими сведениями о расширениях кластера Kubernetes с поддержкой Azure Arc и просмотрите список доступных в настоящее время расширений.
Предварительные условия
Последняя версия Azure CLI.
Последние версии расширений
connectedk8s
k8s-extension
Azure CLI. Чтобы установить эти расширения, выполните следующие команды: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
. При развертывании Flux (GitOps) можно использовать кластер на основе ARM64 без использованияlinux/amd64
узла.- Если вы еще не подключили кластер, воспользуйтесь нашим кратким руководством по подключению к нему.
- Обновите агент до последней версии.
Создание экземпляра расширения
Чтобы создать экземпляр расширения, используйте 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 аналитики контейнеров, которые не используют расширения. Перед запуском az k8s-extension create
, выполните действия по удалению Helm chart.
Обязательные параметры
В следующей таблице описаны параметры, которые требуются при использовании 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. |
Необязательные параметры
Вы можете использовать один или несколько из этих необязательных параметров с необходимыми параметрами для вашего сценария.
Примечание.
Вы можете автоматически обновить экземпляр расширения до последних минорных и патчевых версий, установив auto-upgrade-minor-version
в true
. Вы также можете задать версию экземпляра расширения вручную с помощью --version
параметра. Мы рекомендуем включить автоматическое обновление для минорных и патч-версий, чтобы вы всегда имели самые последние обновления безопасности и новые функции.
Так как обновления основных версий могут включать критические изменения, автоматическое обновление для новых основных версий экземпляра расширения не поддерживается. Вы можете выбрать, когда вручную обновить экземпляры расширений до новой основной версии.
Наименование параметра | Описание |
---|---|
--auto-upgrade-minor-version |
Логическое свойство, определяющее, производится ли автоматическое обновление минорных версий расширения. Значение по умолчанию равно true . Если для этого параметра задано true значение, параметр нельзя задать version , так как версия динамически обновляется. Если для этого параметра задано false значение, расширение не обновляется автоматически, даже для версий исправлений. |
--version |
Версия расширения, которую предстоит установить (конкретная версия, чтобы закрепить экземпляр расширения). Параметр нельзя задать 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 вызовов ИЛИ az k8s-extension show команд API. Обычно используется для передачи конфиденциальных параметров. Эти параметры передаются в виде пар, разделенных 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 используется значение по умолчанию. |
--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/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
и --configuration-protected-settings
, которые можно обновить, см. документацию по конкретному типу расширения. Для --configuration-protected-settings
укажите все параметры, даже если обновляется только один параметр. Если какие-либо из этих параметров опущены, опущенные параметры будут считаться устаревшими и удаляются.
Чтобы обновить существующий экземпляр расширения, используйте k8s-extension update
. Передайте значения обязательных и необязательных параметров. Обязательные и необязательные параметры немного отличаются от параметров, используемых для создания экземпляра расширения.
В этом примере параметр для экземпляра расширения Машинного обучения Azure обновляется на auto-upgrade-minor-version
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
Обязательные параметры для обновления
Наименование параметра | Описание |
---|---|
--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 пробелами, после имени параметра. Если параметр используется в команде, --configuration-settings-file его нельзя использовать в той же команде. Необходимо указать только те параметры, которые нужно обновить. Указанные параметры заменяются указанными значениями. |
--configuration-settings-file |
Путь к JSON-файлу, содержащему key=value пары для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, нельзя использовать --configuration-settings в той же команде. |
--configuration-protected-settings |
Параметры, которые не могут быть извлечены с помощью GET вызовов ИЛИ az k8s-extension show команд API. Обычно используется для передачи конфиденциальных параметров. Эти параметры передаются в виде пар, разделенных key=value пробелами, после имени параметра. Если этот параметр используется в команде, --configuration-protected-settings-file его нельзя использовать в той же команде. При обновлении защищенного параметра настройте все защищенные параметры. Если какие-либо из параметров опущены, эти параметры считаются устаревшими и удаляются. |
--configuration-protected-settings-file |
Путь к JSON-файлу, содержащему key=value пары для передачи конфиденциальных параметров в расширение. Если этот параметр используется в команде, нельзя использовать --configuration-protected-settings в той же команде. |
--scope |
Область установки расширения. Используйте либо cluster , либо namespace . |
--release-train |
Автор расширения может публиковать версии в различных каналах выпуска, таких как Stable или Preview . Если этот параметр не задан явным образом, Stable используется значение по умолчанию. |
Модернизация экземпляра расширения
Как отмечалось ранее, если auto-upgrade-minor-version
задано значение true, расширение автоматически обновляется при выпуске новой дополнительной версии. Для большинства сценариев рекомендуется включить автоматическое обновление. Если задано значение auto-upgrade-minor-version
false
, необходимо вручную обновить расширение, если требуется более новая версия.
Обновления вручную необходимы также для получения новой версии расширения. Вы можете выбрать время обновления, чтобы избежать непредвиденных критических изменений в обновлениях основных версий.
Чтобы вручную обновить экземпляр расширения, используйте k8s-extension update
и задайте version
параметр.
В этом примере экземпляр расширения машинного обучения Azure обновляется до версии 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 CLI.
- Узнайте больше о том, как расширения работают с кластерами Kubernetes с поддержкой Azure Arc.
- Просмотрите расширения кластера, доступные для Kubernetes с поддержкой Azure Arc.
- Получите помощь по устранению проблем с расширением.