Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Simplifique a implantação de aplicativos multilocatários do Amazon EKS usando o Flux - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Simplifique a implantação de aplicativos multilocatários do Amazon EKS usando o Flux

Criado por Nadeem Rahaman (AWS), Aditya Ambati (AWS), Aniket Dekate (AWS) e Shrikant Patil (AWS)

Resumo

Aviso: não AWS CodeCommit está mais disponível para novos clientes. Os clientes existentes do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

Muitas empresas que oferecem produtos e serviços são setores regulados por dados que precisam manter barreiras de dados entre suas funções comerciais internas. Esse padrão descreve como você pode usar o recurso de multilocação no Amazon Elastic Kubernetes Service (Amazon EKS) para criar uma plataforma de dados que obtenha isolamento lógico e físico entre locatários ou usuários que compartilham um único cluster do Amazon EKS. O padrão fornece isolamento por meio das seguintes abordagens:

  • Isolamento do namespace Kubernetes

  • Regras de controle de acesso com base em função (RBAC)

  • Políticas de rede

  • Cotas de recurso

  • AWS Identity and Access Management Funções (IAM) para contas de serviço (IRSA)

Além disso, essa solução usa o Flux para manter a configuração do locatário imutável quando você implanta aplicativos. Você pode implantar seus aplicativos de locatário especificando o repositório de locatários que contém o arquivo Flux kustomization.yaml em sua configuração.

Esse padrão implementa o seguinte:

  • Um AWS CodeCommit repositório, AWS CodeBuild projetos e um AWS CodePipeline pipeline, que são criados com a implantação manual de scripts do Terraform.

  • Componentes de rede e computação necessários para hospedar os inquilinos. Eles são criados por meio CodePipeline e CodeBuild usando o Terraform.

  • Namespaces de inquilinos, políticas de rede e cotas de recursos, que são configurados por meio de um gráfico do Helm.

  • Aplicativos que pertencem a diferentes locatários, implantados usando o Flux.

Recomendamos que você planeje e crie cuidadosamente sua própria arquitetura para multilocação com base em seus requisitos exclusivos e considerações de segurança. Esse padrão fornece um ponto de partida para sua implementação.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Dependência das implantações manuais do Terraform: a configuração inicial do fluxo de trabalho, incluindo a criação de CodeCommit repositórios, CodeBuild projetos e CodePipeline pipelines, depende de implantações manuais do Terraform. Isso introduz uma limitação potencial em termos de automação e escalabilidade, porque requer intervenção manual para mudanças na infraestrutura.

  • CodeCommit dependência do repositório: o fluxo de trabalho depende dos CodeCommit repositórios como solução de gerenciamento de código-fonte e é fortemente acoplado a. Serviços da AWS

Arquitetura

Arquiteturas de destino

Esse padrão implanta três módulos para criar a infraestrutura de pipeline, rede e computação para uma plataforma de dados, conforme ilustrado nos diagramas a seguir.

Arquitetura do pipeline:

Infraestrutura de pipeline para a arquitetura multilocatária do Amazon EKS

Arquitetura de rede:

Infraestrutura de rede para a arquitetura multilocatária do Amazon EKS

Arquitetura de computação:

Infraestrutura computacional para a arquitetura multilocatária do Amazon EKS

Ferramentas

