Menu Docs

Página inicial do DocsOperador de Kubernetes do MongoDB Enterprise

Início rápido do OpenShift

Nesta página

Importante

Esta seção é somente para sistemas únicos de clusters do Kubernetes. Para sistemas de cluster multi-Kubernetes, consulte Início Rápido de Multi-Kubernetes-Cluster.

O MongoDB Enterprise Kubernetes Operator usa a API e as ferramentas do Kubernetes para gerenciar clusters MongoDB. O Kubernetes Operator trabalha em conjunto com o MongoDB Cloud Manager ou Ops Manager. Este tutorial demonstra como implantar e conectar-se ao seu primeiro conjunto de réplicas no Cloud Manager ou no Ops Manager a partir do OpenShift com o Kubernetes Operator.

Este tutorial requer:

  • Um cluster do Cloud Manager ou do Ops Manager em execução.

1
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git
2

Por padrão, o Kubernetes Operator usa o namespace mongodb. Para simplificar a instalação, considere a criação de um namespace rotulado como mongodb usando o seguinte comando kubectl:

kubectl create namespace mongodb
3

Se você ainda não tiver feito isso, execute o seguinte comando para executar todos os comandos kubectl no namespace que você criou:

kubectl config set-context $(kubectl config current-context) --namespace=mongodb
4

Se você usar o Kubernetes Operator para implantar recursos do MongoDB em vários namespaces ou com um escopo que abranja todo o cluster, crie o segredo somente no namespace em que você pretende implantar o Kubernetes Operator. O Kubernetes Operator sincroniza o secret em todos os namespaces assistidos.

  1. Se ainda não o fez, obtenha uma assinatura do Red Hat.

  2. Crie uma Conta de serviço de registro.

  3. Clique na sua conta de serviço de registro e, em seguida, clique na aba Docker Configuration.

  4. Baixe o arquivo <account-name>-auth.json e abra-o em um editor de texto.

  5. Copie o objeto registry.redhat.io e cole outra instância deste objeto no arquivo. Lembre-se de adicionar uma vírgula após o primeiro objeto. Renomeie o segundo objeto registry.connect.redhat.com e salve o arquivo:

    {
    "auths": {
    "registry.redhat.io": {
    "auth": "<encoded-string>"
    },
    "registry.connect.redhat.com": {
    "auth": "<encoded-string>"
    }
    }
    }
  6. Crie um arquivo openshift-pull-secret.yaml e adicione o conteúdo do arquivo de <account-name>-auth.json modificado como stringData .dockerconfigjson nomeado ao arquivo secreto openshift-pull-secret.yaml.

    apiVersion: v1
    kind: Secret
    metadata:
    name: openshift-pull-secret
    stringData:
    .dockerconfigjson: |
    {
    "auths": {
    "registry.redhat.io": {
    "auth": "<encoded-string>"
    },
    "registry.connect.redhat.com": {
    "auth": "<encoded-string>"
    }
    }
    }
    type: kubernetes.io/dockerconfigjson

    O valor fornecido no campo metadata.name contém o nome secreto. Forneça este valor quando solicitado para o <openshift-pull-secret>.

  7. Crie um segredo a partir do arquivo openshift-pull-secret.yaml no mesmo namespace em que você implantará o Kubernetes Operator.

    oc apply -f openshift-pull-secret.yaml -n <metadata.namespace>
5
  1. Invoque o seguinte comando oc para instalar o CustomResourceDefinitions para sistemas do MongoDB:

    oc apply -f crds.yaml
  2. Adicione seu <openshift-pull-secret> às definições do ServiceAccount no arquivo MongoDB Enterprise Kubernetes Operator YAML.

    ---
    # Source: mongodb-enterprise-operator/templates/serviceaccount.yaml
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: enterprise-operator
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: mongodb-enterprise-appdb
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: mongodb-enterprise-database-pods
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
  3. Invocar o seguinte comando oc para instalar o Kubernetes Operator:

    oc apply -f mongodb-enterprise-openshift.yaml
6

Execute o seguinte comando:

Observação

Forneça seus valores de Chave Pública e Privada para os seguintes parâmetros. Para saber mais, consulte Criar Credenciais para o Operador Kubernetes.

kubectl -n mongodb \
create secret generic ops-manager-admin-key \
--from-literal="publicKey=<publicKey>" \
--from-literal="privateKey=<privateKey>"
7
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.

Dica

Veja também:

  • Documentação do Kubernetes sobre nomes. Esse nome deve seguir as convenções de nomenclatura RFC1123, usando apenas caracteres alfanuméricos minúsculos, - ou ., e deve começar e terminar com um caractere alfanumérico.

my-project
metadata.namespace
string
Kubernetes namespace onde o Operador Kubernetes cria este recurso do MongoDB e outros objetos.
mongodb
data.projectName
string

Etiqueta do seu Projeto Ops Manager.

O Kubernetes Operator cria o projeto do Ops Manager se ele não existir. Se você omitir o projectName, o Operador Kubernetes criará um projeto com o mesmo nome que seu recurso Kubernetes.

