Observação
Este tutorial pressupõe algum conhecimento de Kubernetes. Se você não estiver familiarizado com o Kubernetes, revise a documentação do Kubernetes sobre objetos do Kubernetes e recursos personalizados antes de começar. O Kubernetes Operator representa deployments do Ops Manager e do MongoDB como recursos personalizados. Você os cria e os gerencia com kubectl da mesma maneira que gerencia qualquer outro objeto do Kubernetes. Para saber como esses recursos personalizados se relacionam entre si, consulte Controladores MongoDB para Visão geral da arquitetura do operador Kubernetes.
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 e confira a tag para a versão atual.
git clone https://github.com/mongodb/mongodb-kubernetes.git cd mongodb-kubernetes git checkout 1.10.0
Observação
Você pode usar 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
Por padrão, o operador do Kubernetes implanta todos os recursos em seu cluster Kubernetes no namespace mongodb. Você pode implantar recursos do Kubernetes operador em um namespace diferente editando todos os valores de metadata.namespace em mongodb-kubernetes.yaml. Você também deve atualizar o valor de subjects[0].namespace em cada RoleBinding e ClusterRoleBinding no mesmo arquivo. Se você omitir esse valor, as vinculações procurarão o ServiceAccount no namespace mongodb padrão e não conseguirão encontrá-lo:
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
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
Use os Charts Helm do MongoDB para Kubernetes.
Observação
Descontinuação do repositório de gráficos Helm
A instalação do Operador Kubernetes a partir do repositório MongoDB Helm Charts for Kubernetes está obsoleta e será removida na versão MCK 2.0. Para instalar o gráfico Helm a partir do registro compatível com OCI, consulte a seção "Usando o Helm (registro compatível com OCI)" aba.
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).
O MongoDB também publica o gráfico Helm do Kubernetes operador em um registro de contêiner compatível com OCI em quay.io/mongodb/helm-charts. Ao instalar a partir deste registro, você faz referência ao gráfico diretamente em vez de adicionar o repositório de gráficos Helm.
Personalize seu gráfico Helm antes de implantá-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 \ oci://quay.io/mongodb/helm-charts/mongodb-kubernetes
Para implantar o Kubernetes operador em um namespace que não seja o padrão, passe as flags --namespace e --create-namespace:
helm upgrade --install mongodb-kubernetes-operator \ oci://quay.io/mongodb/helm-charts/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
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 arquivo valores-openshift.yaml.
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
Por padrão, o operador do Kubernetes implanta todos os recursos em seu cluster Kubernetes no namespace mongodb. Você pode implantar recursos do Kubernetes operador em um namespace diferente editando todos os valores de metadata.namespace em mongodb-kubernetes-openshift.yaml. Você também deve atualizar o valor de subjects[0].namespace em cada RoleBinding e ClusterRoleBinding no mesmo arquivo. Se você omitir esse valor, as vinculações procurarão o ServiceAccount no namespace mongodb padrão e não conseguirão encontrá-lo:
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 e confira a tag para a versão atual.
Invoque os seguintes comandos git:
git clone https://github.com/mongodb/mongodb-kubernetes.git cd mongodb-kubernetes git checkout 1.10.0
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
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
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.
Observação
Descontinuação do repositório de gráficos Helm
A instalação do Operador Kubernetes a partir do repositório MongoDB Helm Charts for Kubernetes está obsoleta e será removida na versão MCK 2.0. Instale o gráfico Helm a partir do registro compatível com OCI em quay.io/mongodb/helm-charts.
Você pode instalar o Operador Kubernetes com Helm 3.
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
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
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: