Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Helm é uma ferramenta de empacotamento de código aberto que ajuda você a instalar e gerenciar o ciclo de vida dos aplicativos Kubernetes. Semelhante aos gerenciadores de pacotes Linux como APT e Yum, o Helm gerencia gráficos Kubernetes, que são pacotes de recursos Kubernetes pré-configurados.
Neste início rápido, você usa o Helm para empacotar e executar um aplicativo no AKS. Para obter informações sobre como instalar um aplicativo existente usando o Helm, consulte Instalar aplicativos existentes com o Helm no AKS.
Prerequisites
- Uma subscrição do Azure. Se não tiver uma subscrição Azure, pode criar uma conta gratuita.
- CLI do Azure ou Azure PowerShell instalado.
- Helm v3 instalado.
Criar um Registo de Contentores do Azure
Precisa de armazenar as suas imagens de contentores num Azure Container Registry (ACR) para executar a sua aplicação no cluster AKS usando Helm. O nome do seu registo deve ser único no Azure e conter entre 5 a 50 caracteres alfanuméricos. Apenas caracteres minúsculos são permitidos. O SKU básico é um ponto de entrada com custo otimizado para fins de desenvolvimento que fornece um equilíbrio entre armazenamento e taxa de transferência.
Crie um grupo de recursos Azure usando o comando az group create. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.
az group create --name myResourceGroup --location eastusCrie um Azure Container Registry com um nome único chamando o comando az acr create. O exemplo a seguir cria um ACR chamado myhelmacr com a SKU básica .
az acr create --resource-group myResourceGroup --name myhelmacr --sku BasicSua saída deve ser semelhante à saída de exemplo condensada a seguir. Anote o valor do seu loginServer para utilização pelo seu ACR num passo posterior.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Criar um cluster do AKS
O seu novo cluster AKS precisa de aceder ao seu ACR para obter as imagens de contentor e executá-las.
Crie um cluster AKS usando o comando az aks create com o
--attach-acrparâmetro para conceder ao cluster acesso ao seu ACR. O exemplo a seguir cria um cluster AKS chamado myAKSCluster e concede acesso ao ACR myhelmacr . Certifique-se de substituirmyhelmacrpelo nome do seu ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Conecte-se ao cluster AKS
Para conectar um cluster Kubernetes localmente, use o cliente de linha de comando Kubernetes, kubectl.
kubectl já está instalado se usares Azure Cloud Shell.
Instale
kubectllocalmente usando o comando az aks install-cli.az aks install-cliConfigure
kubectlpara se conectar ao cluster Kubernetes usando o comando az aks get-credentials. O comando a seguir obtém credenciais para o cluster AKS chamado myAKSCluster em myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Baixe o aplicativo de exemplo
Este quickstart utiliza a aplicação Azure Vote.
Clone a aplicação a partir de GitHub usando o comando
git clone.git clone https://github.com/Azure-Samples/azure-voting-app-redis.gitNavegue até o
azure-votediretório usando ocdcomando.cd azure-voting-app-redis/azure-vote/
Crie e envie o aplicativo de exemplo para o ACR
Crie e envie a imagem para o seu ACR usando o comando az acr build . O exemplo a seguir cria uma imagem chamada azure-vote-front:v1 e a envia por push para o ACR myhelmacr . Certifique-se de substituir
myhelmacrpelo nome do seu ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Nota
Você também pode importar gráficos Helm para seu ACR. Para mais informações, consulte Enviar e buscar gráficos Helm para um registo de contentores do Azure.
Cria o teu Helm chart
Gere o Helm chart usando o comando
helm create.helm create azure-vote-frontAtualize azure-vote-front/Chart.yaml para adicionar uma dependência para o gráfico redis do
https://charts.bitnami.com/bitnamirepositório de gráficos e atualizeappVersionparav1, conforme mostrado no exemplo a seguir:Nota
As versões de imagem de contêiner mostradas neste guia foram testadas para funcionar com este exemplo, mas podem não ser a versão mais recente disponível.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1Atualize as dependências do gráfico Helm usando o
helm dependency updatecomando.helm dependency update azure-vote-frontAtualize azure-vote-front/values.yaml com as seguintes alterações.
- Adicione uma seção redis para definir os detalhes da imagem, a porta do contêiner e o nome da implantação.
- Adicione um backendName para conectar a parte frontal à implementação do redis.
- Altere image.repository para
<loginServer>/azure-vote-front. - Altere image.tag para
v1. - Altere service.type para LoadBalancer.
Por exemplo:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...Adicione uma
envseção a azure-vote-front/templates/deployment.yaml para passar o nome da implantação do redis .... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Execute seu gráfico Helm
Instale seu aplicativo usando o gráfico Helm usando o
helm installcomando.helm install azure-vote-front azure-vote-front/Leva alguns minutos para o serviço retornar um endereço IP público. Monitore o progresso usando o
kubectl get servicecomando com o--watchargumento.kubectl get service azure-vote-front --watchQuando o serviço estiver pronto, o
EXTERNAL-IPvalor muda de<pending>para um endereço IP. PressioneCTRL+Cpara parar o processo dekubectlmonitorização.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6sNavegue até o balanceador de carga do seu aplicativo em um navegador usando o
<EXTERNAL-IP>para ver o aplicativo de exemplo.
Eliminar o cluster
Remova o seu grupo de recursos, cluster AKS, Azure registo de contentores, imagens de contentor armazenadas no ACR e todos os recursos relacionados usando o comando az group delete com o parâmetro
--yespara confirmar a eliminação e o parâmetro--no-waitpara regressar ao prompt de comandos sem esperar que a operação termine.az group delete --name myResourceGroup --yes --no-wait
Nota
Se você criou seu cluster AKS com uma identidade gerenciada atribuída ao sistema (a opção de identidade padrão neste início rápido), a identidade é gerenciada pela plataforma e não requer remoção.
Se você criou seu cluster AKS com uma entidade de serviço, a entidade de serviço não será removida quando você excluir o cluster. Para remover o principal de serviço, consulte Considerações e exclusão do principal de serviço AKS.
Próximos passos
Para obter mais informações sobre como usar o Helm, consulte a documentação do Helm.