Implantação remota e CI com GitOps e Flux
Este artigo descreve como implantar aplicativos no cluster do AKS Edge Essentials habilitado para Arc. As etapas são as seguintes:
- Aponte para seu aplicativo GitHub para o portal do Azure.
- Envie seu aplicativo por push para o cluster do AKS Edge Essentials instalando a configuração do GitOps.
- Confirme uma alteração em seu aplicativo GitHub e mostre que seu aplicativo é atualizado automaticamente.
Observação
Verifique se você alocou pelo menos 4 GB de RAM e 4 CPUs para a VM do Linux, bem como um intervalo de IP de serviço maior que 0. Você também pode precisar de um espaço em disco maior do que os 10 GB padrão, dependendo de suas cargas de trabalho.
Etapa 1: bifurcar o repositório de aplicativos de demonstração
Vá para o repositório Jumpstart do Azure Arc e bifurque-o para sua conta do GitHub.
Etapa 2: criar configuração
Vá para o cluster no portal do Azure e selecione GitOps. Em seguida, crie uma configuração no nível do cluster e uma configuração no nível do namespace. Selecione Criar e Flux versão 2.
Configuração no nível do cluster
Atributo | Entrada |
---|---|
Nome da configuração | config-nginx |
Namespace | ingress-nginx |
Escopo | Cluster |
Tipo de origem | Repositório do Git |
URL do repositório | <URL do seu fork> |
Tipo de referência | Branch |
Branch | main |
Tipo do repositório | Setor Público |
Intervalo de sincronização | 1 |
Tempo limite de sincronização | 10 |
Kustomização | |
Nome da instância | nginx |
Caminho | ./nginx/release |
Intervalo de sincronização | 10 |
Tempo limite de sincronização | 10 |
Remover | Enabled |
Force | Não habilitado |
Aguarde até que o config-nginx
seja criado com êxito e visível no GitOps do portal do Azure antes de criar a configuração no nível do namespace (você pode passar para a criação da próxima configuração se a conformidade estiver em um estado pendente).
Configuração no nível do namespace
Atributo | Entrada |
---|---|
Nome da configuração | config-helloarc |
Namespace | hello-arc |
Escopo | Namespace |
Tipo de origem | Repositório Git |
URL do repositório | <URL do seu fork> |
Tipo de referência | Branch |
Branch | main |
Tipo do repositório | Setor Público |
Intervalo de sincronização | 1 |
Tempo limite de sincronização | 10 |
Kustomização | |
Nome da instância | app |
Caminho | ./hello-arc/releases/app |
Intervalo de sincronização | 10 |
Tempo limite de sincronização | 10 |
Remover | Enabled |
Force | Não habilitado |
Atualize sua tabela de configuração e aguarde até que a configuração seja instalada e compatível. Usando kubectl
o , verifique se o serviço está em execução:
kubectl get svc -n ingress-nginx
kubectl get pods -n hello-arc
Abra um navegador da Web e navegue até o IP do nó, que é o external-IP
do seu ingress-nginx-controller
:
Etapa 3: criar a configuração do Windows (opcional)
Se você tiver um nó do Windows, também poderá habilitar o flux2 para Windows. O exemplo hello-arc-windows usa um contêiner hello-arc do Windows.
Dica
Os contêineres do Windows são maiores em tamanho do que os contêineres do Linux. O download do contêiner hello-arc-windows pode levar até 15 minutos.
Crie uma nova configuração no nível do namespace para nós do Windows.
Configuração no nível do namespace para Windows
Atributo | Entrada |
---|---|
Nome da configuração | config-helloarc-windows |
Namespace | hello-arc |
Escopo | Namespace |
Tipo de origem | Repositório Git |
URL do repositório | <URL do seu fork> |
Tipo de referência | Branch |
Branch | main |
Tipo do repositório | Setor Público |
Intervalo de sincronização | 1 |
Tempo limite de sincronização | 10 |
Kustomização | |
Nome da instância | app |
Caminho | ./hello-arc-windows/releases/app |
Intervalo de sincronização | 10 |
Tempo limite de sincronização | 10 |
Remover | Enabled |
Force | Não habilitado |
Etapa 4: atualizar seu aplicativo usando o GitOps
No fork do repositório azure-arc-jumpstart-apps, navegue até hello-arc > versões > aplicativo >hello-arc.yaml.
Faça uma alteração neste arquivo YAML selecionando Editar. Altere o replicaCount para 5. Altere o valor para "Implantando no AKS Edge Essentials Gitops!"
Confirme essa alteração.
Observação
Como definimos o intervalo de sincronização como 1 min ao criar a configuração, o Flux efetua pull das alterações do GitHub a cada minuto.
Use
kubectl
para ver os pods antigos serem encerrados e os novos pods ficarem online:kubectl get pods -n hello-arc -w
Atualize seu aplicativo para ver essa alteração refletida como uma atualização sem interrupção:
Para obter mais informações sobre o GitOps, consulte o guia de início rápido do Azure Arc.