Serviços da AWS

  • AWS CodeBuildé um serviço de compilação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes de unidade e produzir artefatos prontos para implantação.

  • AWS CodeCommité um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu próprio sistema de controle de origem.

  • AWS CodePipelineajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar alterações de software continuamente.

  • O Amazon Elastic Kubernetes Service (Amazon EKS) ajuda você a executar o AWS Kubernetes sem precisar instalar ou manter seu próprio plano de controle ou nós do Kubernetes.

  • AWS Transit Gatewayé um hub central que conecta nuvens privadas virtuais (VPCs) e redes locais.

  • A Amazon Virtual Private Cloud (Amazon VPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.

Outras ferramentas

  • As políticas de rede Cilium oferecem suporte às políticas de rede L3 e L4 do Kubernetes. Eles podem ser estendidos com políticas L7 para fornecer segurança em nível de API para HTTP, Kafka e gRPC e outros protocolos similares.

  • O Flux é uma ferramenta de entrega contínua (CD) baseada em Git que automatiza as implantações de aplicativos no Kubernetes.

  • O Helm é um gerenciador de pacotes de código aberto para Kubernetes que ajuda você a instalar e gerenciar aplicativos em seu cluster Kubernetes.

  • O Terraform é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.

Repositório de código

O código desse padrão está disponível no repositório GitHub EKS Multi-Tenancy Terraform Solution.

Práticas recomendadas

Para obter diretrizes e melhores práticas para usar essa implementação, consulte o seguinte:

Épicos

TarefaDescriçãoHabilidades necessárias

Clone o repositório do projeto.

Clone o repositório GitHub EKS Multi-Tenancy Terraform Solution executando o seguinte comando em uma janela de terminal:

git clone https://github.com/aws-samples/aws-eks-multitenancy-deployment.git
AWS DevOps

Inicialize o bucket do Terraform S3 e o Amazon DynamoDB.

  1. Na bootstrap pasta, abra o bootstrap.sh arquivo e atualize os valores das variáveis para o nome do bucket do S3, o nome da tabela do DynamoDB e: Região da AWS

    S3_BUCKET_NAME="<S3_BUCKET_NAME>" DYNAMODB_TABLE_NAME="<DYNAMODB_NAME>" REGION="<AWS_REGION>"
  2. Execute o script bootstrap.sh. O script requer o AWS CLI, que você instalou como parte dos pré-requisitos.

    cd bootstrap ./bootstrap.sh
AWS DevOps

Atualize run.sh os locals.tf arquivos e.

  1. Depois que o processo de bootstrap for concluído com êxito, copie o bucket do S3 e o nome da tabela do DynamoDB da seção do script: variables bootstrap.sh

    # Variables S3_BUCKET_NAME="<S3_BUCKET_NAME>" DYNAMODB_TABLE_NAME="<DYNAMODB_NAME"
  2. Cole esses valores no run.sh script, que está no diretório raiz do projeto:

    BACKEND_BUCKET_ID="<SAME_NAME_AS_S3_BUCKET_NAME>" DYNAMODB_ID="<SAME_NAME_AS_DYNAMODB_NAME>"
  3. Faça o upload do código do projeto em um CodeCommit repositório. Você pode criar automaticamente esse repositório por meio do Terraform definindo a seguinte variável true no demo/pipeline/locals.tf arquivo:

    create_new_repo = true
  4. Atualize o locals.tf arquivo de acordo com seus requisitos para criar recursos de pipeline.

AWS DevOps

Implante o módulo de pipeline.

Para criar recursos de pipeline, execute os seguintes comandos do Terraform manualmente. Não há orquestração para executar esses comandos automaticamente.

./run.sh -m pipeline -e demo -r <AWS_REGION> -t init ./run.sh -m pipeline -e demo -r <AWS_REGION> -t plan ./run.sh -m pipeline -e demo -r <AWS_REGION> -t apply
AWS DevOps

Crie pipelines para os estágios de construção, teste e implantação do Terraform

TarefaDescriçãoHabilidades necessárias

Clone o repositório do projeto.

Clone o repositório GitHub EKS Multi-Tenancy Terraform Solution executando o seguinte comando em uma janela de terminal:

git clone https://github.com/aws-samples/aws-eks-multitenancy-deployment.git
AWS DevOps

Inicialize o bucket do Terraform S3 e o Amazon DynamoDB.

  1. Na bootstrap pasta, abra o bootstrap.sh arquivo e atualize os valores das variáveis para o nome do bucket do S3, o nome da tabela do DynamoDB e: Região da AWS

    S3_BUCKET_NAME="<S3_BUCKET_NAME>" DYNAMODB_TABLE_NAME="<DYNAMODB_NAME>" REGION="<AWS_REGION>"
  2. Execute o script bootstrap.sh. O script requer o AWS CLI, que você instalou como parte dos pré-requisitos.

    cd bootstrap ./bootstrap.sh
AWS DevOps

Atualize run.sh os locals.tf arquivos e.

  1. Depois que o processo de bootstrap for concluído com êxito, copie o bucket do S3 e o nome da tabela do DynamoDB da seção do script: variables bootstrap.sh

    # Variables S3_BUCKET_NAME="<S3_BUCKET_NAME>" DYNAMODB_TABLE_NAME="<DYNAMODB_NAME"
  2. Cole esses valores no run.sh script, que está no diretório raiz do projeto:

    BACKEND_BUCKET_ID="<SAME_NAME_AS_S3_BUCKET_NAME>" DYNAMODB_ID="<SAME_NAME_AS_DYNAMODB_NAME>"
  3. Faça o upload do código do projeto em um CodeCommit repositório. Você pode criar automaticamente esse repositório por meio do Terraform definindo a seguinte variável true no demo/pipeline/locals.tf arquivo:

    create_new_repo = true
  4. Atualize o locals.tf arquivo de acordo com seus requisitos para criar recursos de pipeline.

AWS DevOps

Implante o módulo de pipeline.

Para criar recursos de pipeline, execute os seguintes comandos do Terraform manualmente. Não há orquestração para executar esses comandos automaticamente.

./run.sh -m pipeline -e demo -r <AWS_REGION> -t init ./run.sh -m pipeline -e demo -r <AWS_REGION> -t plan ./run.sh -m pipeline -e demo -r <AWS_REGION> -t apply
AWS DevOps
TarefaDescriçãoHabilidades necessárias

Iniciar o pipeline.

  1. Na templates pasta, verifique se os buildspec arquivos têm a seguinte variável definida comonetwork:

    TF_MODULE_TO_BUILD: "network"
  2. No CodePipeline console, na página de detalhes do pipeline, inicie o pipeline escolhendo Release change.

Após essa primeira execução, o pipeline é iniciado automaticamente sempre que você confirma uma alteração na ramificação principal do CodeCommit repositório.

O pipeline inclui os seguintes estágios:

  • validateinicializa o Terraform, executa as verificações de segurança do Terraform usando as ferramentas checkov e tfsec e carrega os relatórios de verificação no bucket do S3.

  • plan mostra o plano do Terraform e carrega o plano no bucket do S3.

  • applyaplica a saída do plano Terraform do bucket S3 e cria AWS recursos.

  • destroyremove os AWS recursos criados durante o apply estágio. Para ativar esse estágio opcional, defina a seguinte variável true no demo/pipeline/locals.tf arquivo:

    enable_destroy_stage = true
AWS DevOps

Valide os recursos criados por meio do módulo de rede.

Confirme se os seguintes AWS recursos foram criados após a implantação bem-sucedida do pipeline:

  • Uma VPC de saída com três sub-redes públicas e três privadas, gateway de internet e gateway NAT.

  • Uma VPC Amazon EKS com três sub-redes privadas.

  • Locatário 1 e Locatário 2 VPCs com três sub-redes privadas cada.

  • Um gateway de trânsito com todos os anexos e rotas de VPC para cada sub-rede privada.

  • Uma rota estática de gateway de trânsito para a VPC de saída do Amazon EKS com um bloco CIDR de destino de. 0.0.0.0/0 Isso é necessário para permitir que todos tenham acesso de saída VPCs à Internet por meio da VPC de saída do Amazon EKS.

AWS DevOps

Crie a infraestrutura de rede

TarefaDescriçãoHabilidades necessárias

Iniciar o pipeline.

  1. Na templates pasta, verifique se os buildspec arquivos têm a seguinte variável definida comonetwork:

    TF_MODULE_TO_BUILD: "network"
  2. No CodePipeline console, na página de detalhes do pipeline, inicie o pipeline escolhendo Release change.

Após essa primeira execução, o pipeline é iniciado automaticamente sempre que você confirma uma alteração na ramificação principal do CodeCommit repositório.

O pipeline inclui os seguintes estágios:

  • validateinicializa o Terraform, executa as verificações de segurança do Terraform usando as ferramentas checkov e tfsec e carrega os relatórios de verificação no bucket do S3.

  • plan mostra o plano do Terraform e carrega o plano no bucket do S3.

  • applyaplica a saída do plano Terraform do bucket S3 e cria AWS recursos.

  • destroyremove os AWS recursos criados durante o apply estágio. Para ativar esse estágio opcional, defina a seguinte variável true no demo/pipeline/locals.tf arquivo:

    enable_destroy_stage = true
AWS DevOps

Valide os recursos criados por meio do módulo de rede.

Confirme se os seguintes AWS recursos foram criados após a implantação bem-sucedida do pipeline:

  • Uma VPC de saída com três sub-redes públicas e três privadas, gateway de internet e gateway NAT.

  • Uma VPC Amazon EKS com três sub-redes privadas.

  • Locatário 1 e Locatário 2 VPCs com três sub-redes privadas cada.

  • Um gateway de trânsito com todos os anexos e rotas de VPC para cada sub-rede privada.

  • Uma rota estática de gateway de trânsito para a VPC de saída do Amazon EKS com um bloco CIDR de destino de. 0.0.0.0/0 Isso é necessário para permitir que todos tenham acesso de saída VPCs à Internet por meio da VPC de saída do Amazon EKS.

AWS DevOps
TarefaDescriçãoHabilidades necessárias

Atualize locals.tf para permitir o acesso do CodeBuild projeto à VPC.

Para implantar os complementos para o cluster privado do Amazon EKS, o CodeBuild projeto deve ser anexado à VPC do Amazon EKS.

  1. Na demo/pipeline pasta, abra o locals.tf arquivo e defina a vpc_enabled variável comotrue.

  2. Execute o run.sh script para aplicar as alterações no módulo de pipeline:

    demo/pipeline/locals.tf ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd init ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd plan ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd apply
AWS DevOps

Atualize os buildspec arquivos para criar o módulo computacional.

Na templates pasta, em todos os arquivos buildspec YAML, defina o valor da TF_MODULE_TO_BUILD variável de network paracompute:

TF_MODULE_TO_BUILD: "compute"
AWS DevOps

Atualize o values arquivo do gráfico Helm de gerenciamento de inquilinos.

  1. Abra o values.yaml arquivo no seguinte local:

    cd cfg-terraform/demo/compute/cfg-tenant-mgmt

    O arquivo tem a seguinte aparência:

    --- global: clusterRoles: operator: platform-tenant flux: flux-tenant-applier flux: tenantCloneBaseUrl: ${TEANT_BASE_URL} repoSecret: ${TENANT_REPO_SECRET} tenants: tenant-1: quotas: limits: cpu: 1 memory: 1Gi flux: path: overlays/tenant-1 tenant-2: quotas: limits: cpu: 1 memory: 2Gi flux: path: overlays/tenant-2
  2. Nas tenants seções global e, atualize a configuração com base em seus requisitos:

    • tenantCloneBaseUrl— Caminho para o repositório que hospeda o código para todos os locatários (usamos o mesmo repositório Git para todos os inquilinos)

    • repoSecret— Segredo do Kubernetes que contém as chaves SSH e os hosts conhecidos para autenticação no repositório Git global de locatários

    • quotas— Cotas de recursos do Kubernetes que você deseja aplicar para cada inquilino

    • flux path— Caminho para os arquivos YAML do aplicativo inquilino no repositório global de inquilinos

AWS DevOps

Valide os recursos computacionais.

Depois de atualizar os arquivos nas etapas anteriores, CodePipeline inicia automaticamente. Confirme se ele criou os seguintes AWS recursos para a infraestrutura computacional:

  • Cluster Amazon EKS com endpoint privado

  • Nós de trabalho do Amazon EKS

  • Complementos do Amazon EKS: segredos externos aws-loadbalancer-controller e metrics-server

  • GitOps módulo, gráfico Flux Helm, gráfico Cilium Helm e gráfico Helm de gerenciamento de inquilinos

AWS DevOps

Crie a infraestrutura computacional

TarefaDescriçãoHabilidades necessárias

Atualize locals.tf para permitir o acesso do CodeBuild projeto à VPC.

Para implantar os complementos para o cluster privado do Amazon EKS, o CodeBuild projeto deve ser anexado à VPC do Amazon EKS.

  1. Na demo/pipeline pasta, abra o locals.tf arquivo e defina a vpc_enabled variável comotrue.

  2. Execute o run.sh script para aplicar as alterações no módulo de pipeline:

    demo/pipeline/locals.tf ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd init ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd plan ./run.sh -m pipeline -env demo -region <AWS_REGION> -tfcmd apply
AWS DevOps

Atualize os buildspec arquivos para criar o módulo computacional.

Na templates pasta, em todos os arquivos buildspec YAML, defina o valor da TF_MODULE_TO_BUILD variável de network paracompute:

TF_MODULE_TO_BUILD: "compute"
AWS DevOps

Atualize o values arquivo do gráfico Helm de gerenciamento de inquilinos.

  1. Abra o values.yaml arquivo no seguinte local:

    cd cfg-terraform/demo/compute/cfg-tenant-mgmt

    O arquivo tem a seguinte aparência:

    --- global: clusterRoles: operator: platform-tenant flux: flux-tenant-applier flux: tenantCloneBaseUrl: ${TEANT_BASE_URL} repoSecret: ${TENANT_REPO_SECRET} tenants: tenant-1: quotas: limits: cpu: 1 memory: 1Gi flux: path: overlays/tenant-1 tenant-2: quotas: limits: cpu: 1 memory: 2Gi flux: path: overlays/tenant-2
  2. Nas tenants seções global e, atualize a configuração com base em seus requisitos:

    • tenantCloneBaseUrl— Caminho para o repositório que hospeda o código para todos os locatários (usamos o mesmo repositório Git para todos os inquilinos)

    • repoSecret— Segredo do Kubernetes que contém as chaves SSH e os hosts conhecidos para autenticação no repositório Git global de locatários

    • quotas— Cotas de recursos do Kubernetes que você deseja aplicar para cada inquilino

    • flux path— Caminho para os arquivos YAML do aplicativo inquilino no repositório global de inquilinos

AWS DevOps

Valide os recursos computacionais.

Depois de atualizar os arquivos nas etapas anteriores, CodePipeline inicia automaticamente. Confirme se ele criou os seguintes AWS recursos para a infraestrutura computacional:

  • Cluster Amazon EKS com endpoint privado

  • Nós de trabalho do Amazon EKS

  • Complementos do Amazon EKS: segredos externos aws-loadbalancer-controller e metrics-server

  • GitOps módulo, gráfico Flux Helm, gráfico Cilium Helm e gráfico Helm de gerenciamento de inquilinos

AWS DevOps
TarefaDescriçãoHabilidades necessárias

Valide os recursos de gerenciamento de inquilinos no Kubernetes.

Execute os comandos a seguir para verificar se os recursos de gerenciamento de inquilinos foram criados com êxito com a ajuda do Helm.

  1. Os namespaces do inquilino foram criados, conforme especificado em: values.yaml

    kubectl get ns -A
  2. As cotas são atribuídas a cada namespace de inquilino, conforme especificado em: values.yaml

    kubectl get quota --namespace=<tenant_namespace>
  3. Os detalhes das cotas estão corretos para cada namespace de inquilino:

    kubectl describe quota cpu-memory-resource-quota-limit -n <tenant_namespace>
  4. As políticas de rede Cilium foram aplicadas a cada namespace de inquilino:

    kubectl get CiliumNetworkPolicy -A
AWS DevOps

Verifique as implantações de aplicativos do locatário.

Execute os comandos a seguir para verificar se os aplicativos do locatário foram implantados.

  1. O Flux é capaz de se conectar ao CodeCommit repositório especificado no GitOps módulo:

    kubectl get gitrepositories -A
  2. O controlador de personalização do Flux implantou os arquivos YAML no repositório: CodeCommit

    kubectl get kustomizations -A
  3. Todos os recursos do aplicativo são implantados em seus namespaces de locatário:

    kubectl get all -n <tenant_namespace>
  4. Uma entrada foi criada para cada inquilino:

    kubectl get ingress -n <tenant_namespace>

Verifique o gerenciamento de inquilinos e outros recursos

TarefaDescriçãoHabilidades necessárias

Valide os recursos de gerenciamento de inquilinos no Kubernetes.

Execute os comandos a seguir para verificar se os recursos de gerenciamento de inquilinos foram criados com êxito com a ajuda do Helm.

  1. Os namespaces do inquilino foram criados, conforme especificado em: values.yaml

    kubectl get ns -A
  2. As cotas são atribuídas a cada namespace de inquilino, conforme especificado em: values.yaml

    kubectl get quota --namespace=<tenant_namespace>
  3. Os detalhes das cotas estão corretos para cada namespace de inquilino:

    kubectl describe quota cpu-memory-resource-quota-limit -n <tenant_namespace>
  4. As políticas de rede Cilium foram aplicadas a cada namespace de inquilino:

    kubectl get CiliumNetworkPolicy -A
AWS DevOps

Verifique as implantações de aplicativos do locatário.

Execute os comandos a seguir para verificar se os aplicativos do locatário foram implantados.

  1. O Flux é capaz de se conectar ao CodeCommit repositório especificado no GitOps módulo:

    kubectl get gitrepositories -A
  2. O controlador de personalização do Flux implantou os arquivos YAML no repositório: CodeCommit

    kubectl get kustomizations -A
  3. Todos os recursos do aplicativo são implantados em seus namespaces de locatário:

    kubectl get all -n <tenant_namespace>
  4. Uma entrada foi criada para cada inquilino:

    kubectl get ingress -n <tenant_namespace>

Solução de problemas

ProblemaSolução

Você encontra uma mensagem de erro semelhante à seguinte:

Failed to checkout and determine revision: unable to clone unknown error: You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit.

Siga estas etapas para solucionar o problema:

  1. Verifique o repositório do aplicativo inquilino: um repositório vazio ou mal configurado pode estar causando o erro. Certifique-se de que o repositório do aplicativo do locatário contenha o código necessário.

  2. Reimplante o tenant_mgmt módulo: no arquivo de configuração do tenant_mgmt módulo, localize o app bloco e defina o deploy parâmetro como: 0

    deploy = 0

    Depois de executar o apply comando do Terraform, altere o valor do deploy parâmetro de volta para1:

    deploy = 1
  3. Verifique novamente o status: depois de executar as etapas anteriores, use o comando a seguir para verificar se o problema persiste:

     kubectl get gitrepositories -A

    Se persistir, considere se aprofundar nos registros do Flux para obter mais detalhes ou consulte o guia geral de solução de problemas do Flux.

Recursos relacionados

Mais informações

Aqui está um exemplo de estrutura de repositório para implantar aplicativos de locatários:

applications sample_tenant_app ├── README.md ├── base │ ├── configmap.yaml │ ├── deployment.yaml │ ├── ingress.yaml │ ├── kustomization.yaml │ └── service.yaml └── overlays ├── tenant-1 │ ├── configmap.yaml │ ├── deployment.yaml │ └── kustomization.yaml └── tenant-2 ├── configmap.yaml └── kustomization.yaml
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.