Menu Docs
Página inicial do Docs
/
Corretor de serviço aberto do Atlas

Instalar e configurar o Atlas Open Service Agent

Importante

O Atlas Open Service Corretor está obsoleto. Em vez disso, use o Operador do MongoDB Atlas.

Observação

Este tutorial pressupõe algum conhecimento do Kubernetes, mas vincula à documentação relevante do Kubernetes sempre que possível. Se você não estiver familiarizado com o Kubernetes, consulte primeiro a documentação do Kubernetes.

Para instalar o Atlas Open Service Agent, você deve:

  1. Configure um método de pagamento para o faturamento do Atlas.

  2. Crie um projeto no qual seus clusters serão implantados.

  3. Ter ou gerar uma chave de API programática.

    1. Conceda a essa nova chave de API programática a role de proprietário do projeto .

    2. Adicione o IP ou bloco CIDR de qualquer host que atenda ao Atlas Open Service Corretor na lista de permissões da API.

  1. Tenha uma solução Kubernetes disponível para uso.

    Se você precisar de uma solução Kubernetes, consulte a documentação do Kubernetes sobre como escolher a solução certa.

  2. Instale o Catálogo de Serviços Kubernetes.

  3. Instale a CLI do Catálogo de Serviços Kubernetes.

O Atlas Open Service Corretor é compatível com:

  • Kubernetes v1.13 ou posterior

  • Kubernetes Service Catalog v0.2.1 ou mais tarde

Ao criar uma instância do Atlas Open Service Agent, você a registra no Kubernetes como um clusterServiceBroker com escopo de cluster ou um serviceBroker com escopo de namespace.

Para obter mais informações sobre os casos de uso de corretors com escopo de cluster e namespace, consulte a documentação do Catálogo de serviços do Kubernetes.

Uma instância do Atlas Open Service Agent registrada como ClusterServiceBroker está disponível para todo o cluster Kubernetes. Ao implantar um conjunto de réplicas ou um cluster fragmentado do Atlas, você deve utilizar os recursos clusterServiceClass e clusterServicePlan associados.

Uma instância do Atlas Open Service Agent registrada como ServiceBroker está disponível apenas para um único namespace dentro do cluster Kubernetes. Ao implantar um conjunto de réplicas ou cluster fragmentado do Atlas, você deve utilizar os recursos do serviceClass e servicePlan com escopo para o mesmo namespace.

Ao criar uma instância do Atlas Open Service Corretor, você pode implantar:

  • Uma única instância do Atlas Open Service Agent com escopo para todo o cluster Kubernetes ou

  • Várias instâncias do Atlas Open Service Agent com escopo para seus próprios namespaces dentro do cluster Kubernetes

    Importante

    Se você optar por implantar várias instâncias do Atlas Open Service Corretor, implemente apenas uma instância por namespace . Várias instâncias do Atlas Open Service Corretor não podem coordenar umas com as outras dentro do mesmo namespace.

Para implantar o Atlas Open Service Corretor no Kubernetes, utilize o seguinte procedimento.

1

Para simplificar a instalação, considere a criação de um namespace rotulado como atlas usando o seguinte comando kubectl:

kubectl create namespace atlas

Se não quiser usar o namespace atlas , você pode rotular seu namespace como quiser:

kubectl create namespace <NAMESPACE_NAME>
2
  1. Copie o seguinte exemplo de definição de recurso.

    Este é um arquivo YAML que você pode modificar para atender à configuração desejada. Inclui as especificações Deployment e Service .

    Observação

    O exemplo utiliza atlas-service-broker como o nome do sistema, nome do serviço e etiqueta do pod. Você pode atualizar esses campos com outros valores, desde que seja consistente entre os recursos.

    ---
    # Deployment to run the service broker.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: atlas-service-broker
    labels:
    app: atlas-service-broker
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: atlas-service-broker
    template:
    metadata:
    labels:
    app: atlas-service-broker
    spec:
    containers:
    - name: atlas-service-broker
    image: quay.io/mongodb/mongodb-atlas-service-broker:latest
    ports:
    - containerPort: 4000
    env:
    - name: BROKER_HOST
    value: "0.0.0.0"
    ---
    # Service to expose the service broker inside the cluster.
    apiVersion: v1
    kind: Service
    metadata:
    name: atlas-service-broker
    labels:
    app: atlas-service-broker
    spec:
    selector:
    # Will match pods deployed by the "atlas-service-broker" deployment.
    app: atlas-service-broker
    ports:
    - protocol: TCP
    port: 80
    targetPort: 4000
  2. Abra seu editor de texto preferido e cole a definição do recurso em um novo arquivo de texto.

  3. Confirme ou edite a porta do container na qual o servidor Atlas Open Service Agent escuta.

    Resource
    Variável de ambiente
    Descrição
    Default

    Deployment

    spec.template.spec
    .containers.ports.containerPort

    A porta na qual o servidor Atlas Open Service Agent escuta.

    Deve corresponder ao valor de targetPort no recurso Service .

    4000

    Service

    spec.ports.targetPort

    A porta na qual o servidor Atlas Open Service Agent escuta.

    Deve corresponder ao valor de containerPort no recurso Deployment .

    4000

  4. Salve o arquivo como deployment-and-service.yaml.