Para usar um projeto existente em uma organização do Cloud Manager ou do Ops Manager, localize o projectName clicando no link All Clusters no canto superior esquerdo da página Cloud Manager ou Ops Manager e pesquisando por nome na caixa Search ou rolando para encontrar o nome na lista. Cada cartão nesta lista representa a combinação de um Cloud Manager ou Ops Manager Organização e Projeto.

myProjectName
data.orgId
string

Obrigatório. Strings hexadecimais de 24 caracteres que identificam exclusivamente sua organização do Cloud Manager ou do Ops Manager .

Importante

  • Você pode usar o Operador Kubernetes para implantar recursos MongoDB com o Cloud Manager e o Ops Manager versão 5.0.x ou posterior.

  • Você pode usar o Atlas Operator para implantar recursos do MongoDB no Atlas.

Especifique uma organização existente:

1

Clique em Settings na barra de navegação à esquerda.

2

Selecione sua organização, visualize a URL atual em seu navegador e copie o valor exibido no espaço reservado do <orgId> como segue:

https://ops.example.com:8443/ v2#/org/<orgId>/projects

Observação

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 orgId, o Kubernetes Operator criará uma organização com o mesmo nome que seu projeto.

5b890e0feacf0b76ff3e7183
data.baseUrl
string

URL para seu aplicativo Ops Manager, incluindo o FQDN e o número da porta.

Importante

Se você implantar o Ops Manager com o Kubernetes Operator e o Ops Manager gerenciar os recursos do banco de dados MongoDB implantados fora do cluster do Kubernetes em que foi implantado, será necessário definir data.baseUrl com o mesmo valor da configuração spec.configuration.mms.centralUrl na especificação de recursos do Ops Manager.

Observação

Se estiver usando o Cloud Manager, defina o valor data.baseUrl como https://cloud.mongodb.com.

https://ops.example.com:8443
8
  1. Copie e salve o seguinte arquivo YAML:

    apiVersion: mongodb.com/v1
    kind: MongoDB
    metadata:
    name: demo-mongodb-cluster-1
    namespace: mongodb
    spec:
    members: 3
    version: 4.4.5-ent
    type: ReplicaSet
    security:
    authentication:
    enabled: true
    modes: ["SCRAM"]
    cloudManager:
    configMapRef:
    name: my-project
    credentials: organization-secret
    persistent: true
    podSpec:
    podTemplate:
    spec:
    containers:
    - name: mongodb-enterprise-database
    resources:
    limits:
    cpu: 2
    memory: 1.5G
    requests:
    cpu: 1
    memory: 1G
    persistence:
    single:
    storage: 10Gi
  2. Execute o seguinte comando:

    kubectl apply -f <replica-set-conf>.yaml
9

Você pode optar por usar uma senha de texto simples ou uma senha codificada em Base64. As senhas de texto simples usam stringData.password e as senhas codificadas em Base64 usam data.password.

Observação

Forneça seus valores para os seguintes parâmetros. Para saber mais, consulte as descrições do parâmetro.

Para obter uma senha de texto não criptografado, crie e salve o seguinte arquivo YAML:

apiVersion: v1
kind: Secret
metadata:
name: mms-user-1-password
# corresponds to user.spec.passwordSecretKeyRef.name
type: Opaque
stringData:
password: <my-plain-text-password>
# corresponds to user.spec.passwordSecretKeyRef.key

Para obter uma senha codificada em Base64, crie e salve o seguinte arquivo YAML:

apiVersion: v1
kind: Secret
metadata:
name: mms-user-1-password
# corresponds to user.spec.passwordSecretKeyRef.name
type: Opaque
data:
password: <base-64-encoded-password>
# corresponds to user.spec.passwordSecretKeyRef.key
10
  1. Copie e salve o seguinte arquivo de Especificação de recursos do usuário do MongoDB:

    apiVersion: mongodb.com/v1
    kind: MongoDBUser
    metadata:
    name: mms-scram-user-1
    spec:
    passwordSecretKeyRef:
    name: mms-user-1-password
    # Match to metadata.name of the User Secret
    key: password
    username: "mms-scram-user-1"
    db: "admin" #
    mongodbResourceRef:
    name: "demo-mongodb-cluster-1"
    # Match to MongoDB resource using authenticaiton
    roles:
    - db: "admin"
    name: "clusterAdmin"
    - db: "admin"
    name: "userAdminAnyDatabase"
    - db: "admin"
    name: "readWrite"
    - db: "admin"
    name: "userAdminAnyDatabase"
  2. Execute o seguinte comando:

    kubectl apply -f <database-user-conf>.yaml
11

Você pode visualizar o usuário recém-criado no Cloud Manager ou Ops Manager:

  1. Na visualização Deployment do projeto, clique na guia Security.

  2. Clique no separador MongoDB Users aninhado.

12

Execute as seguintes etapas no aplicativo Cloud Manager:

  1. Clique em Deployment na navegação à esquerda.

  2. Clique em para o sistema ao qual você deseja se conectar.

  3. Clique em Connect to this instance.

  4. Execute o comando de conexão em um terminal para se conectar ao sistema.

←  Tutoriais de OpenshiftImplemente em redes restritas →