Pré-requisitos
Nesta página
- Revise as arquiteturas de hardware suportadas
- Clone o repositório do MongoDB Enterprise Kubernetes Operator
- Definir variáveis de ambiente e zonas GKE
- Configurar clusters GKE
- Obter credenciais de autenticação de usuário para clusters centrais e de membros
- Instalar o Go e o Helm
- Entender as funções e vinculações de funções do Kubernetes
- Definir o escopo do sistema
- Planejar a conectividade externa: Você deve usar uma malha de serviços?
- Verificar a conectividade entre clusters
- Revise os requisitos para implantar o Ops Manager
- Prepare-se para conexões criptografadas por TLS
- Escolha GitOps ou o plug-in kuberctl MongoDB
- Instalar o plug-in kuberctl do MongoDB
- Configurar recursos para GitOps
Antes de criar um sistema do MongoDB em cluster multi-Kubernetes usando o início rápido ou um procedimento de sistema, conclua as seguintes tarefas:
Revise as arquiteturas de hardware suportadas
Clone o repositório do MongoDB Enterprise Kubernetes Operator
Clone o repositório do MongoDB Enterprise Kubernetes Operator :
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git
Definir variáveis de ambiente e zonas GKE
Defina as variáveis de ambiente com nomes de cluster e as zonas GKE disponíveis onde você distribui os clusters, como neste exemplo:
export MDB_GKE_PROJECT={GKE project name} export MDB_CENTRAL_CLUSTER="mdb-central" export MDB_CENTRAL_CLUSTER_ZONE="us-west1-a" export MDB_CLUSTER_1="mdb-1" export MDB_CLUSTER_1_ZONE="us-west1-b" export MDB_CLUSTER_2="mdb-2" export MDB_CLUSTER_2_ZONE="us-east1-b" export MDB_CLUSTER_3="mdb-3" export MDB_CLUSTER_3_ZONE="us-central1-a" export MDB_CENTRAL_CLUSTER_FULL_NAME="gke_${MDB_GKE_PROJECT}_${MDB_CENTRAL_CLUSTER_ZONE}_${MDB_CENTRAL_CLUSTER}" export MDB_CLUSTER_1_FULL_NAME="gke_${MDB_GKE_PROJECT}_${MDB_CLUSTER_1_ZONE}_${MDB_CLUSTER_1}" export MDB_CLUSTER_2_FULL_NAME="gke_${MDB_GKE_PROJECT}_${MDB_CLUSTER_2_ZONE}_${MDB_CLUSTER_2}" export MDB_CLUSTER_3_FULL_NAME="gke_${MDB_GKE_PROJECT}_${MDB_CLUSTER_3_ZONE}_${MDB_CLUSTER_3}"
Configurar clusters GKE
Configurar o GKE (Google Kubernetes Engine) clusters:
Configure sua conta do Google Cloud.
Se você ainda não tiver feito isso, crie um projeto do Google Cloud, habilite o faturamento no projeto, habilite as APIs Artefato de Registro e GKE e inicie o Cloud Shell seguindo os procedimentos relevantes no Início rápido do Google Kubernetes Engine na documentação do Google Cloud.
Crie um cluster central e clusters de membros.
Crie um cluster central e um ou mais clusters de membros, especificando as zonas do GKE, o número de nós e os tipos de instâncias, como nestes exemplos:
gcloud container clusters create $MDB_CENTRAL_CLUSTER \ --zone=$MDB_CENTRAL_CLUSTER_ZONE \ --num-nodes=5 \ --machine-type "e2-standard-2"
gcloud container clusters create $MDB_CLUSTER_1 \ --zone=$MDB_CLUSTER_1_ZONE \ --num-nodes=5 \ --machine-type "e2-standard-2"
gcloud container clusters create $MDB_CLUSTER_2 \ --zone=$MDB_CLUSTER_2_ZONE \ --num-nodes=5 \ --machine-type "e2-standard-2"
gcloud container clusters create $MDB_CLUSTER_3 \ --zone=$MDB_CLUSTER_3_ZONE \ --num-nodes=5 \ --machine-type "e2-standard-2"
Obter credenciais de autenticação de usuário para clusters centrais e de membros
Obtenha credenciais de autenticação de usuário para os clusters Kubernetes centrais e de membros e salve as credenciais. Posteriormente, você utilizará estas credenciais para executar comandos do kubectl
nestes agrupamentos.
Execute os seguintes comandos:
gcloud container clusters get-credentials $MDB_CENTRAL_CLUSTER \ --zone=$MDB_CENTRAL_CLUSTER_ZONE gcloud container clusters get-credentials $MDB_CLUSTER_1 \ --zone=$MDB_CLUSTER_1_ZONE gcloud container clusters get-credentials $MDB_CLUSTER_2 \ --zone=$MDB_CLUSTER_2_ZONE gcloud container clusters get-credentials $MDB_CLUSTER_3 \ --zone=$MDB_CLUSTER_3_ZONE
Instalar o Go e o Helm
Instale as seguintes ferramentas:
Entender as funções e vinculações de funções do Kubernetes
Para usar um sistema do MongoDB de cluster multi-Kubernetes, você deve ter um conjunto específico de Kubernetes Roles, ClusterRoles, RoleBindings, ClusterRoleBindings, e ServiceAccounts, que você pode configurar de qualquer uma das seguintes maneiras:
Siga o Início Rápido de Multi-Kubernetes-Cluster, que informa como usar o Plug- in do MongoDB para criar automaticamente os objetos necessários e aplicá-los aos clusters apropriados dentro de sua implantação do MongoDB de clusters multi-Kubernetes.
Usar elmo para configurar as roles necessárias do Kubernetes e as contas de serviço para cada cluster de membros:
helm template --show-only \ templates/database-roles.yaml \ mongodb/enterprise-operator \ --set namespace=mongodb | \ kubectl apply -f - \ --context=$MDB_CLUSTER_1_FULL_NAME \ --namespace mongodb helm template --show-only \ templates/database-roles.yaml \ mongodb/enterprise-operator \ --set namespace=mongodb | \ kubectl apply -f - \ --context=$MDB_CLUSTER_2_FULL_NAME \ --namespace mongodb helm template --show-only \ templates/database-roles.yaml \ mongodb/enterprise-operator \ --set namespace=mongodb | \ kubectl apply -f - \ --context=$MDB_CLUSTER_3_FULL_NAME \ --namespace mongodb Crie manualmente arquivos de objeto
.yaml
do Kubernetes e adicione as funções e contas de serviço necessárias do Kubernetes ao seu sistema do MongoDB de vários clusters Kubernetes com o comandokubectl apply
. Isso pode ser necessário para determinados fluxos de trabalho altamente automatizados. O MongoDB fornece arquivos de configuração de amostra.Para recursos personalizados com escopo para um subconjunto de namespaces:
Roles, vinculações de role e contas de serviço para seu cluster central
Roles, vinculações de role e contas de serviço para seus clusters de membros
Para recursos personalizados com escopo para um namespace em todo o cluster:
ClusterRoles, ClusterRoleBindings e ServiceAccounts para seu cluster central
ClusterRoles, ClusterRoleBindings e ServiceAccounts para o seu cluster de membros
Cada arquivo define vários recursos. Para suportar sua implantação, você deve substituir os valores de espaço reservado nos seguintes campos:
subjects.namespace
em cada recursoRoleBinding
ouClusterRoleBinding
metadata.namespace
em cada recursoServiceAccount
Após modificar as definições, aplique-as executando o seguinte comando para cada arquivo:
kubectl apply -f <fileName>
Definir o escopo do sistema
Por padrão, o operador Kubernetes de vários clusters tem como escopo o namespace em que você o instala. O Operador Kubernetes reconcilia o MongoDBMultiCluster
recurso implantado no mesmo namespace que o Operador Kubernetes.
Quando você executa o plug-in kubectl do MongoDB como parte do início rápido de vários clusters e não modifica as configurações do plug-in kubectl mongodb
, o plug-in:
Cria um ConfigMap padrão denominado
mongodb-enterprise-operator-member-list
que 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 contas de serviço , Roles, ClusterRoles, RoleBindings e ClusterRoleBindings no cluster central 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.
Depois que o operador Kubernetes criar o sistema do MongoDB do cluster multi-Kubernetes, o operador Kubernetes começará a observar MongoDB
os recursos no mongodb
namespace.
Para configurar o Operador Kubernetes com as permissões corretas para implantar em um subconjunto ou em todos os namespaces, execute o comando a seguir e especifique os namespaces que você deseja que o Operador Kubernetes observe.
kubectl mongodb multicluster setup \ --central-cluster="${MDB_CENTRAL_CLUSTER_FULL_NAME}" \ --member-clusters="${MDB_CLUSTER_1_FULL_NAME},${MDB_CLUSTER_2_FULL_NAME},${MDB_CLUSTER_3_FULL_NAME}" \ --member-cluster-namespace="mongodb2" \ --central-cluster-namespace="mongodb2" \ --create-service-account-secrets \ --cluster-scoped="true"
Quando você instala o sistema MongoDB de cluster multi-Kubernetes em vários ou todos os namespaces, você pode configurar o operador Kubernetes para:
Observação
Instale e configure uma única instância do Kubernetes Operator e configure-a para monitorar um, muitos ou todos os recursos personalizados em subconjuntos diferentes e não sobrepostos de namespaces. Consulte também O MongoDB suporta a execução de mais de uma instância do Kubernetes Operator?
Assista a recursos em vários namespaces
Se você definir o escopo do sistema do MongoDB do cluster multi-Kubernetes para muitos namespaces, você pode configurar o Operador Kubernetes para observar MongoDB
recursos nesses namespaces na implantação do MongoDB de clusters Kubernetes múltiplos.
Assista a recursos em todos os namespaces
Se você definir o escopo do sistema do MongoDB para clusters multikubernetes para todos os namespaces em vez do mongodb
namespace padrão, é possível configurar o Operador Kubernetes para observar MongoDB
os recursos em todos os namespaces no sistema do MongoDB do cluster multiKubernetes.
Planejar a conectividade externa: Você deve usar uma malha de serviços?
Uma Service Mesh permite a comunicação entre clusters entre os membros do conjunto de réplicas distribuídos em diferentes clusters Kubernetes. O uso de uma interface de serviço simplifica muito a criação de sistemas MongoDB de vários clusters Kubernetes e é a maneira recomendada de implantar o MongoDB em vários clusters Kubernetes. No entanto, se sua organização de T.I. não usar uma Service Mesh, você poderá implantar um conjunto de réplicas em um MongoDB deployment de vários Kubernetes sem ele.
Dependendo do seu ambiente, faça o seguinte:
Se você puder usar uma interface de serviço, instale o Istion.
Se você não puder usar uma malha de serviço:
Como o operador Kubernetes estabelece conectividade?
Independentemente do tipo de sistema, um MongoDB deployment no Kubernetes deve estabelecer as seguintes conexões:
Do Ops Manager MongoDB Agent no Pod ao seu processo
mongod
, para habilitar o gerenciamento e o monitoramento do ciclo de vida do MongoDB.Do MongoDB Agent do Ops Manager no Pod para a instância do Ops Manager, para habilitar a automação.
Entre todos os processos do
mongod
, para permitir a replicação.
Quando o Kubernetes Operator implementa os recursos do MongoDB, ele trata esses requisitos de conectividade das seguintes maneiras, dependendo do tipo de implementação:
Em um único sistema de cluster Kubernetes, o Operador Kubernetes configura nomes de host no conjunto de réplicas como FQDNs de um Serviço Headless. Este é um serviço único que resolve o DNS de um endereço IP direto de cada Pod hospedando uma instância MongoDB pelo FQDN do Pod , como segue:
<pod-name>.<replica-set-name>-svc.<namespace>.svc.cluster.local
.Em um sistema do MongoDB de vários clusters Kubernetes que usa uma malha de serviço, o Operador do Kubernetes cria um StatefulSet separado para cada membro do conjunto de réplicas do MongoDB no cluster Kubernetes. Uma malha de serviço permite a comunicação entre processos
mongod
em clusters Kubernetes distintos.O uso de uma malha de serviço permite a implantação do MongoDB de clusters multi-Kubernetes para:
Obtenha uma resolução global de nome de host DNS para clusters Kubernetes e estabeleça conectividade entre eles. Para cada Pod de MongoDB deployment em cada cluster Kubernetes, o Kubernetes Operator cria um serviço ClusterIP por meio da configuração
spec.duplicateServiceObjects: true
no recursoMongoDBMultiCluster
. Cada processo tem um nome de host definido para o FQDN deste serviço:<pod-name>-svc.<namespace>.svc.cluster.local
. Esses nomes de host são resolvidos do DNS para o ClusterIP de um serviço em cada cluster de membros.Estabeleça comunicação entre Pods em diferentes clusters Kubernetes. Como resultado, os membros do conjunto de réplicas hospedados em clusters diferentes formam um único conjunto de réplicas nestes clusters.
Em um sistema do MongoDB de cluster multi-Kubernetes sem uma tela de serviço, o Operador do Kubernetes usa as seguintes configurações de recursos do
MongoDBMultiCluster
para expor todos os seus processos domongod
externamente. Isso permite a resolução DNS de nomes de host entre clusters Kubernetes distintos e estabelece conectividade entre Pods roteados por meio das redes que conectam esses clusters.
Opcional: instale o Istion
Instalar o Sistema em um modo multiprimário em diferentes redes, usando a documentação do Istion. O Istipo é uma camada de serviço que simplifica a resolução de DNS e ajuda a estabelecer comunicação entre clusters entre os clusters Kubernetes de membros em uma implantação do MongoDB de vários clusters Kubernetes. Se você optar por usar uma interface de serviço, precisará instalá-la. Se você não puder utilizar uma interface de serviço, pule esta seção e use domínios externos e configure o DNS para habilitar a conectividade externa.
Além disso, oferecemos o script de exemplo install_istio_separate_network. Este script é baseado na documentação do Istion e fornece um exemplo de instalação que usa o modo multiprimário em redes diferentes. Não garantimos a manutenção do script com futuros lançamentos do Istion. Se você optar por usar o script, revise a documentação mais recente do Istion para instalar um multicluster e, se necessário, ajuste o script para corresponder à documentação e ao seu sistema. Se você usar outra solução de Service Mesh, crie seu próprio script para configurar redes separadas para facilitar a resolução de DNS.
Habilitar conectividade externa por meio de domínios externos e zonas de DNS
Se você não utilizar uma malha de serviço, faça o seguinte para habilitar a conectividade externa para e entre os processos do mongod
e o MongoDB Agent do Ops Manager:
Ao criar um sistema MongoDB de cluster multi-Kubernetes, utilize a spec.clusterSpecList.externalAccess.externalDomain configuração para especificar um domínio externo e instruir o Operador Kubernetes a configurar nomes de host para processos do
mongod
no seguinte padrão:<pod-name>.<externalDomain> Observação
Você pode especificar domínios externos somente para novas implementações. Você não pode alterar domínios externos depois de configurar uma implantação do MongoDB de clusters multi Kubernetes.
Após configurar um domínio externo desta forma, os agente MongoDB do Ops Manager e os processos do
mongod
utilizam este domínio para se conectar uns aos outros.Personalizar serviços externos que o operador Kubernetes cria para cada Pod no cluster Kubernetes. Use a configuração global nas configurações spec.externalAccess e substituições específicas do cluster Kubernetes nas configurações spec.clusterSpecList.externalAccess.externalService .
Configure os nomes de host do Pod em uma zona DNS para garantir que cada Pod do Kubernetes que hospeda um processo do
mongod
permita estabelecer uma conexão externa com os outros processos domongod
em um sistema MongoDB de multi-Kubernetes cluster. Um Pod é considerado "exposto externamente" quando você pode se conectar a um processomongod
usando o nome de host<pod-name>.<externalDomain>
nas portas 27017 (esta é a porta do banco de dados padrão) e 27018 (esta é a porta do banco de dados + 1). Talvez você também precise configurar regras de firewall para permitir o tráfego TCP nas portas 27017 e 27018.
Depois de concluir estes pré-requisitos, você poderá implantar um cluster multi-Kubernetes sem uma malha de serviço.
Verificar a conectividade entre clusters
Siga as etapas deste procedimento para verificar se os FQDN s de serviço podem ser acessados nos clusters do Kubernetes.
Neste exemplo, você implanta um aplicativo de amostra definido em sample-service.yaml em dois clusters Kubernetes.
Crie um namespace em cada cluster.
Crie um namespace em cada um dos clusters Kubernetes para distribuir o sample-service.yaml
.
kubectl create --context="${CTX_CLUSTER_1}" namespace sample kubectl create --context="${CTX_CLUSTER_2}" namespace sample
Observação
Em determinadas soluções de malha de serviço, talvez seja necessário anotar ou rotular o namespace.
Verifique CLUSTER_1
se pode se conectar a CLUSTER_2
.
Implante o Pod em CLUSTER_1
e verifique se você pode acessar o aplicativo de amostra em CLUSTER_2
.
kubectl run --context="${CTX_CLUSTER_1}" \ -n sample \ curl --image=radial/busyboxplus:curl \ -i --tty \ curl -sS helloworld2.sample:5000/hello
Você deverá ver uma saída semelhante a este exemplo:
Hello version: v2, instance: helloworld-v2-758dd55874-6x4t8
Verifique CLUSTER_2
se pode se conectar a CLUSTER_1
.
Implante o Pod em CLUSTER_2
e verifique se você pode acessar o aplicativo de amostra em CLUSTER_1
.
kubectl run --context="${CTX_CLUSTER_2}" \ -n sample \ curl --image=radial/busyboxplus:curl \ -i --tty \ curl -sS helloworld1.sample:5000/hello
Você deverá ver uma saída semelhante a este exemplo:
Hello version: v1, instance: helloworld-v1-758dd55874-6x4t8
Revise os requisitos para implantar o Ops Manager
Como parte do Quick Start, você implementa um recurso do Ops Manager no cluster central.
Prepare-se para conexões criptografadas por TLS
Se você planeja proteger seu sistema MongoDB de cluster multi-Kubernetes usando criptografia TLS , conclua as tarefas a seguir para habilitar a autenticação interna do cluster e gerar certificados TLS para clusters de membros e o MongoDB Agent:
Observação
Você deve possuir o certificado CA e a chave que usou para assinar seus certificados TLS .
Importante
O operador do Kubernetes usa kubernetes.io/tls segredos para armazenar certificados TLS e chaves privadas para recursos do Ops Manager e MongoDB. A partir da versão do operador Kubernetes 1.17.0, o Operador Kubernetes não suporta arquivos PEM concatenados armazenados como segredos Opaco.
Escolha GitOps ou o plug-in kuberctl MongoDB
Você pode optar por criar e manter os arquivos de recursos necessários para o sistema de recursos do MongoDBMultiCluster
em um ambiente GitOps.
Se você usar um fluxo de trabalho GitOps, não poderá usar o plug- in kubectl mongodb, que configura automaticamente o RBAC (controle de acesso baseado em função) e cria o arquivo kubeconfig que permite ao cluster central se comunicar com seus clusters de membros. Em vez disso, você deve configurar manualmente ou construir sua própria automação para configurar o RBAC e kubeconfig
arquivos baseado no procedimento e exemplos em Configurar Recursos para GitOps.
As seções de pré-requisito a seguir descrevem como instalar o plug-in kubectl do MongoDB se você não usar o GitOps ou configurar recursos para o GitOps se usar.
Instalar o plug-in kuberctl do MongoDB
Use o plug-in kubectl mongodb
para:
Observação
Se você usar GitOps, não poderá usar o plug-in kubectl mongodb
. Em vez disso, siga o procedimento em Configurar recursos para GitOps.
Para instalar o plug-in kubectl mongodb
:
Baixe a versão desejada do pacote do Kubernetes Operator.
Baixe a versão desejada do pacote do Kubernetes Operator na página de lançamento do repositório do MongoDB Enterprise Kubernetes Operator.
O nome do pacote usa este padrão: kubectl-mongodb_{{ .Version }}_{{ .Os }}_{{ .Arch }}.tar.gz
.
Use um dos seguintes pacotes:
kubectl-mongodb_{{ .Version }}_darwin_amd64.tar.gz
kubectl-mongodb_{{ .Version }}_darwin_arm64.tar.gz
kubectl-mongodb_{{ .Version }}_linux_amd64.tar.gz
kubectl-mongodb_{{ .Version }}_linux_arm64.tar.gz
Localize o kubectl mongodb
binário do plugin e copie-o para o destino desejado.
Encontre o binário kubectl-mongodb
no diretório descompactado e mova-o para o destino desejado, dentro do PATH para o usuário do Kubernetes Operator, conforme mostrado no exemplo a seguir:
mv kubectl-mongodb /usr/local/bin/kubectl-mongodb
Agora você pode executar o plug-in kubectl mongodb
usando os seguintes comandos:
kubectl mongodb multicluster setup kubectl mongodb multicluster recover
Para saber mais sobre as sinalizações compatíveis, consulte a Referência do plug-in do MongoDB kubectl.
Configurar recursos para GitOps
Se você usar um fluxo de trabalho GitOps, não poderá usar o plug- in kubectl mongodb para configurar automaticamente o RBAC (controle de acesso baseado em função) ou o arquivo kubeconfig que permite ao cluster central se comunicar com seus clusters de membros. Em vez disso, você deve configurar e aplicar manualmente os seguintes arquivos de recursos ou construir sua própria automação com base nas informações abaixo.
Observação
Para saber como o kubectl mongodb
plugin automatiza as seguintes etapas, visualize o código no GitHub.
Para configurar o RBAC e o kubeconfig
para GitOps:
Crie e aplique recursos RBAC a cada cluster.
Use estes exemplos de recursos RBAC para criar o seu. Para saber mais sobre esses recursos de RBAC, consulte Noções básicas sobre funções e vinculações de funções do Kubernetes.
Para aplicá-los aos clusters centrais e de membros com o GitOps, você pode usar uma ferramenta como o Ago CD.
Crie e aplique o arquivo ConfigMap.
O Operador Kubernetes controla seus clusters de membros usando um ConfigMap arquivo. Copie, modifique e aplique o seguinte exemplo ConfigMap:
apiVersion: v1 kind: ConfigMap data: cluster1: "" cluster2: "" metadata: namespace: <namespace> name: mongodb-enterprise-operator-member-list labels: multi-cluster: "true"
Configure o kubeconfig
segredo para o operador Kubernetes.
O Operador Kubernetes, que é executado no cluster central, comunica-se com os Pods nos clusters de membros por meio da API do Kubernetes. Para que isso funcione, o Kubernetes Operator precisa de um kubeconfig que contém os tokens de conta de serviço dos clusters de membros. Crie este kubeconfig
arquivo seguindo estas etapas:
Obter uma lista de contas de serviço configurado no namespace do Operador Kubernetes. Por exemplo, se você optar por usar o
mongodb
namespace padrão, poderá obter as contas de serviço usando o seguinte comando:kubectl get serviceaccounts -n mongodb Obtenha o segredo de cada conta de serviço que pertence a um cluster de membros.
kubectl get secret <service-account-name> -n mongodb -o yaml Em cada segredo da conta de serviço, copie o certificado e o token da CA. Por exemplo, copie
<ca_certificate>
e<token>
do segredo, conforme mostrado no exemplo a seguir:apiVersion: v1 kind: Secret metadata: name: my-service-account namespace: mongodb data: ca.crt: <ca_certificate> token: <token> Copie o exemplo
kubeconfig
a seguir para o cluster central e substitua os placeholders pelos<ca_certificate>
e<token>
que você copiou dos segredos da conta de serviço.apiVersion: v1 clusters: - cluster: certificate-authority-data: <cluster-1-ca.crt> server: https://: name: kind-e2e-cluster-1 - cluster: certificate-authority-data: <cluster-2-ca.crt> server: https://: name: kind-e2e-cluster-2 contexts: - context: cluster: kind-e2e-cluster-1 namespace: mongodb user: kind-e2e-cluster-1 name: kind-e2e-cluster-1 - context: cluster: kind-e2e-cluster-2 namespace: mongodb user: kind-e2e-cluster-2 name: kind-e2e-cluster-2 kind: Config users: - name: kind-e2e-cluster-1 user: token: <cluster-1-token> - name: kind-e2e-cluster-2 user: token: <cluster-2-token> Salve o arquivo
kubeconfig
.Cria um segredo no cluster central que você monta no Operador Kubernetes, conforme ilustrado no gráfico de referência do Helm . Por exemplo:
kubectl --context="${CTX_CENTRAL_CLUSTER}" -n <operator-namespace> create secret --from-file=kubeconfig=<path-to-kubeconfig-file> <kubeconfig-secret-name>