Criar um projeto por sistema do MongoDB usando um ConfigMap
Nesta página
O MongoDB Enterprise Kubernetes Operator usa um Kubernetes ConfigMap para vincular a um único e exclusivo projeto do Ops Manager. Se o projeto referenciado não existir, o Operador Kubernetes criará de acordo com o projectName
que você fornece no ConfigMap.
Para criar um Kubernetes Operator ConfigMap, você pode editar algumas linhas do exemplo ConfigMap arquivoYAML e aplicar o ConfigMap. Para ver um exemplo completo, acesse project.yaml arquivo.
Como alternativa, você pode usar a MongoDB Cloud Manager interface do usuário do ou a MongoDB Ops Manager interface do usuário do para criar ou escolher um projeto e gerar automaticamente o arquivo YAML do ConfigMap, que você pode aplicar ao seu Kubernetes ambiente .
Considerações
Você pode distribuir apenas um recurso MongoDB por projeto. Esse limite se aplica porque o MongoDB Ops Manager permite apenas um método de autenticação para acesso de usuário de banco de dados de dados por projeto. Para saber mais, consulte Implantar um Recurso de Banco de Dados MongoDB .
Você deve emparelhar um sistema do MongoDB Enterprise Kubernetes Operator com um exclusivo MongoDB Ops Manager Project. Você pode criar um ConfigMap distinto para cada instância do MongoDB Enterprise Kubernetes Operator que você implantar, ou você pode reutilizar o mesmo ConfigMap para qualquer número de sistemas omitindo o
data.projectName
do seu ConfigMap, para que os nomes do projeto se alinham com os nomes dos recursos implementados. Quando um nome de projeto for fornecido no mapa de configuração, se esse projeto ainda não existir, ele será criado.
Importante
Você pode usar o Operador Kubernetes para implantar recursos do MongoDB com o Cloud Manager e o Ops Manager versão 6.0.x ou posterior.
Você pode usar o Atlas Operator para implantar recursos do MongoDB no Atlas.
Pré-requisitos
Kubernetes versão 1.11 ou posterior ou OpenShift versão 3.11 ou posterior.
MongoDB Enterprise Kubernetes Operator versão 0.11 ou posterior instalado.
Criar um projeto usando um ConfigMap
Configure kubectl
como padrão para seu namespace.
Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl
no namespace que você criou.
Observação
Se você estiver implantando um recurso MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes:
Defina
context
como o nome do cluster central, como:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"
.Defina
--namespace
para o mesmo escopo usado para sua implantação do MongoDB de vários clusters Kubernetes, como:kubectl config --namespace "mongodb"
.
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
Invoke the following command to create a ConfigMap.
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
metadata.name | string | Nome do objeto do Kubernetes. Os nomes de recursos devem ter 44 caracteres ou menos. Esse nome deve seguir as convenções de nomenclatura RFC , contendo apenas caracteres alfanuméricos minúsculos ou1123 Para saber mais, consulte a documentação do Kubernetes sobre nomes. | my-project |
metadata.namespace | string | mongodb | |
data.projectName | string | Etiqueta do seu Projeto Ops Manager. O Kubernetes Operator cria o projeto do MongoDB Ops Manager se ele não existir. Se você omitir o Para usar um projeto existente em uma organização do Cloud Manager ou do Ops Manager, localize o | myProjectName |
data.orgId | string | Obrigatório. string hexadecimais de 24 caracteres que identificam exclusivamente sua organização Cloud Manager ou do MongoDB Ops Manager . Você pode usar o Operador Kubernetes para implantar recursos do MongoDB com o Cloud Manager e o Ops Manager versão 6.0.x ou posterior. Você pode usar o Atlas Operator para implantar recursos do MongoDB no Atlas. Especifique uma organização existente:
Você deve ter a função Organization Project Creator para criar um novo projeto em uma organização existente do Cloud Manager ou do Ops Manager. Se você fornecer uma string vazia como seu | 5b890e0feacf0b76ff3e7183 |
data.baseUrl | string | URL para seu aplicativo Ops Manager, incluindo o FQDN e o número da porta. IMPORTANTE: se você implantar o MongoDB Ops Manager com o Kubernetes Operator e o MongoDB Ops Manager gerenciar os recursos do banco de dados de dados do MongoDB fora do cluster do Kubernetes para o qual ele será distribuído, defina Se estiver usando o Cloud Manager, defina o valor | https://ops.example.com:8443 |
Invoque o seguinte comando do Kubernetes para verificar seu ConfigMap.
kubectl describe configmaps <configmap-name>
Este comando retorna uma descrição do ConfigMap no shell:
Name: <configmap-name> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== baseUrl: ---- <myOpsManagerURL> Events: <none>
Conecte-se ao Ops Manager habilitado para HTTPS usando uma CA personalizada
Você pode ter optado por usar seu próprio certificado TLS para habilitar o HTTPS para sua instância do Ops Manager. Se você usou um certificado personalizado, precisará adicionar a CA que assinou esse certificado personalizado ao Kubernetes Operator. Para adicionar sua CA personalizada, faça o seguinte:
Crie um ConfigMap para o certificado de autoridade de certificação (CA).
O Kubernetes Operator requer o certificado CA raiz do CA que emitiu o certificado do host do MongoDB Ops Manager . Execute o seguinte comando para criar um ConfigMap contendo a CA raiz no mesmo namespace dos pods do seu banco de dados:
kubectl -n <metadata.namespace> create configmap <root-ca-configmap-name> \ --from-file=mms-ca.crt
Importante
O Operador Kubernetes exige que você nomeie o certificado do recurso do Ops Manager mms-ca.crt
no ConfigMap.
Copie a seção destacada do seguinte exemplo ConfigMap
.
1 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: <my-configmap> 6 namespace: <my-namespace> 7 data: 8 projectName: <my-ops-manager-project-name> # this is an optional parameter 9 orgId: <org-id> # this is a required parameter 10 baseUrl: https://<my-ops-manager-URL>
11 sslMMSCAConfigMap: <root-ca-configmap-name> 12 sslRequireValidMMSServerCertificates: ‘true’ 13 ...
Adicione a seção destacada ao ConfigMap do seu projeto.
Invoque o seguinte comando para editar o ConfigMap do seu projeto no editor configurado padrão:
kubectl edit configmaps <my-configmap> -n <metadata.namespace> Cole a seção destacada no exemplo ConfigMap no final do projeto ConfigMap.
Especificar as configurações de TLS
Altere as seguintes chaves TLS :
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
sslMMSCAConfigMap | string | Nome do ConfigMap criado na primeira etapa contendo o certificado CA raiz usado para assinar o MongoDB Ops Manager certificado do host do . Isso monta o certificado da CA para o Kubernetes Operator e os recursos do banco de dados. | my-root-ca |
sslRequireValidMMSServerCertificates | booleano | Força o operador a exigir um certificado TLS válido do MongoDB Ops Manager. IMPORTANTE: o valor deve estar entre aspas simples ou o operador lançará um erro. | 'true' |
Invoque o comando Kubernetes para verificar seu ConfigMap.
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
Importante
Sempre inclua a opção de namespace com kubectl
. kubectl O padrão é um namespace vazio se você não especificar a -n
opção , resultando em falhas no sistema. Você deve especificar o valor do campo <metadata.namespace>
. O Operador Kubernetes, segredo, e os MongoDB
recursos devem ser executados no mesmo namespace exclusivo.
Este comando retorna uma descrição do ConfigMap no shell:
Name: <my-configmap> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== sslMMSCAConfigMap: ---- <root-ca-configmap-name> sslRequireValidMMSServerCertificates: ---- true Events: <none>
Próximos passos
Agora que você criou seu ConfigMap, crie Credenciais para o Kubernetes Operator antes de começar a implantar recursos do MongoDB.