Observação
This tutorial presumes some knowledge of Kubernetes. If you are unfamiliar with Kubernetes, review the Kubernetes documentation on Kubernetes objects and custom resources before you begin. The Kubernetes Operator represents Ops Manager and MongoDB deployments as custom resources. You create and manage them with kubectl in the same way that you manage any other Kubernetes object. To learn how these custom resources relate to each other, see MongoDB Controllers for Kubernetes Operator Architecture Overview.
Pré-requisitos
Conclua os seguintes pré-requisitos antes de instalar o Kubernetes Operator:
Tenha uma solução Kubernetes disponível para uso e verifique o suporte à arquitetura de hardware.
Se você precisar de uma solução Kubernetes, consulte a documentação do Kubernetes sobre como escolher a solução certa. Revise as arquiteturas de hardware suportadas.
Clone o repositório do Operador MongoDB Controladores para Kubernetes.
git clone https://github.com/mongodb/mongodb-kubernetes.git
Observação
Você pode usar o Helm para instalar o Operador Kubernetes. Para saber como instalar o Helm, consulte sua documentação no Github.
Crie um namespace para sua implantação do Kubernetes.
Por padrão, o Kubernetes Operator usa o namespace mongodb. Para simplificar a instalação, recomendamos criar um namespace com etiqueta mongodb utilizando o seguinte comando kubectl:
kubectl create namespace mongodb
Se não quiser usar o namespace mongodb , você pode rotular seu namespace como quiser:
kubectl create namespace <namespaceName>
Opcional: tenha um Ops Manager em execução.
Se você não implantar um recurso do Ops Manager com o Kubernetes Operator, deverá ter um Ops Manager em execução fora do cluster do Kubernetes. Se você implantar um recurso do Ops Manager no Kubernetes com o Kubernetes Operator, ignore este pré-requisito.
Importante
Sua instalação do Ops Manager deve executar um serviço NTP ativo. Se o relógio do host do Ops Manager estiver fora de sincronia, esse host não poderá se comunicar com o Kubernetes Operator.
Para saber como verificar o serviço NTP do host do Ops Manager, consulte a documentação do RHEL.
Considerações
Revise os seguintes tópicos de planejamento. Para aprender mais, consulte Planeje a Instalação do operador Kubernetes.
Decida se deseja instalar em um único cluster Kubernetes ou em vários cluster Kubernetes. Consulte Escolha o modo de instalação de cluster único ou múltiplos clusters.
Confirm that your versions of Kubernetes, OpenShift, MongoDB, and Ops Manager are compatible. See MongoDB Controllers for Kubernetes Operator Compatibility.
Defina o escopo da implantação do operador Kubernetes, que determina os namespaces que o operador Kubernetes observa. Consulte Definir escopo para controladoras do MongoDB para implantação do operador Kubernetes.
Aplique as recomendações de produção para armazenamento, persistência e limites de CPU e memória. See melhores práticas.
Instalar com Kubernetes
O procedimento de instalação varia de acordo com a forma como você deseja configurar seu ambiente:
Observação
Use o mesmo namespace em todo o
By default, the Kubernetes Operator deploys all resources in your Kubernetes cluster to the namespace mongodb. You can deploy Kubernetes Operator resources to a different namespace by editing all values for metadata.namespace in mongodb-kubernetes.yaml. You must also update the subjects[0].namespace value in every RoleBinding and ClusterRoleBinding in the same file. If you omit this value, the bindings look for the ServiceAccount in the default mongodb namespace and can't find it:
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mongodb-kubernetes-operator namespace: production roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operator subjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
Opcional: personalize o Kubernetes Operator YAML antes de instalá-lo.
Para saber mais sobre as configurações de instalação opcionais do Kubernetes Operator, consulte Kubernetes Operator e configurações de instalação do oc.
Observação
Para habilitar a visualização pública de contêineres estáticos, que melhoram e simplificam a segurança, consulte Contêineres estáticos (visualização pública). Não recomendamos usar esse recurso em produção enquanto ele estiver em visualização pública. Para saber mais, consulte Visualizar recursos.
Use os Charts Helm do MongoDB para Kubernetes.
Adicione os Charts do MongoDB Helm para Kubernetes.
Você pode adicionar o Gráfico Helm do Operador Kubernetes localmente executando:
helm repo add mongodb https://mongodb.github.io/helm-charts
Personalize seu Gráfico Helm antes de implementá-lo.
Para saber mais sobre as configurações de instalação opcionais do Kubernetes Operator, consulte Configurações de instalação do Operator Helm.
Implemente o Operador Kubernetes.
Execute o seguinte comando helm para distribuir o Operador Kubernetes para o namespace padrão no seu cluster Kubernetes:
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
Você pode passar os sinalizadores --namespace e --create-namespace para distribuir o operador Kubernetes em um namespace não padrão, da seguinte forma:
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
Instalar uma compilação diária específica com o Helm
O MongoDB reconstrói imagens do Kubernetes Operator todos os dias para integrar as atualizações mais recentes de segurança e sistema operacional.
Por padrão, o helm instala a compilação mais recente para a versão do Operador Kubernetes que você especifica.
Para instalar uma compilação anterior, especifique o ID de compilação como um parâmetro com --set build=<build-id>. Os ID de compilação estão sempre no formato -b<YYYYMMDD>T000000Z, onde <YYYYMMDD> é a data em que a compilação que você deseja usar foi criada.
Exemplo
Este exemplo mostra como instalar o Operador Kubernetes com a imagem mais recente:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
Este exemplo mostra como instalar o Kubernetes Operator com a imagem criada à meia-noite de 5 de fevereiro de 2021:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
Observação
O MongoDB recomenda usar a compilação padrão (mais recente).
Instalar com OpenShift
Antes de começar, certifique-se de que o sinalizador MANAGED_SECURITY_CONTEXT esteja definido como true ao implantar o operador Kubernetes no OpenShift. Este valor é predefinido no valores-openshift.yaml arquivo.
O procedimento de instalação varia de acordo com a forma como você deseja configurar seu ambiente:
Observação
Use o mesmo namespace em todo o
By default, the Kubernetes Operator deploys all resources in your Kubernetes cluster to the namespace mongodb. You can deploy Kubernetes Operator resources to a different namespace by editing all values for metadata.namespace in mongodb-kubernetes-openshift.yaml. You must also update the subjects[0].namespace value in every RoleBinding and ClusterRoleBinding in the same file. If you omit this value, the bindings look for the ServiceAccount in the default mongodb namespace and can't find it:
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mongodb-kubernetes-operator namespace: production roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operator subjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
Clone o repositório do Operador MongoDB Controladores para Kubernetes.
Invocar o seguinte comando git:
git clone https://github.com/mongodb/mongodb-kubernetes.git
Navegue até o diretório no qual você clonou os Controladores MongoDB para repositório do operador Kubernetes.
Por exemplo, se você clonou o repositório em seu diretório inicial, execute:
cd ~/mongodb-kubernetes
Instale o CustomResourceDefinitions para sistemas do MongoDB .
Invocar o seguinte comando oc:
oc apply -f crds.yaml
Opcional: personalize o Kubernetes Operator YAML antes de instalá-lo.
Para saber mais sobre as configurações de instalação opcionais do Kubernetes Operator, consulte Kubernetes Operator e configurações de instalação do oc.
Observação
Para habilitar a visualização pública de contêineres estáticos, que melhoram e simplificam a segurança, consulte Contêineres estáticos (visualização pública). Não recomendamos usar esse recurso em produção enquanto ele estiver em visualização pública. Para saber mais, consulte Visualizar recursos.
Adicione seu <openshift-pull-secret> às ServiceAccount definições do no Operador Kubernetes YAML antes de instalá-lo.
apiVersion: v1 kind: ServiceAccount metadata: name: enterprise-operator namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-appdb namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-database-pods namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret>
Para saber mais, consulte a configuração registry.imagePullSecrets nas configurações de instalação do Helm.
Instale o operador Kubernetes usando o seguinte comando oc:
Invocar o seguinte comando oc:
oc apply -f mongodb-kubernetes-openshift.yaml
Use os Charts Helm do MongoDB para Kubernetes.
Você pode instalar o operador Kubernetes com 3Helm.
Adicione o repositório MongoDB Helm Charts for Kubernetes ao Helm.
helm repo add mongodb https://mongodb.github.io/helm-charts
Instale o Operador Kubernetes utilizando o helm.
Instale os Charts Helm do MongoDB para Kubernetes:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --values https://raw.githubusercontent.com/mongodb/helm-charts/main/charts/mongodb-kubernetes/values-openshift.yaml
Use as configurações do values-openshift.yaml. Para saber mais sobre as configurações de instalação opcionais do Kubernetes Operator, consulte Configurações da instalação do Operator Helm.
Observação
Para habilitar a visualização pública de contêineres estáticos, que melhoram e simplificam a segurança, consulte Contêineres estáticos (visualização pública). Não recomendamos usar esse recurso em produção enquanto ele estiver em visualização pública. Para saber mais, consulte Visualizar recursos.
Instalar uma compilação diária específica com o Helm
O MongoDB reconstrói imagens do Kubernetes Operator todos os dias para integrar as atualizações mais recentes de segurança e sistema operacional.
Por padrão, o helm instala a compilação mais recente para a versão do Operador Kubernetes que você especifica.
Para instalar uma compilação anterior, especifique o ID de compilação como um parâmetro com --set build=<build-id>. Os ID de compilação estão sempre no formato -b<YYYYMMDD>T000000Z, onde <YYYYMMDD> é a data em que a compilação que você deseja usar foi criada.
Exemplo
Este exemplo mostra como instalar o Operador Kubernetes com a imagem mais recente:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
Este exemplo mostra como instalar o Kubernetes Operator com a imagem criada à meia-noite de 5 de fevereiro de 2021:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
Observação
O MongoDB recomenda usar a compilação padrão (mais recente).
Verificar a instalação
Para verificar se o Kubernetes Operator foi instalado corretamente, execute o seguinte comando e verifique o resultado:
kubectl describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
oc describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
Por padrão, existem sistemas no namespace mongodb . Se a seguinte mensagem de erro aparecer, certifique-se de usar o namespace correto:
Error from server (NotFound): deployments.apps "mongodb-kubernetes-operator" not found
Para solucionar problemas do seu operador Kubernetes, consulte Verificar registros do operador Kubernetes e outros tópicos de solução de problemas.
Importante
Se você precisar remover o Kubernetes Operator ou o namespace, primeiro deverá remover os recursos do MongoDB.
Próximos passos
Após instalar os Controladores MongoDB para o Operador Kubernetes, você pode: