Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure fornece uma funcionalidade automatizada de implantações de aplicativos usando o GitOps que funciona com o AKS (Serviço de Kubernetes do Azure) e clusters Kubernetes habilitados para Azure Arc. O GitOps com o Flux v2 permite que você use o repositório Git como a origem da verdade para a configuração do cluster e a implantação do aplicativo. Para obter mais informações, consulte Implantações de aplicativos com GitOps (Flux v2) e Tutorial: Implantar aplicativos usando o GitOps com o Flux v2.
O GitOps no Kubernetes habilitado para Azure Arc ou no Serviço de Kubernetes do Azure usa o Flux, um conjunto de ferramentas de software livre popular que dá suporte a muitos parâmetros para habilitar vários cenários. Para ver uma descrição de todos os parâmetros compatíveis com o Flux, confira a documentação oficial do Flux.
Para ver todos os parâmetros compatíveis com o Flux no Azure, consulte a az k8s-configuration documentação. No momento, essa implementação não dá suporte a todos os parâmetros compatíveis com o Flux. Entre em contato conosco caso um parâmetro de que você precisa esteja ausente na implementação do Azure.
Este artigo descreve alguns dos parâmetros e argumentos disponíveis para o az k8s-configuration flux create comando. Você também pode ver a lista completa de parâmetros para o az k8s-configuration flux usando o parâmetro -h na CLI do Azure (por exemplo, az k8s-configuration flux -h ou az k8s-configuration flux create -h).
Dica
Uma solução alternativa para implantar recursos do Flux com parâmetros sem suporte é definir os recursos personalizados do Flux necessários (como GitRepository ou Kustomization) dentro do repositório Git. Implante esses recursos com o az k8s-configuration flux create comando. Em seguida, você ainda poderá acessar seus recursos do Flux por meio da interface do usuário do Azure Arc.
Argumentos gerais de configuração
| Parâmetro | Formato | Anotações |
|---|---|---|
--cluster-name-c |
fio | Nome do recurso de cluster no Azure. |
--cluster-type-t |
Valores permitidos: connectedClusters e managedClusters |
Use connectedClusters para clusters do Kubernetes habilitados para Azure Arc ou managedClusters para clusters do AKS. |
--resource-group-g |
fio | Nome do grupo de recursos do Azure que contém o recurso de cluster. |
--name-n |
fio | Nome da configuração do Flux no Azure. |
--namespace--ns |
fio | Nome do namespace para implantar a configuração. Padrão: default. |
--scope-s |
fio | Escopo de permissão para os operadores. Os valores possíveis são cluster (acesso total) ou namespace (acesso restrito). Padrão: cluster. |
--suspend |
bandeira | Suspende todas as reconciliações de origem e do Kustomize definidas nesta configuração do Flux. As reconciliações ativas no momento da suspensão continuarão. |
Argumentos gerais de origem
| Parâmetro | Formato | Anotações |
|---|---|---|
--kind |
fio | Tipo de origem para reconciliar. Valores permitidos: bucket, git, azblob. Padrão: git. |
--timeout |
formato de duração Golang | Tempo máximo para tentar reconciliar a origem antes do tempo limite. Padrão: 10m. |
--sync-interval--interval |
formato de duração Golang | Tempo entre reconciliações da origem no cluster. Padrão: 10m. |
Argumentos de referência de origem do repositório Git
| Parâmetro | Formato | Anotações |
|---|---|---|
--branch |
fio | Branch na origem do Git para sincronização com o cluster. Padrão: master. Repositórios mais recentes podem ter um branch raiz chamado main, nesse caso, você precisa definir --branch=main. |
--tag |
fio | Marca na origem do Git para sincronização com o cluster. Exemplo: --tag=3.2.0. |
--semver |
fio | Intervalo semver de marca do Git na origem do Git para sincronização com o cluster. Exemplo: --semver=">=3.1.0-rc.1 <3.2.0". |
--commit |
fio | SHA do Git do commit na origem do Git para sincronização com o cluster. Exemplo: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a. |
Para obter mais informações, consulte a documentação do Flux sobre estratégias de check-out do repositório Git.
Repositório Git público
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
http[s]://server/repo[.git] |
URL da origem do repositório Git para reconciliar com o cluster. |
Repositório Git privado com SSH
Importante
O Azure DevOps anunciou a substituição do SSH-RSA como um método de criptografia com suporte para se conectar aos repositórios do Azure usando o SSH. Se você usar as chaves do SSH para se conectar aos repositórios do Azure nas configurações do Flux, recomendamos mover para as chaves RSA-SHA2-256 ou RSA-SHA2-512 mais seguras. Para obter mais informações, consulte Substituição do SSH-RSA do Azure DevOps.
Repositório Git privado com chaves criadas por SSH e Flux
Adicione a chave pública gerada pelo Flux à conta de usuário no provedor de serviços Git.
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
ssh://user@server/repo[.git] |
git@ deve substituir user@ se a chave pública estiver associada ao repositório em vez da conta de usuário. |
Repositório Git privado com SSH e chaves fornecidas pelo usuário
Use sua própria chave privada diretamente ou de um arquivo. A chave deve estar no formato PEM e terminar com uma nova linha (\n).
Adicione a chave pública associada à conta de usuário no seu provedor de serviços Git.
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
ssh://user@server/repo[.git] | git@ deve substituir user@ se a chave pública estiver associada ao repositório em vez da conta de usuário. |
--ssh-private-key |
Chave Base64 no formato PEM | Forneça a chave diretamente. |
--ssh-private-key-file |
Caminho completo para o arquivo local | Forneça o caminho completo para o arquivo local que contém a chave de formato PEM. |
Host do Git privado com o SSH e os hosts conhecidos fornecidos pelo usuário
O operador Flux mantém uma lista de hosts Git comuns em seu known_hosts arquivo. O Flux usa essas informações para autenticar o repositório Git antes de estabelecer a conexão SSH. Se você estiver usando um repositório Git incomum ou seu próprio host Git, poderá fornecer a chave de host para que o Flux possa identificar seu repositório.
Assim como as chaves privadas, você pode fornecer o conteúdo de known_hosts diretamente ou em um arquivo. Ao fornecer um conteúdo próprio, use as especificações de formato de conteúdo known_hosts, juntamente com um dos cenários de chave SSH anteriores.
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
ssh://user@server/repo[.git] | git@ pode substituir user@. |
--known-hosts |
Cadeia de caracteres Base64 | Forneça o conteúdo de known_hosts diretamente. |
--known-hosts-file |
Caminho completo para o arquivo local | Forneça o conteúdo known_hosts em um arquivo local. |
Repositório Git privado com um usuário e uma chave HTTPS
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
https://server/repo[.git] |
HTTPS com Autenticação Básica. |
--https-user |
Cadeia de caracteres bruta | Nome de usuário HTTPS. |
--https-key |
Cadeia de caracteres bruta | Token ou senha de acesso pessoal HTTPS. |
Repositório Git privado com um certificado CA HTTPS
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
https://server/repo[.git] |
HTTPS com Autenticação Básica. |
--https-ca-cert |
Cadeia de caracteres Base64 | Certificado de autoridade de certificação para comunicação TLS. |
--https-ca-cert-file |
Caminho completo para o arquivo local | Forneça o conteúdo do certificado de autoridade certificadora em um arquivo local. |
Argumentos de origem do Bucket
Se você usar origem bucket, aqui estão os argumentos de comando específicos do bucket.
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
Cadeia de caracteres de URL | A URL para o bucket. Formatos com suporte: http://, https://. |
--bucket-name |
fio | Nome do bucket a ser sincronizado. |
--bucket-access-key |
fio | ID da chave de acesso usada para autenticar com o bucket. |
--bucket-secret-key |
fio | Chave secreta usada para autenticar com o bucket. |
--bucket-insecure |
Booliano | Comunique-se com um bucket sem TLS. Se não for fornecido, presumimos como falso; se fornecido, presumimos como verdadeiro. |
Argumentos de origem da conta de Armazenamento de Blobs do Azure
Se você usar origem azblob, aqui estão os argumentos de comando específicos do blob.
| Parâmetro | Formato | Anotações |
|---|---|---|
--url-u |
Cadeia de caracteres de URL | A URL para o azblob. |
--container-name |
fio | Nome do contêiner do Azure Blob Storage para sincronizar |
--sp_client_id |
fio | A ID do cliente para autenticar uma entidade de serviço no Blob do Azure, necessária para este método de autenticação |
--sp_tenant_id |
fio | A ID do locatário para autenticar uma entidade de serviço no Blob do Azure (necessária para este método de autenticação) |
--sp_client_secret |
fio | O segredo do cliente para autenticar uma entidade de serviço no Blob do Azure |
--sp_client_cert |
fio | O certificado de cliente codificado em Base64 para autenticar uma entidade de serviço no Blob do Azure |
--sp_client_cert_password |
fio | A senha do certificado do cliente usada para autenticar um principal de serviço no Azure Blob |
--sp_client_cert_send_chain |
fio | Especifica se o cabeçalho x5c deve ser incluído nas declarações do cliente ao adquirir um token para habilitar a autenticação baseada em nome de entidade/emissor para o certificado do cliente |
--account_key |
fio | A Chave Compartilhada de Blobs do Azure para autenticação |
--sas_token |
fio | O Token SAS do Blob do Azure para autenticação |
--managed-identity-client-id |
fio | A ID do cliente da identidade gerenciada para autenticação no Blob do Azure |
Importante
Ao usar a autenticação de identidade gerenciada para clusters do AKS e origem azblob, a identidade gerenciada deve ser atribuída, no mínimo, à função Leitor de dados de blob de armazenamento. A autenticação usando uma identidade gerenciada ainda não está disponível para clusters do Kubernetes habilitados para Azure Arc.
Segredo local para autenticação com a fonte
Você pode usar um segredo do Kubernetes local para autenticação com uma fonte git, bucket ou azBlob. O segredo local deve conter todos os parâmetros de autenticação necessários para a origem e deve ser criado no mesmo namespace que a configuração do Flux.
| Parâmetro | Formato | Anotações |
|---|---|---|
--local-auth-ref--local-ref |
fio | Referência local a um segredo do Kubernetes no namespace de configuração do Flux a ser usado para autenticação com a origem. |
Para autenticação HTTPS, você cria um segredo com os username e password.
kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-literal=username=<my-username> --from-literal=password=<my-password-or-key>
Para autenticação SSH, você cria um segredo com os campos identity e known_hosts.
kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-file=identity=./id_rsa --from-file=known_hosts=./known_hosts
Importante
O Azure DevOps anunciou a substituição do SSH-RSA como um método de criptografia com suporte para se conectar aos repositórios do Azure usando o SSH. Se você usar as chaves do SSH para se conectar aos repositórios do Azure nas configurações do Flux, recomendamos mover para as chaves RSA-SHA2-256 ou RSA-SHA2-512 mais seguras. Para obter mais informações, consulte Substituição do SSH-RSA do Azure DevOps.
Para ambos os casos, ao criar a configuração do Flux, use --local-auth-ref my-custom-secret no lugar dos outros parâmetros de autenticação:
az k8s-configuration flux create -g <cluster_resource_group> -c <cluster_name> -n <config_name> -t connectedClusters --scope cluster --namespace flux-config -u <git-repo-url> --kustomization name=kustomization1 --local-auth-ref my-custom-secret
Saiba mais sobre como usar um segredo do Kubernetes local com estes métodos de autenticação:
- Autenticação HTTPS do repositório Git
- Certificados autoassinados https do repositório Git
- Autenticação SSH do repositório Git
- Autenticação estática de bucket
Observação
Se você precisar que o Flux acesse a origem por meio do proxy, atualize os agentes do Azure Arc com as configurações de proxy. Para obter mais informações, confira Conectar-se usando um servidor proxy de saída.
Implementação do Git
Para dar suporte a vários provedores de repositório que implementam o Git, o Flux pode ser configurado para usar uma das duas bibliotecas Git: go-git ou libgit2. Para obter detalhes, consulte a documentação do Flux.
A implementação do GitOps do Flux v2 determina automaticamente qual biblioteca usar para repositórios de nuvem pública:
- Para repositórios GitHub, GitLab e BitBucket, o Flux usa
go-git. - Para o Azure DevOps e todos os outros repositórios, o Flux usa
libgit2.
Para repositórios locais, o Flux usa libgit2.
Customização
Kustomization é uma configuração criada para configurações do Flux que permite escolher um caminho específico no repositório de origem que é reconciliado com o cluster. Você não precisa criar um arquivo 'kustomization.yaml neste caminho especificado. Por padrão, todos os manifestos nesse caminho são reconciliados. No entanto, se você quiser ter uma sobreposição do Kustomize para os aplicativos disponíveis neste caminho do repositório, você deve criar arquivos Kustomize no git para serem usados na configuração do Flux.
Ao usar az k8s-configuration flux kustomization create, você pode criar uma ou mais kustomizations durante a configuração.
| Parâmetro | Formato | Anotações |
|---|---|---|
--kustomization |
Sem valor | Início de uma cadeia de caracteres de parâmetros que configuram uma kustomização. Você pode usá-lo várias vezes para criar várias kustomizations. |
name |
fio | Nome exclusivo para essa kustomização. |
path |
fio | Caminho no repositório Git para reconciliação com o cluster. O padrão é o nível superior do branch. |
prune |
Booliano | O padrão é false. Defina prune=true para garantir que os objetos implantados pelo Flux no cluster sejam limpos se forem removidos do repositório ou se a configuração do Flux ou as kustomizations forem excluídas. O uso prune=true é importante para ambientes em que os usuários não têm acesso aos clusters e só podem fazer alterações por meio do repositório Git. |
depends_on |
fio | Nome de uma ou mais kustomizações (nessa configuração) que precisam ser reconciliadas antes que essa kustomização possa ser reconciliada. Por exemplo: depends_on=["kustomization1","kustomization2"]. Se você remover uma kustomização que tenha kustomizações dependentes, o estado de kustomizações dependentes se tornará DependencyNotReadye a reconciliação será interrompida. |
timeout |
formato de duração Golang | Padrão: 10m. |
sync_interval |
formato de duração Golang | Padrão: 10m. |
retry_interval |
formato de duração Golang | Padrão: 10m. |
validation |
fio | Valores: none, , clientserver. Padrão: none. Consulte a documentação do Flux para obter detalhes. |
force |
Booliano | Padrão: false. Defina force=true para instruir o controlador do Kustomize a recriar recursos quando a aplicação de patch falhar devido a uma alteração de campo imutável. |
Você também pode usar az k8s-configuration flux kustomization para atualizar, listar, mostrar e excluir kustomizations em uma configuração do Flux.
Próximas etapas
- Saiba mais sobre implantações de aplicações com GitOps (Flux v2) para AKS e Kubernetes compatíveis com Azure Arc.
- Use nosso tutorial para saber como habilitar o GitOps em seus clusters Kubernetes habilitados para AKS ou Azure Arc.
- Saiba mais sobre fluxo de trabalho de CI/CD usando o GitOps.