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