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.
Pré-requisitos
Pré-requisitos do Atlas
Para instalar o Atlas Open Service Agent, você deve:
Configure um método de pagamento para o faturamento do Atlas.
Crie um projeto no qual seus clusters serão implantados.
Ter ou gerar uma chave de API programática.
Conceda a essa nova chave de API programática a role de proprietário do projeto .
Adicione o IP ou bloco CIDR de qualquer host que atenda ao Atlas Open Service Corretor na lista de permissões da API.
Pré-requisitos do Kubernetes
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.
Instale o Catálogo de Serviços Kubernetes.
Instale a CLI do Catálogo de Serviços Kubernetes.
Considerações
Compatibilidade com o Kubernetes
O Atlas Open Service Corretor é compatível com:
Kubernetes v1.13 ou posterior
Kubernetes Service Catalog v0.2.1 ou mais tarde
Escopo do Atlas Open Service Corretor
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.
ClusterServiceBroker
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.
ServiceBroker
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.
Várias instâncias abertas do Atlas Service Corretor
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.
Instalar o Atlas Open Service Corretor
Para implantar o Atlas Open Service Corretor no Kubernetes, utilize o seguinte procedimento.
Crie um namespace para seu sistema do Kubernetes.
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>
Crie a definição de recurso Deployment e Service.
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
DeploymenteService.Observação
O exemplo utiliza
atlas-service-brokercomo 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 Abra seu editor de texto preferido e cole a definição do recurso em um novo arquivo de texto.
Confirme ou edite a porta do container na qual o servidor Atlas Open Service Agent escuta.
ResourceVariável de ambienteDescriçãoDefaultDeploymentspec.template.spec.containers.ports.containerPortA porta na qual o servidor Atlas Open Service Agent escuta.
Deve corresponder ao valor de
targetPortno recursoService.4000Servicespec.ports.targetPortA porta na qual o servidor Atlas Open Service Agent escuta.
Deve corresponder ao valor de
containerPortno recursoDeployment.4000Salve o arquivo como
deployment-and-service.yaml.
Instale o Atlas Open Service Corretor.
Use o seguinte comando kubectl:
kubectl apply -f deployment-and-service.yaml -n <NAMESPACE>
Crie um segredo Kubernetes.
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:
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.
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> Edite os seguintes campos:
Nome do campoDescriçãostringData.usernameSua Chave Pública do Atlas seguida por
@e seu ID do projeto.stringData.passwordSua chave privada Atlas.
O
usernamee opasswordsã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 Salve o arquivo como
secret.yaml.Invoque o seguinte comando do Kubernetes para criar seu segredo:
kubectl apply -f secret.yaml -n <NAMESPACE> O sinalizador
-nlimita o namespace ao qual esse segredo se aplica.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
Crie uma definição de recurso do agente de serviços.
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> Edite os seguintes campos:
Nome do campoDescriçãokindEste 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:
ServiceBrokerImplanta 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.
ClusterServiceBrokerImplanta o Atlas Open Service Agent com escopo em um cluster Kubernetes inteiro. Cluster do Atlas podem ser provisionados em qualquer namespace.
spec.urlA URL do intermediário no formato
http://<SERVICE_NAME>.<NAMESPACE>.<SERVICE_NAME>é o valor demetadata.nameno seu recursoService.Exemplo
http://atlas-service-broker.atlas spec.authInfo.basic.secretRef.nameO nome do segredo do Kubernetes que você criou na etapa anterior.
spec.authInfo.basic.secretRef.namespaceSeu namespace.
Salve o arquivo como
service-broker.yaml.
Registre o Atlas Open Service Corretor com o Catálogo de Serviços
Use o seguinte comando kubectl:
kubectl apply -f service-broker.yaml -n <NAMESPACE>
Verifique o status do Atlas Open Service Corretor com o Catálogo de Serviços CLI.
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>
Próximos passos
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.