3

Use o seguinte comando kubectl:

kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
4

Para que o Atlas Open Service Corretor crie ou atualize objetos em seu Projeto Atlas, você precisa armazenar sua Chave de API programática e ID do Projeto como um segredo do Kubernetes.

Vários segredos podem existir no mesmo namespace.

Para criar seu segredo do Kubernetes:

  1. Verifique se você tem o seguinte:

    • Chaves pública e privada para a chave de API programática do Atlas desejada.

      Se você não tiver uma chave de API programática, gere uma nova chave de API programática.

    • A ID do projeto do seu projeto Atlas.

  2. Copie o seguinte exemplo de definição de recurso.

    Este é um YAML que você pode modificar para atender à configuração desejada.

    apiVersion: v1
    kind: Secret
    metadata:
    name: <SECRET_NAME>
    type: Opaque
    stringData:
    username: <PUBLIC_KEY>@<PROJECT_ID>
    password: <PRIVATE_KEY>
  3. Edite os seguintes campos:

    Nome do campo
    Descrição

    stringData.username

    Sua Chave Pública do Atlas seguida por @ e seu ID do projeto.

    stringData.password

    Sua chave privada Atlas.

    O username e o password são usados para autenticação Básica no Atlas Open Service Corretor.

    Exemplo

    apiVersion: v1
    kind: Secret
    metadata:
    name: atlas-service-broker-auth
    type: Opaque
    stringData:
    username: ABCAXNVY@5d49a272ce4bd97b2e1234abc
    password: 123e8d75-cxfb-x012-bx5c-abc4356e3xyz
  4. Salve o arquivo como secret.yaml.

  5. Invoque o seguinte comando do Kubernetes para criar seu segredo:

    kubectl apply -f secret.yaml -n <NAMESPACE>

    O sinalizador -n limita o namespace ao qual esse segredo se aplica.

  6. Invoque o seguinte comando do Kubernetes para verificar seu segredo:

    kubectl describe secrets/<SECRET_NAME> -n <NAMESPACE>

    Este comando retorna uma descrição secreta na shell:

    Name: <SECRET_NAME>
    Namespace: <NAMESPACE>
    Labels: <none>
    Annotations:
    Type: Opaque
    Data
    ====
    password: 36 bytes
    username: 36 bytes
5
  1. Copie o seguinte exemplo de definição de recurso.

    Este é um arquivo YAML que você pode modificar para atender à configuração desejada.

    apiVersion: servicecatalog.k8s.io/v1beta1
    kind: <SERVICE_BROKER_SCOPE>
    metadata:
    name: atlas-service-broker
    spec:
    url: http://<SERVICE_NAME>.<NAMESPACE>
    authInfo:
    basic:
    secretRef:
    name: <SECRET_NAME>
    namespace: <NAMESPACE>
  2. Edite os seguintes campos:

    Nome do campo
    Descrição

    kind

    Este valor determina se o Atlas Open Service Corretor está disponível para todo o cluster Kubernetes ou apenas para um único namespace dentro do cluster Kubernetes. Para obter mais informações sobre os recursos do agente de serviços, consulte a documentação do Catálogo de serviços.

    Os valores possíveis são:

    ServiceBroker

    Implanta o Atlas Open Service Agent com escopo para apenas um único namespace. Quaisquer cluster do Atlas devem ser provisionados no mesmo namespace que o Atlas Open Service Agent.

    ClusterServiceBroker

    Implanta o Atlas Open Service Agent com escopo em um cluster Kubernetes inteiro. Cluster do Atlas podem ser provisionados em qualquer namespace.

    spec.url

    A URL do intermediário no formato http://<SERVICE_NAME>.<NAMESPACE>.

    <SERVICE_NAME> é o valor de metadata.name no seu recurso Service .

    Exemplo

    http://atlas-service-broker.atlas
    spec.authInfo
    .basic.secretRef.name

    O nome do segredo do Kubernetes que você criou na etapa anterior.

    spec.authInfo
    .basic.secretRef.namespace

    Seu namespace.

  3. Salve o arquivo como service-broker.yaml.

6

Use o seguinte comando kubectl:

kubectl apply -f service-broker.yaml -n <NAMESPACE>
7
svcat get brokers -n <NAMESPACE>

O comando retorna o status do intermediário. Se o status do intermediário não aparecer, aguarde alguns momentos e invoque o comando novamente.

Exemplo

O exemplo a seguir mostra o status de um agente que foi definido como ClusterServiceBroker. Como esse agente é implantado no nível do cluster, não há namespace.

NAME NAMESPACE URL STATUS
+----------------------+-----------+-----------------------------------+--------+
atlas-service-broker http://atlas-service-broker.atlas Ready

Se o seu agente tiver um status diferente de Ready, passe o metadata.name de service-broker.yaml para o seguinte comando para visualizar uma mensagem de erro detalhada:

svcat describe broker <METADATA.NAME> -n <NAMESPACE>

Após instalar o Atlas Open Service Corretor, você pode:

  • Defina uma lista de permissões de provedores de serviços de cloud permitidos e tamanhos de instâncias.

  • Implemente um conjunto de réplicas ou cluster fragmentado.

  • Criar trigger de reconhecimento de data center.