Развертывание расширений кластера и управление ими с помощью Azure CLI

Экземпляры расширений можно создавать в кластере AKS, задавать обязательные и необязательные параметры, включая параметры, связанные с обновлениями и конфигурациями. Кроме того, можно просматривать экземпляры расширений, перечислять, обновлять и удалять их.

Перед началом работы ознакомьтесь с расширениями кластера.

Примечание.

Примеры, приведенные в этой статье, не завершены и предназначены только для демонстрации функциональных возможностей. Полный список команд и их параметров см. в справочнике по интерфейсу командной строки az k8s-extension.

Предварительные требования

  • Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.

  • Поставщики ресурсов Microsoft.ContainerService и Microsoft.KubernetesConfiguration должны быть зарегистрированы для вашей подписки. Чтобы зарегистрировать этих поставщиков, выполните следующую команду:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Кластер AKS. Этот кластер должен быть создан с использованием управляемой идентификации, так как расширения для кластера не будут работать с кластерами, использующими субъект-службу. Для новых кластеров, созданных с помощью az aks create, управляемое удостоверение настраивается по умолчанию. Для существующих кластеров на основе субъекта-службы переключитесь на управление удостоверениями, выполнив az aks update--enable-managed-identity флаг. Дополнительные сведения см. в разделе "Использование управляемого удостоверения".

  • Установленная версия Azure CLI>= 2.16.0. Рекомендуется использовать последнюю версию.

  • Последняя версия расширений k8s-extension Azure CLI. Установите расширение, выполнив следующую команду:

    az extension add --name k8s-extension
    

    Если расширение уже установлено, убедитесь, что вы используете последнюю версию, выполнив следующую команду:

    az extension update --name k8s-extension
    

Создание экземпляра расширения

Создайте новый экземпляр расширения с помощью k8s-extension create, передав значения для обязательных параметров. В этом примере команда создает экземпляр расширения Машинное обучение Azure в кластере AKS:

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

В этом примере команды создается пример приложения Kubernetes (опубликованного в Marketplace) в кластере AKS:

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

Примечание.

Служба расширения кластера не может хранить конфиденциальные данные более 48 часов. Если агенты расширения кластера не имеют сетевого подключения в течение более 48 часов и не могут определить, следует ли создавать расширение в кластере, то расширение переходит в Failed состояние. Когда система находится в состоянии Failed, необходимо снова запустить k8s-extension create, чтобы создать новый экземпляр расширения.

Обязательные параметры

Имя параметра Описание
--name Имя экземпляра расширения
--extension-type Тип расширения, которое необходимо установить в кластере. Например: Microsoft.AzureML.Kubernetes
--cluster-name Имя кластера AKS, в котором должен быть создан экземпляр расширения.
--resource-group Группа ресурсов, содержащая кластер AKS
--cluster-type Тип кластера, в котором должен быть создан экземпляр расширения. Укажите managedClusters, так как он соответствует кластерам AKS.

Необязательные параметры

Имя параметра Описание
--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, имеющему пары "ключ-значение", которые будут использоваться для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, то --configuration-settings не может использоваться в той же команде.
--configuration-protected-settings Эти параметры нельзя извлечь с помощью вызовов API GET или команд az k8s-extension show, и поэтому они используются для передачи конфиденциальных параметров. Передайте значения в виде разделенных key=value пробелами пар после имени параметра. Если этот параметр используется в команде, то --configuration-protected-settings-file не может использоваться в той же команде.
--configuration-protected-settings-file Путь к JSON-файлу, содержащему пары «ключ — значение», которые будут использоваться для передачи конфиденциальных параметров в расширение. Если этот параметр используется в команде, то --configuration-protected-settings не может использоваться в той же команде.
--scope Область установки для расширения — cluster или namespace
--release-namespace Этот параметр указывает пространство имен, в котором будет создан выпуск. Этот параметр имеет смысл только в случае, если для параметра scope задано значение cluster.
--release-train Авторы расширений могут публиковать версии в различных каналах выпуска, таких как Stable, Preview и т. д. Если этот параметр не указан явно, по умолчанию используется Stable. Этот параметр нельзя использовать, если для параметра --auto-upgrade-minor-version задано значение false.
--target-namespace Этот параметр указывает пространство имен, в котором будет создан выпуск. Разрешение системной учетной записи, созданной для этого экземпляра расширения, будет ограничено этим пространством имен. Этот параметр имеет смысл только в случае, если для параметра scope задано значение namespace.
--plan-name Идентификатор плана расширения, указанный на странице Marketplace в портале Azure в разделе Сведения об использовании и поддержка.
--plan-product Идентификатор продукта расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка". Примером этого является название используемого решения ISV.
--plan-publisher Идентификатор издателя расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка".

