Use o plug-in kubectl mongodb para:
Antes de começar, instale o plugin Kubectl MongoDB.
O plugin kubectl mongodb tem os seguintes subcomandos:
Subcomando de configuração
O subcomando kubectl mongodb multicluster setup configura a implantação inicial do MongoDB do cluster multi-Kubernetes. Ele executa as seguintes ações:
Cria um ConfigMap padrão denominado
mongodb-kubernetes-operator-member-listque contém todos os clusters de membros do sistema MongoDB do cluster multi-Kubernetes. Este nome está codificado e você não pode alterá-lo. Consulte Problemas conhecidos.Cria ServiceAccounts, Roles, ClusterRoles, RoleBindings e ClusterRoleBindings no cluster do operador e em cada cluster de membros.
Aplica as permissões corretas para contas de serviço.
Usa as configurações anteriores para criar sua implantação do MongoDB de clusters multikubernetes.
Opções do subcomando de configuração
O subcomando setup do plug-in kubectl mongodb tem as seguintes opções:
Opção | Tipo de Dados | Descrição |
|---|---|---|
| string | Obrigatório. Cluster central no qual o Operador Kubernetes será implantado, como: |
| string | Obrigatório. namespace no qual o Operador Kubernetes será implantado, como: |
| booleano | Opcional. Sinalizador que indica se todos os recursos criados anteriormente devem ser excluídos, exceto namespaces. O valor padrão é |
| booleano | Opcional. Sinalizador que indica se você deve criar ClusterRole e ClusterRoleBindings para clusters de membros. O valor padrão é |
| booleano | Optional. Flag that indicates whether to create secrets for the service accounts in the Kubernetes API server. Default value is |
| booleano | Opcional. Sinalizador que indica se devem ser instaladas as contas de serviço e as funções necessárias para executar cargas de trabalho do MongoDB nos clusters de membros. O valor padrão é |
| booleano | Opcional. Sinalizador que indica se as contas de serviço que o plugin -in |
| string | Obrigatório. Lista separada por vírgulas que contém clusters de membros, como: |
| string | Opcional. Caminho para um pacote de CA codificado por PEM que o operador Kubernetes usa para acessar o servidor de API Kubernetes de um cluster de membros, no formato |
| string | Obrigatório. Namespace no qual os recursos do cluster de membros serão distribuídos, como: |
| string | Opcional. Nome da conta de serviço que o Kubernetes Operator usará para se comunicar com os clusters de membros. O valor padrão é |
Para obter um exemplo completo do uso do kubectl mongodb subcomando do plug-in setup , consulte o início rápido do cluster multi-Kubernetes.
recuperar subcomando
O subcomando kubectl mongodb multicluster pode recuperar automaticamente uma topologia de cluster com falha em alguns casos. Em outros casos, você deve se recuperar manualmente de uma falha. Para saber mais, consulte Recuperação de desastres.
recuperar opções de subcomando
O subcomando recover do plug-in kubectl mongodb tem as seguintes opções:
Opção | Tipo de Dados | Descrição |
|---|---|---|
| string | Obrigatório. Cluster central no qual o Operador Kubernetes será implantado, como: |
| string | Obrigatório. namespace no qual o Operador Kubernetes será implantado, como: |
| booleano | Opcional. Sinalizador que indica se todos os recursos criados anteriormente devem ser excluídos, exceto namespaces. O valor padrão é |
| booleano | Opcional. Sinalizador que indica se você deve criar ClusterRole e ClusterRoleBindings para clusters de membros. O valor padrão é |
| string | Opcional. Caminho para um pacote de CA codificado por PEM que o operador Kubernetes usa para acessar o servidor de API Kubernetes de um cluster de membros, no formato |
Para obter um exemplo completo do uso do subcomando kubectl mongodb plugin recover , consulte o procedimento manual de recuperação de desastres.
Pacotes de CA personalizados para clusters de membros
Por padrão, o plugin-in kubectl mongodb lê a CA para cada cluster de membros a partir do segredo de token da conta de serviço desse cluster e a grava no segredo mongodb-enterprise-operator-multi-cluster-kubeconfig gerado. Em alguns casos, talvez você queira fornecer um pacote de CA personalizado, por exemplo: quando o caminho de rede do Operador Kubernetes para o servidor da API Kubernetes de um cluster de membros encerra o TLS em outro lugar, como em um proxy ou balanceador de carga que apresenta seu próprio certificado. Use a opção member-cluster-ca para fornecer um pacote de CA personalizado.
O comando a seguir fornece um pacote de CA para dois dos três clusters de membros:
kubectl mongodb multicluster setup \ --central-cluster="operator-cluster" \ --member-clusters="cluster-1,cluster-2,cluster-3" \ --member-cluster-namespace=mongodb \ --central-cluster-namespace=mongodb \ --member-cluster-ca cluster-1=/path/to/cluster-1-ca.pem \ --member-cluster-ca cluster-2=/path/to/cluster-2-ca.pem
No exemplo anterior, cluster-3 mantém em segredo o token da CA de sua conta de serviço.
Requisitos do pacote CA
O plugin-in kubectl mongodb copia o conteúdo do arquivo para o segredo KubeConfig sem modificação, portanto, passe apenas certificados. Cada arquivo deve atender aos seguintes requisitos:
Contém pelo menos um certificado codificado por PEM.
Não contém chave privada. Um pacote que um terminador TLS exporta pode colocar a chave do servidor ao lado de seu certificado. O plugin-in rejeita esse pacote com o erro
found a private key (<block type> block), pass certificates only.
O plugin-in também retorna um erro se você passar um par <member-cluster-name>=<path-to-pem-file> malformado, nomear um cluster de membros que member-clusters não lista ou nomear o mesmo cluster de membros mais de uma vez.
Execuções repetidas
Os subcomandos setup e recover regeneram todo o segredo do KubeConfig. Se você omitir um cluster de membros de member-cluster-ca em uma execução posterior, esse cluster será revertido para a CA a partir de seu segredo de token de conta de serviço. Para preservar uma CA personalizada, toda vez que você executar um dos subcomandos, certifique-se de passar novamente a opção member-cluster-ca para cada cluster de membros que exija um.
Quando um subcomando substitui uma CA que não corresponde ao segredo do token da conta de serviço do cluster de membros, o plugin-in imprime um aviso semelhante ao seguinte:
Warning: replacing the CA for member cluster cluster-1, which does not match its ServiceAccount token secret. Pass --member-cluster-ca cluster-1=<path-to-pem-file> to keep a custom CA.
O aviso é consultivo. O subcomando ainda conclui e grava o novo segredo KubeConfig.