Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Modifique os contêineres de recursos do Ops Manager ou do MongoDB Kubernetes

You can modify the containers in the Pods in which Ops Manager and MongoDB database resources run using the template or podTemplate setting that applies to your deployment:

Para revisar quais campos você pode adicionar a um template ou podTemplate, consulte a documentação do Kubernetes.

Quando você cria containers com um template ou podTemplate, o Kubernetes Operator lida com a criação de containers de forma diferente com base no name que você fornece para cada container na array containers :

  • If the name field matches the name of the applicable resource image, the Kubernetes Operator updates the Ops Manager or MongoDB database container in the Pod to which the template or podTemplate applies:

    • Ops Manager: mongodb-kubernetes-ops-manager

    • Backup Daemon Service: mongodb-backup-daemon

    • MongoDB database: mongodb-enterprise-database

    • banco de dados de aplicativo: mongodb-kubernetes-appdb

  • If the name field does not match the name of the applicable resource image, the Kubernetes Operator creates a new container in each Pod to which the template or podTemplate applies.

On-disk files in containers in Pods don't survive container crashes or restarts. Using the spec.podSpec.podTemplate setting, you can add a volume mount to persist data in a MongoDB database resource for the life of the Pod.

Para criar uma montagem de volume para um recurso de reconhecimento de data center MongoDB:

  1. Atualize a definição do recurso do MongoDB database para incluir uma montagem de volume para container nos pods de reconhecimento de data center que o Kubernetes Operator cria.

    Exemplo

    Use spec.podSpec.podTemplate para definir uma montagem de volume:

    podSpec:
    podTemplate:
    spec:
    containers:
    - name: mongodb-enterprise-database
    volumeMounts:
    - mountPath: </new/mount/path>
    name: survives-restart
    volumes:
    - name: survives-restart
    emptyDir: {}
  2. Aplique a definição de recurso atualizada:

    kubectl apply -f <database-resource-conf>.yaml -n <metadata.namespace>

MongoDB As imagens do Docker de recursos são executadas no RHEL e usam a configuração de sistema padrão do RHEL. Para ajustar a configuração do sistema RHEL subjacente nos MongoDB contêineres de recursos do , adicione um contêiner de entrada privilegiado do InitContainer usando uma das seguintes configurações:

Exemplo

As imagens do Docker do recurso do MongoDB database usam o tempo padrão do RHEL keepalive de 7200. O MongoDB recomenda um tempo mais curto de keepalive 120 para comando de banco de dados.

Você pode ajustar o tempo de keepalive nas imagens do Docker do recurso de reconhecimento de data center se tiver tempos limite de rede ou erros de soquete na comunicação entre clientes e os recursos de reconhecimento de data center.

Para ajustar imagens Docker para um container de recurso de MongoDB database:

  1. Atualize a definição de recurso do MongoDB database para anexar um InitContailer privilegiado aos pods de reconhecimento de data center que o Kubernetes Operator cria.

    Exemplo

    Altere spec.podSpec.podTemplate o valor keepalive para o valor recomendado de 120:

    spec:
    podSpec:
    podTemplate:
    spec:
    initContainers:
    - name: "adjust-tcp-keepalive"
    image: "busybox:latest"
    securityContext:
    privileged: true
    command: ["sysctl", "-w", "net.ipv4.tcp_keepalive_time=120"]
  2. Aplique a definição de recurso atualizada:

    kubectl apply -f <database-resource-conf>.yaml -n <metadata.namespace>

O Kubernetes adiciona um InitContainer privilegiado a cada Pod que o Operador Kubernetes cria utilizando a MongoDB definição de recurso do.

Abra uma sessão de shell para um contêiner em execução no pod do recurso do banco de dados e verifique suas alterações.

Exemplo

Para seguir o exemplo keepalive anterior, invoque o seguinte comando para obter o valor keepalive atual:

> kubectl exec -n <metadata.namespace> -it <pod-name> -- cat /proc/sys/net/ipv4/tcp_keepalive_time
> 120

Dica

Configuração do sistema operacional no Manual do MongoDB.

Você pode modificar os modelos do MongoDB Dockerfile para criar imagens personalizadas do Kubernetes Operator adequadas ao seu caso de uso. Para construir uma imagem personalizada, você precisa de:

  • Seu Dockerfile personalizado, modificado a partir de um modelo do MongoDB.

  • A imagem de contexto fornecida pelo MongoDB para o seu modelo.

Os Dockerfiles usados para construir imagens de container estão disponíveis publicamente no repositório MongoDB Kubernetes Github.

O diretório Dockerfile é organizado por nome do recurso, versão e distribuição:

├── <resource name>
│ └── <image version>
│ └── <base distribution>
│ └── Dockerfile template

Copie o modelo que você deseja usar para seu próprio Dockerfile e modifique conforme desejado.

Para construir uma imagem a partir de qualquer modelo MongoDB Dockerfile, você deve fornecer sua imagem de contexto.

Each Dockerfile template has one associated context image, retrievable from the same Quay registry as the original images. Context image are always tagged in the format quay.io/mongodb/<resource-name>:<image-version>-context.

Para fornecer uma imagem de contexto para docker build, inclua a opção --build-arg com a variável imagebase definida para uma marcação Quay.io, em que <resource-name> e <image-version> correspondem ao seu modelo Dockerfile.

Exemplo

Se você deseja construir a imagem do mongodb-enterprise-database versão 2.0.0 para qualquer distribuição, inclua:

--build-arg imagebase=quay.io/mongodb/mongodb-kubernetes-database:2.0.0-context

A distribuição Ubuntu para mongodb-kubernetes-operator versão 1.9.1 é baseada em ubuntu:1604 por padrão. Neste exemplo, esse modelo Dockerfile base é modificado para usar ubuntu:1804 e salvo como myDockerfile.

O comando a seguir cria a imagem personalizada e fornece a ela a marcação 1.9.1-ubuntu-1804:

cat myDockerfile | docker build --build-arg imagebase=quay.io/mongodb/mongodb-kubernetes-operator:1.9.1-context \
--tag mongodb-kubernetes-operator:1.9.1-ubuntu-1804 -

Observação

Inclua um hífen ( - ) no final de docker build para ler a saída de cat myDockerfile em vez de fornecer um diretório local como contexto de construção.

Dica

Para saber mais sobre docker build, consulte a documentação do Docker.