No Google Distributed Cloud, configura clusters de administrador para gerir outros clusters em segurança. Pode criar, atualizar, fazer a atualização ou eliminar clusters de utilizadores a partir de clusters de administrador. Os clusters de utilizadores executam cargas de trabalho separadamente da administração, pelo que as informações confidenciais estão protegidas.
Os clusters de administrador que gerem cargas de trabalho de vários clusters podem oferecer fiabilidade de alta disponibilidade (HA). Num cluster de HA, se um nó do plano de controlo falhar, os outros nós continuam a funcionar.
Um cluster de administrador num ambiente de vários clusters oferece a melhor segurança fundamental. Uma vez que o acesso aos dados de administração está separado das cargas de trabalho, quem acede às cargas de trabalho do utilizador não tem acesso a dados administrativos confidenciais, como chaves SSH e dados da conta de serviço. Como tal, existe um compromisso entre a segurança e os recursos necessários, uma vez que um cluster de administrador separado significa que precisa de recursos dedicados para a gestão e as cargas de trabalho.
Cria um cluster de administrador com o comando bmctl
. Depois de criar um cluster de administrador, cria clusters de utilizador para executar cargas de trabalho.
Pré-requisitos:
- A versão mais recente do
bmctl
é transferida (gs://anthos-baremetal-release/bmctl/1.33.100-gke.89/linux-amd64/bmctl
) do Cloud Storage. - A estação de trabalho que executa o
bmctl
tem conectividade de rede com todos os nós nos clusters de utilizadores de destino. - A estação de trabalho que executa o
bmctl
tem conetividade de rede com o servidor da API do cluster (VIP do plano de controlo). - A chave SSH usada para criar o cluster de administrador está disponível para
root
ou um utilizador não root com privilégiossudo
sem palavra-passe em todos os nós no cluster de administrador de destino. - A conta de serviço de registo de associação está configurada para utilização com o Connect.
Consulte o início rápido do Google Distributed Cloud para ver instruções passo a passo detalhadas sobre como criar um cluster híbrido. A criação de um cluster de administrador é semelhante à criação de um cluster híbrido, exceto que não executa cargas de trabalho no cluster de administrador.
Ative o SELinux
Se quiser ativar o SELinux para proteger os seus contentores, tem de se certificar de que o SELinux está ativado no modo Enforced
em todas as suas máquinas anfitriãs. A partir da versão 1.9.0 ou posterior do Google Distributed Cloud, pode ativar ou desativar o SELinux antes ou depois da criação ou das atualizações do cluster. O SELinux está ativado por predefinição no Red Hat Enterprise Linux (RHEL). Se o SELinux estiver desativado nas suas máquinas anfitriãs ou não tiver a certeza, consulte o artigo Proteger os contentores com o SELinux para obter instruções sobre como o ativar.
O Google Distributed Cloud suporta o SELinux apenas em sistemas RHEL.
Inicie sessão na CLI gcloud e crie um ficheiro de configuração do cluster de administrador
Defina as credenciais predefinidas que o Google Distributed Cloud pode usar para criar o cluster com o seguinte comando:
gcloud auth application-default login
Para usar as funcionalidades de ativação automática da API e criação de contas de serviço nesta página, conceda a função Proprietário do projeto a esse principal. Se o principal não puder ter a função Proprietário do projeto, conclua o passo seguinte.
Para garantir que a criação do cluster pode ser bem-sucedida sem conceder a função de proprietário do projeto, adicione as seguintes funções de IAM ao principal:
- Administrador da conta de serviço
- Administrador da chave da conta de serviço
- Administrador de IAM de projetos
- Leitor do Compute
- Administrador de utilização do serviço
Se o principal for uma conta de serviço com essas funções, pode executar:
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
Substitua
JSON_KEY_FILE
pelo caminho para o ficheiro de chave JSON da conta de serviço.Obtenha o ID do seu Google Cloud projeto e armazene-o numa variável de ambiente para o usar na criação de clusters:
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
Crie uma configuração de cluster de administrador com bmctl
Depois de iniciar sessão na CLI gcloud e ter o projeto configurado, pode criar o ficheiro de configuração do cluster com o comando bmctl
.
No exemplo seguinte, todas as contas de serviço são criadas automaticamente pelo comando bmctl create config
:
bmctl create config -c ADMIN_CLUSTER_NAME --enable-apis \
--create-service-accounts --project-id=CLOUD_PROJECT_ID
Substitua o seguinte:
- ADMIN_CLUSTER_NAME: o nome do novo cluster.
- CLOUD_PROJECT_ID: o ID do projeto Google Cloud ou a variável de ambiente
$CLOUD_PROJECT_ID
.
Segue-se um exemplo para criar um ficheiro de configuração para um cluster de administrador denominado admin1
associado ao ID do projeto my-gcp-project
:
bmctl create config -c admin1 --create-service-accounts --enable-apis --project-id=my-gcp-project
O ficheiro é escrito em bmctl-workspace/admin1/admin1.yaml
.
Em alternativa à ativação automática das APIs e à criação de contas de serviço, também pode fornecer às suas contas de serviço existentes as autorizações do IAM adequadas. Isto significa que pode ignorar a criação automática da conta de serviço
no exemplo anterior no comando bmctl
:
bmctl create config -c admin1 --project-id=my-gcp-project
Edite o ficheiro de configuração do cluster
Agora que tem um ficheiro de configuração do cluster, edite-o para fazer as seguintes alterações:
Forneça a chave privada de SSH para aceder aos nós do cluster de administrador:
# bmctl configuration variables. Because this section is valid YAML but not a valid Kubernetes # resource, this section can only be included when using bmctl to # create the initial admin/admin cluster. Afterwards, when creating user clusters by directly # applying the cluster and node pool resources to the existing cluster, you must remove this # section. gcrKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json sshPrivateKeyPath: /path/to/your/ssh_private_key gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
Registe os seus clusters numa frota. O ID do projeto que especificou no comando
bmctl create config
é adicionado automaticamente ao campogkeConnect.projectID
no ficheiro de configuração do cluster. Este projeto é denominado projeto anfitrião da frota.Se criou o ficheiro de configuração através das funcionalidades de ativação automática da API e de criação de contas de serviço, pode ignorar este passo.
Se criou o ficheiro de configuração sem usar as funcionalidades de ativação automática da API e de criação de contas de serviço, consulte as chaves JSON da conta de serviço transferidas nos campos
gkeConnectAgentServiceAccountKeyPath
egkeConnectRegisterServiceAccountKeyPath
correspondentes do ficheiro de configuração do cluster.Opcionalmente, pode adicionar
gkeConnect.location
à especificação do cluster para especificar a Google Cloud região em que o Fleet e os serviços Connect são executados. Esta subscrição regional restringe o tráfego do serviço de frota à sua região. Se incluirgkeConnect.location
na especificação do cluster, a região que especificar tem de ser igual à região configurada emclusterOperations.location
. Se as regiões não forem iguais, a criação do cluster falha.
Verifique se a configuração especifica um tipo de cluster de
admin
(o valor predefinido):spec: # Cluster type. This can be: # 1) admin: to create an admin cluster. This can later be used to create user clusters. # 2) user: to create a user cluster. Requires an existing admin cluster. # 3) hybrid: to create a hybrid cluster that runs admin cluster components and user workloads. # 4) standalone: to create a cluster that manages itself, runs user workloads, but does not manage other clusters. type: admin
Se a API GKE On-Prem estiver ativada no seu Google Cloud projeto, todos os clusters no projeto são inscritos na API GKE On-Prem automaticamente na região configurada em
clusterOperations.location
.Se quiser inscrever todos os clusters no projeto na API GKE On-Prem, certifique-se de que executa os passos em Antes de começar para ativar e usar a API GKE On-Prem no projeto.
Se não quiser inscrever o cluster na API GKE On-Prem, inclua esta secção e defina
gkeOnPremAPI.enabled
comofalse
. Se não quiser inscrever nenhum cluster no projeto, desativegkeonprem.googleapis.com
(o nome do serviço para a API GKE On-Prem) no projeto. Para ver instruções, consulte o artigo Desativar serviços.
Altere o ficheiro de configuração para especificar um plano de controlo de alta disponibilidade com vários nós. Especifique um número ímpar de nós para ter um quórum maioritário para a HA:
# Control plane configuration controlPlane: nodePoolSpec: nodes: # Control plane node pools. Typically, this is either a single machine # or 3 machines if using a high availability deployment. - address: 10.200.0.4 - address: 10.200.0.5 - address: 10.200.0.6
Especifique a densidade de pods dos nós do cluster:
.... # NodeConfig specifies the configuration that applies to all nodes in the cluster. nodeConfig: # podDensity specifies the pod density configuration. podDensity: # maxPodsPerNode specifies at most how many pods can be run on a single node. maxPodsPerNode: 250 ....
Para clusters de administrador, os valores permitidos para
maxPodsPerNode
são32-250
para clusters de HA e64-250
para clusters sem HA. O valor predefinido, se não for especificado, é110
. Não é possível atualizar este valor depois de criar o cluster.A densidade de pods também é limitada pelos recursos de IP disponíveis do cluster. Para ver detalhes, consulte Redes de pods.
Crie o cluster de administrador com a configuração do cluster
Use o comando bmctl
para implementar o cluster:
bmctl create cluster -c ADMIN_CLUSTER_NAME
ADMIN_CLUSTER_NAME especifica o nome do cluster criado na secção anterior.
O exemplo seguinte mostra o comando para criar um cluster denominado admin1
:
bmctl create cluster -c admin1
Exemplos de configurações de clusters de administrador
Para ver exemplos de configurações de clusters de administrador, consulte Clusters de administrador nos Exemplos de configuração de clusters.