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

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

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

Примечание

Примеры, приведенные в этой статье, не являются полными и предназначены только для демонстрации функциональных возможностей. Полный список команд и их параметров см. в справочнике по cli 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 в разделе Сведения об использовании и поддержка. Примером этого является имя используемого предложения независимого поставщика программного обеспечения.
--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-protected-settings которые можно обновить, см. в --configuration-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 в разделе Сведения об использовании и поддержка. Примером этого является имя используемого предложения независимого поставщика программного обеспечения.
--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 для получения требуемого состояния.

Дальнейшие действия