Em clusters do Anthos em bare metal, os clusters de usuário executam suas cargas de trabalho e, em uma arquitetura de vários clusters, os clusters de usuário são criados e gerenciados por um cluster de administrador.
Depois de criar um cluster de administrador, chamar o comando bmctl create config
cria um arquivo yaml que pode ser editado para definir o cluster de usuário. Para aplicar a
configuração e criar o cluster de usuário, use o comando
bmctl create cluster
. As verificações de simulação são aplicáveis aos clusters de usuários criados com o comando bmctl create cluster
.
Manter as cargas de trabalho fora do cluster de administrador protege dados administrativos confidenciais, como chaves SSH armazenadas no cluster de administrador, contra aqueles que não precisam acessar essas informações. Além disso, manter os clusters de usuários separados uns dos outros oferece uma boa segurança geral para as cargas de trabalho.
Pré-requisitos
- O último
bmctl
é transferido por download (gs://anthos-baremetal-release/bmctl/1.10.8/linux-amd64/bmctl
) do Cloud Storage. - cluster de administrador de trabalho com acesso ao servidor da API do cluster (o
controlPlaneVIP
); - Os nós do cluster de administrador têm conectividade de rede para todos os nós no cluster do usuário de destino.
- A estação de trabalho que executa
bmctl
tem conectividade de rede com todos os nós nos clusters de usuários de destino. - Chave SSH usada para criar o cluster de usuário disponível para o usuário raiz ou SUDO em todos os nós do cluster do usuário.
- A conta de serviço de registro do Connect é configurada no cluster de administrador para uso com o Connect.
Ativar o SELinux
Se você quiser ativar o SELinux para proteger seus contêineres, verifique se o
SELinux está ativado no modo Enforced
em todas as máquinas host. A partir dos
clusters do Anthos na versão Bare Metal 1.9.0 ou posterior, é possível ativar ou desativar o SELinux
antes ou depois da criação do cluster ou dos upgrades do cluster. O SELinux é ativado por padrão no Red Hat Enterprise Linux (RHEL) e no CentOS. Se o SELinux estiver desativado em
suas máquinas host ou se você não tiver certeza, consulte Como proteger seus contêineres usando o SELinux
para instruções sobre como ativá-lo.
Os clusters do Anthos em bare metal são compatíveis com o SELinux apenas em sistemas RHEL e CentOS.
Criar um arquivo de configuração de cluster de usuário
O arquivo de configuração para criar um cluster de usuário é quase exatamente igual ao usado para criar um cluster de administrador. A única diferença é que você remove a seção de configuração de credenciais locais para fazer com que a configuração seja um conjunto válido de recursos do Kubernetes. A seção de configuração fica na parte superior do arquivo na seção bmctl configuration variables
. Veja exemplos de
configurações em
Clusters de usuário
nas amostras de configuração de clusters.
Por padrão, os clusters de usuário herdam as credenciais do cluster de administrador que as gerencia. É possível substituir parcialmente todas ou algumas dessas credenciais.
Crie um arquivo de configuração do cluster de usuário com o comando
bmctl create config
:criar config -bmctl c USER_CLUSTER_NAME
Por exemplo, emita o seguinte comando para criar um arquivo de configuração para um cluster de usuário chamado
user1
:criar config -bmctl c
O arquivo é gravado em
bmctl-workspace/user1/user1.yaml
. O caminho genérico para o arquivo ébmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml
Edite o arquivo de configuração com as seguintes alterações:
Remova os caminhos do arquivo das credenciais locais da configuração:
....
gcrKeyPath: (path to GCR service account key)sshPrivateKeyPath: (path to SSH private key, used for node access)gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)....Altere a configuração para especificar um tipo de cluster de
user
em vez deadmin
:.... 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: user ....
Garanta que as especificações de cluster de administrador e de usuário para os VIPs do balanceador de carga e os pools de endereços sejam complementares e não sobreponham clusters atuais. Veja abaixo um exemplo de configuração de configurações de cluster de usuário e administrador, especificando o balanceamento de carga e os pools de endereços:
.... # Sample admin cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.49 ingressVIP: 10.200.0.50 addressPools: - name: pool1 addresses: - 10.200.0.50-10.200.0.70 .... .... # Sample user cluster config for load balancer and address pools loadBalancer: vips: controlPlaneVIP: 10.200.0.71 ingressVIP: 10.200.0.72 addressPools: - name: pool1 addresses: - 10.200.0.72-10.200.0.90 ....
Os outros arquivos de configuração do cluster do usuário são iguais aos da configuração do cluster do administrador.
Especifique a densidade do pod dos nós do cluster e o ambiente de execução do contêiner:
.... # 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: 110 # containerRuntime specifies which container runtime to use for scheduling containers on nodes. # containerd and docker are supported. containerRuntime: containerd ....
Para clusters de usuários, os valores permitidos para
maxPodsPerNode
são32-250
. Se não especificado, o valor padrão será110
. Depois que o cluster é criado, esse valor não pode ser atualizado.O ambiente de execução padrão do contêiner é o contêiner. Se preferir, use o Docker. Para mais informações sobre como alterar o ambiente de execução, consulte nosso guia de ambiente de execução do contêiner.
A densidade de pods também é limitada pelos recursos de IP disponíveis do cluster. Para detalhes, consulte Rede de pod.
Criar o cluster de usuário
Emita o comando bmctl
para aplicar a configuração do cluster de usuário revisado e criar o cluster:
bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Substitua:
USER_CLUSTER_NAME
especifica o nome do cluster criado na seção anterior.ADMIN_KUBECONFIG
especifica o caminho até o arquivo kubeconfig do cluster de administrador;
Por exemplo, para um cluster de usuários chamado user1
e um arquivo kubeconfig do cluster de administrador com o caminho kubeconfig bmctl-workspace/admin/admin-kubeconfig
, o comando seria:
bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig
Exemplos de configurações de cluster de usuário
Para exemplos de configurações de cluster de usuário, consulte Clusters de usuário nas amostras de configuração de cluster.