Implantar e gerenciar extensões de cluster usando a CLI do Azure
Você pode criar instâncias de extensão em um cluster AKS, definindo parâmetros obrigatórios e opcionais, incluindo opções relacionadas a atualizações e configurações. Você também pode exibir, listar, atualizar e excluir instâncias de extensão.
Antes de começar, leia sobre extensões de cluster.
Nota
Os exemplos fornecidos neste artigo não estão completos e destinam-se apenas a mostrar a funcionalidade. Para obter uma lista abrangente de comandos e seus parâmetros, consulte a referência da CLI az k8s-extension.
Pré-requisitos
Uma subscrição do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
Os
Microsoft.ContainerService
fornecedores de recursos eMicrosoft.KubernetesConfiguration
têm de estar registados na sua subscrição. Para registrar esses provedores, execute o seguinte comando:az provider register --namespace Microsoft.ContainerService --wait az provider register --namespace Microsoft.KubernetesConfiguration --wait
Um cluster AKS. Esse cluster deve ter sido criado com uma identidade gerenciada, pois as extensões de cluster não funcionarão com clusters baseados em entidade de serviço. Para novos clusters criados com
az aks create
o , a identidade gerenciada é configurada por padrão. Para clusters baseados em entidade de serviço existentes, alterne para gerenciar a identidade executandoaz aks update
com o--enable-managed-identity
sinalizador. Para obter mais informações, consulte Usar identidade gerenciada.Versão da CLI >do Azure = 2.16.0 instalada. Recomendamos o uso da versão mais recente.
A versão mais recente das extensões da CLI do
k8s-extension
Azure. Instale a extensão executando o seguinte comando:az extension add --name k8s-extension
Se a extensão já estiver instalada, certifique-se de que está a executar a versão mais recente utilizando o seguinte comando:
az extension update --name k8s-extension
Criar instância de extensão
Crie uma nova instância de extensão com k8s-extension create
, passando valores para os parâmetros obrigatórios. Este comando de exemplo cria uma instância de extensão do Azure Machine Learning em seu cluster 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
Este comando de exemplo cria um aplicativo Kubernetes de exemplo (publicado no Marketplace) em seu cluster 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
Nota
O serviço Extensões de Cluster não consegue reter informações confidenciais por mais de 48 horas. Se os agentes de extensão de cluster não tiverem conectividade de rede por mais de 48 horas e não puderem determinar se devem ser criados uma extensão no cluster, a extensão passará para Failed
o estado. Uma vez no Failed
estado, você precisará executar k8s-extension create
novamente para criar uma nova instância de extensão.
Parâmetros obrigatórios
Nome do parâmetro | Description |
---|---|
--name |
Nome da instância de extensão |
--extension-type |
O tipo de extensão que você deseja instalar no cluster. Por exemplo: Microsoft.AzureML.Kubernetes |
--cluster-name |
Nome do cluster AKS no qual a instância de extensão deve ser criada |
--resource-group |
O grupo de recursos que contém o cluster AKS |
--cluster-type |
O tipo de cluster no qual a instância de extensão deve ser criada. Especificar managedClusters como ele mapeia para clusters AKS |
Parâmetros opcionais
Nome do parâmetro | Description |
---|---|
--auto-upgrade-minor-version |
Propriedade booleana que especifica se a versão secundária da extensão será atualizada automaticamente ou não. Padrão: true . Se esse parâmetro estiver definido como true, você não poderá definir version o parâmetro, pois a versão será atualizada dinamicamente. Se definido como false , a extensão não será atualizada automaticamente, mesmo para versões de patch. |
--version |
Versão da extensão a ser instalada (versão específica para fixar a instância de extensão). Não deve ser fornecido se auto-upgrade-minor-version estiver definido como true . |
--configuration-settings |
Configurações que podem ser passadas para a extensão para controlar sua funcionalidade. Passe valores como pares separados key=value por espaço após o nome do parâmetro. Se esse parâmetro for usado no comando, não --configuration-settings-file poderá ser usado no mesmo comando. |
--configuration-settings-file |
Caminho para o arquivo JSON com pares de valores de chave a serem usados para passar as definições de configuração para a extensão. Se esse parâmetro for usado no comando, não --configuration-settings poderá ser usado no mesmo comando. |
--configuration-protected-settings |
Essas configurações não podem ser recuperadas usando GET chamadas ou az k8s-extension show comandos de API e, portanto, são usadas para passar configurações confidenciais. Passe valores como pares separados key=value por espaço após o nome do parâmetro. Se esse parâmetro for usado no comando, não --configuration-protected-settings-file poderá ser usado no mesmo comando. |
--configuration-protected-settings-file |
Caminho para o arquivo JSON com pares de valores de chave a serem usados para passar configurações confidenciais para a extensão. Se esse parâmetro for usado no comando, não --configuration-protected-settings poderá ser usado no mesmo comando. |
--scope |
Âmbito da instalação para a extensão - cluster ou namespace |
--release-namespace |
Este parâmetro indica o namespace dentro do qual a versão deve ser criada. Este parâmetro só é relevante se scope o parâmetro estiver definido como cluster . |
--release-train |
Os autores de extensões podem publicar versões em diferentes trens de lançamento, como Stable , Preview , etc. Se esse parâmetro não estiver definido explicitamente, Stable será usado como padrão. Este parâmetro não pode ser usado quando --auto-upgrade-minor-version o parâmetro é definido como false . |
--target-namespace |
Este parâmetro indica o namespace dentro do qual a versão será criada. A permissão da conta do sistema criada para esta instância de extensão será restrita a este namespace. Este parâmetro só é relevante se estiver scope definido como namespace . |
--plan-name |
ID do plano da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. |
--plan-product |
ID do produto da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. Um exemplo disso é o nome da oferta de ISV usada. |
--plan-publisher |
ID do editor da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. |
Mostrar detalhes de uma instância de extensão
Para exibir detalhes de uma instância de extensão atualmente instalada, use k8s-extension show
, passando valores para os parâmetros obrigatórios.
az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Listar todas as extensões instaladas no cluster
Para listar todas as extensões instaladas em um cluster, use k8s-extension list
, passando valores para os parâmetros obrigatórios.
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Instância de extensão de atualização
Nota
Consulte a documentação do tipo de extensão específico para entender as configurações específicas e --configuration-settings
--configuration-protected-settings
que podem ser atualizadas. Para --configuration-protected-settings
, espera-se que todas as configurações sejam fornecidas, mesmo que apenas uma configuração esteja sendo atualizada. Se qualquer uma dessas configurações for omitida, essas configurações serão consideradas obsoletas e excluídas.
Para atualizar uma instância de extensão existente, use k8s-extension update
, passando valores para os parâmetros obrigatórios. O comando a seguir atualiza a configuração de atualização automática para uma instância de extensão do Azure Machine Learning:
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Parâmetros necessários para atualização
Nome do parâmetro | Description |
---|---|
--name |
Nome da instância de extensão |
--extension-type |
O tipo de extensão que você deseja instalar no cluster. Por exemplo: Microsoft.AzureML.Kubernetes |
--cluster-name |
Nome do cluster AKS no qual a instância de extensão deve ser criada |
--resource-group |
O grupo de recursos que contém o cluster AKS |
--cluster-type |
O tipo de cluster no qual a instância de extensão deve ser criada. Especificar managedClusters como ele mapeia para clusters AKS |
Se atualizar um aplicativo Kubernetes adquirido através do Marketplace, os seguintes parâmetros também são necessários:
Nome do parâmetro | Description |
---|---|
--plan-name |
ID do plano da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. |
--plan-product |
ID do produto da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. Um exemplo disso é o nome da oferta de ISV usada. |
--plan-publisher |
ID do editor da extensão, encontrada na página do Marketplace no portal do Azure em Informações de Uso + Suporte. |
Parâmetros opcionais para atualização
Nome do parâmetro | Description |
---|---|
--auto-upgrade-minor-version |
Propriedade booleana que especifica se a versão secundária da extensão será atualizada automaticamente ou não. Padrão: true . Se esse parâmetro for definido como true, você não poderá definir version o parâmetro, pois a versão será atualizada dinamicamente. Se definido como false , a extensão não será atualizada automaticamente, mesmo para versões de patch. |
--version |
Versão da extensão a ser instalada (versão específica para fixar a instância de extensão). Não deve ser fornecido se auto-upgrade-minor-version estiver definido como true . |
--configuration-settings |
Configurações que podem ser passadas para a extensão para controlar sua funcionalidade. Apenas as configurações que exigem uma atualização precisam ser fornecidas. As configurações fornecidas seriam substituídas pelos valores fornecidos. Passe valores como pares separados key=value por espaço após o nome do parâmetro. Se esse parâmetro for usado no comando, não --configuration-settings-file poderá ser usado no mesmo comando. |
--configuration-settings-file |
Caminho para o arquivo JSON com pares de valores de chave a serem usados para passar as definições de configuração para a extensão. Se esse parâmetro for usado no comando, não --configuration-settings poderá ser usado no mesmo comando. |
--configuration-protected-settings |
Essas configurações não podem ser recuperadas usando GET chamadas ou az k8s-extension show comandos de API e, portanto, são usadas para passar configurações confidenciais. Quando você atualiza uma configuração, espera-se que todas as configurações sejam especificadas. Se algumas configurações forem omitidas, essas configurações serão consideradas obsoletas e excluídas. Passe valores como pares separados key=value por espaço após o nome do parâmetro. Se esse parâmetro for usado no comando, não --configuration-protected-settings-file poderá ser usado no mesmo comando. |
--configuration-protected-settings-file |
Caminho para o arquivo JSON com pares de valores de chave a serem usados para passar configurações confidenciais para a extensão. Se esse parâmetro for usado no comando, não --configuration-protected-settings poderá ser usado no mesmo comando. |
--scope |
Âmbito da instalação para a extensão - cluster ou namespace |
--release-train |
Os autores de extensões podem publicar versões em diferentes trens de lançamento, como Stable , Preview , etc. Se esse parâmetro não estiver definido explicitamente, Stable será usado como padrão. Este parâmetro não pode ser usado quando autoUpgradeMinorVersion o parâmetro é definido como false . |
Excluir instância de extensão
Para excluir uma instância de extensão em um cluster, use k8s-extension-delete
, passando valores para os parâmetros obrigatórios.
az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters
Nota
O recurso do Azure que representa essa extensão é excluído imediatamente. A versão Helm no cluster associada a essa extensão só é excluída quando os agentes em execução no cluster Kubernetes têm conectividade de rede e podem entrar em contato com os serviços do Azure novamente para buscar o estado desejado.
Próximos passos
- Exiba a lista de extensões de cluster atualmente disponíveis.
- Saiba mais sobre os aplicativos Kubernetes disponíveis no Marketplace.
Azure Kubernetes Service