Отображение сведений об экземпляре расширения

Чтобы просмотреть сведения об установленном экземпляре расширения, используйте k8s-extension show, указав значения обязательных параметров.

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Список всех расширений, установленных в кластере

Чтобы перечислить все расширения, установленные в кластере, используйте , k8s-extension listпередавая значения для обязательных параметров.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Обновление экземпляра расширения

Примечание.

Ознакомьтесь с документацией по конкретному типу расширения, чтобы понять, какие именно настройки в --configuration-settings и --configuration-protected-settings можно обновить. Для --configuration-protected-settings необходимо указать все параметры, даже если обновляется только один параметр. Если какие-либо из этих параметров опущены, эти параметры будут считаться устаревшими и удаленными.

Чтобы обновить существующий экземпляр расширения, используйте k8s-extension update, передавая значения для обязательных параметров. Следующая команда обновляет параметр автоматического обновления для экземпляра расширения Машинное обучение Azure:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Обязательные параметры для обновления

Имя параметра Описание
--name Имя экземпляра расширения
--extension-type Тип расширения, которое необходимо установить в кластере. Например: Microsoft.AzureML.Kubernetes
--cluster-name Имя кластера AKS, в котором должен быть создан экземпляр расширения.
--resource-group Группа ресурсов, содержащая кластер AKS
--cluster-type Тип кластера, в котором должен быть создан экземпляр расширения. Укажите managedClusters, так как он соответствует кластерам AKS.

При обновлении приложения Kubernetes, приобретенного через Marketplace, также требуются следующие параметры:

Имя параметра Описание
--plan-name Идентификатор плана расширения, который можно найти на странице Marketplace на портале Azure в разделе Сведения об использовании и поддержка.
--plan-product Идентификатор продукта расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка". Примером этого является название используемого решения ISV.
--plan-publisher Идентификатор издателя расширения, найденный на странице Marketplace в портал 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, имеющему пары "ключ-значение", которые будут использоваться для передачи параметров конфигурации в расширение. Если этот параметр используется в команде, то --configuration-settings не может использоваться в той же команде.
--configuration-protected-settings Эти параметры нельзя извлечь с помощью вызовов API GET или команд az k8s-extension show, и поэтому они используются для передачи конфиденциальных параметров. При обновлении параметра необходимо указать все параметры. Если часть параметров будет опущена, эти параметры будут считаться устаревшими и будут удалены. Передайте значения в виде разделенных key=value пробелами пар после имени параметра. Если этот параметр используется в команде, то --configuration-protected-settings-file не может использоваться в той же команде.
--configuration-protected-settings-file Путь к JSON-файлу, содержащему пары «ключ — значение», которые будут использоваться для передачи конфиденциальных параметров в расширение. Если этот параметр используется в команде, то --configuration-protected-settings не может использоваться в той же команде.
--scope Область установки для расширения — cluster или namespace
--release-train Авторы расширений могут публиковать версии в различных каналах выпуска, таких как Stable, Preview и т. д. Если этот параметр не указан явно, по умолчанию используется Stable. Этот параметр нельзя использовать, если для параметра autoUpgradeMinorVersion задано значение false.

Удаление экземпляра расширения

Чтобы удалить экземпляр расширения в кластере, используйте k8s-extension-delete, указав значения обязательных параметров.

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Примечание.

Ресурс Azure, представляющий это расширение, немедленно удаляется. Выпуск Helm в кластере, связанном с этим расширением, удаляется только в том случае, если агенты, работающие в кластере Kubernetes, подключены к сети и могут снова обратиться к службам Azure для получения требуемого состояния.

Следующие шаги