Развертывание расширений кластера и управление ими с помощью 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 для получения требуемого состояния.
Дальнейшие действия
- Просмотрите список доступных в настоящее время расширений кластера.
- Узнайте о приложениях Kubernetes, доступных в Marketplace.