Поделиться через


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

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

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

Примечание.

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

Необходимые компоненты

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

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

    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 , чтобы создать новый экземпляр расширения.

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

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

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

Имя параметра Description
--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-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

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

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

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

Наименование параметра Description
--plan-name Идентификатор плана расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка".
--plan-product Идентификатор продукта расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка". Примером этого является имя используемого предложения ISV.
--plan-publisher Идентификатор издателя расширения, найденный на странице Marketplace в портал Azure в разделе "Сведения об использовании и поддержка".

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

Наименование параметра Description
--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 для получения требуемого состояния.

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