O recurso personalizado do AtlasNetworkContainer
define umcontainer de rede do para um projeto Atlas. Você cria conexões de peering deVPC entre os containers de rede e as redes que hospedam seus aplicativos.
Importante
Os Recursos Personalizados Não Excluem Mais Objetos por Padrão
O Atlas Kubernetes Operator utiliza arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator,2.0 os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um
AtlasProject
Recurso Personalizado no Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes Operator.,2 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.
Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado
READY
. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizadoAtlasDeployment
, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
O Atlas Kubernetes Operator realiza uma das seguintes ações usando o recurso da API de emparelhamento de rede do Atlas :
Cria um novo container de rede.
Atualiza um container de rede existente.
Exemplos
Os exemplos a seguir ilustram configurações para CRDs do AtlasNetworkContainer
.
A configuração básica de exemplo define um recurso que você gerencia com a mesma instância do Atlas Kubernetes Operator com a qual você gerencia seu projeto pai do Atlas .
O exemplo de CRD independente configura o mesmo container de rede que o exemplo básico, mas para um projeto do Atlas que você gerencia fora da instância do Atlas Kubernetes Operator com a qual você gerencia o container de rede.
Exemplo básico
O seguinte mostra um recurso personalizado do AtlasNetworkContainer
para um contêiner denominado my-atlas-nc
que permite criar uma conexão de emparelhamento de VPC entre Atlas e Amazon Web Services dentro do projeto my-project
. Para gerenciar esse recurso na mesma instância do Atlas Kubernetes Operator que seu projeto Atlas pai, você deve identificar o projeto com projectRef
em vez de externalProjectRef
.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Exemplo de CRD independente
O exemplo a seguir mostra um AtlasNetworkContainer
CRD independente que habilita o emparelhamento de VPC sob os mesmos parâmetros habilitados pelo exemplo básico. Para habilitar a operação independente, você deve usar um externalProjectRef
em vez de um projectRef
e deve fornecer um connectionSecret
diretamente, pois esse recurso não pode herdar credenciais de API de seu projeto pai.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Parâmetros
Esta seção descreve os parâmetros do AtlasNetworkContainer
disponíveis nesta definição de recurso personalizada.
metadata.name
Tipo: string
Obrigatório
Nome que o
AtlasNetworkContainer
Recurso Personalizado utiliza para adicionar este contêiner de rede a um projeto.
metadata.namespace
Tipo: string
Opcional
Namespace diferente do
default
que você deseja que contenha o recurso personalizado doAtlasNetworkContainer
.
spec.connectionSecret.name
Tipo: string
Condicional
Nome do segredo opaco segredo que contém o ID da organização e chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Se não for especificado, o Atlas Kubernetes Operator padronizará para uma das seguintes opções:
O parâmetro
spec.connectionSecretRef.name
doatlasProject
paiO segredo
global
padrão, se você não tiver definido ospec.connectionSecretRef.name
para oatlasProject
pai
Esse parâmetro é necessário para CRDs independentes.
O Atlas Kubernetes
atlas.mongodb.com/type=credentials
Operator observa segredos apenas com a etiqueta para evitar a exibição de segredos desnecessários.O exemplo a seguir rotula um segredo:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.id
Tipo: string
Condicional
ID do projeto ao qual pertence o container de rede. Você deve especificar o ID do projeto de um Atlas Project existente. Você deve especificar este parâmetro para containers de rede que pertencem a projetos gerenciados por:
Uma instância diferente do Atlas Kubernetes Operator
Ferramentas diferentes do Atlas Kubernetes Operator
Para implantações que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator, utilize o
spec.projectRef.name
. Esses parâmetros são mutuamente exclusivos entre si.
spec.projectRef.name
Tipo: string
Condicional
Nome do projeto ao qual pertence o container de rede. Você deve especificar um
AtlasProject
Recurso Personalizado existente. Este parâmetro se aplica somente a containers de rede que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator.Para containers de rede que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
usar
spec.externalProjectRef.id
. Esses parâmetros são mutuamente exclusivos entre si.
spec.projectRef.namespace
Tipo: string
Condicional
Namespace no qual o
AtlasProject
Recurso Personalizado especificadospec.projectRef.name
no existe.Não defina este parâmetro para implantações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
spec.provider
Tipo: string
Obrigatório
Fornecedor de nuvem com o qual oferecer suporte a uma conexão de emparelhamento VPC. Deve ser um dos seguintes:
AWS
Azure
GCP