Registrar máquinas de inventário
Para que o administrador da plataforma crie um cluster de usuário, o Anthos precisa de um pool de máquinas inativas disponíveis. Nesta seção, você registra máquinas de inventário no cluster do administrador do Anthos para que o administrador da plataforma use-as posteriormente para criar um cluster de usuário. Essas máquinas precisam atender aos mesmos requisitos dos nós do cluster do administrador.
kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
Exemplo:
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
name: <ip address of the machine. e.g., 10.200.0.10>
labels:
"mykey": "myvalue"
"rack": "r1020"
spec:
address: <ip address of the machine. e.g., 10.200.0.10>
Os labels
são pares de chave-valor de forma livre anexados ao recurso.
Eles podem ser usados posteriormente no centro de gerenciamento para filtrar máquinas. Por exemplo,
é possível usar os "labels" para identificar o local do rack, configurações especiais de
hardware etc.
[Opcional] Como usar chaves SSH diferentes para máquinas de inventário
Por padrão, o modo particular do Anthos usa o ssh-key
fornecido por
sshPrivateKeyPath
(usado para acessar máquinas do cluster de administrador) para acessar essas
máquinas de inventário. Para ter melhor isolamento entre máquinas de cluster de administrador e máquinas de inventário (usadas para clusters de usuário), você pode usar uma chave ssh diferente para máquinas de inventário. Crie-os antes dos clusters de usuários de que
você precisará.
Distribua a chave pública SSH para todas as máquinas de inventário.
Armazene a chave privada SSH como secret no cluster de administrador, por exemplo,
user-cluster-ssh-key
kubectl create secret generic user-cluster-ssh-key -n anthos-creds --kubeconfig=${ADMIN_KUBECONFIG} \ --from-file=id_rsa=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
Ao criar clusters de usuários, especifique o secret criado na etapa 1 (ou
user-cluster-ssh-key
) no namespaceanthos-creds
.Isso é aceito apenas quando são criados clusters com a API. Adicione a chave SSH na definição do cluster dentro do arquivo yaml do cluster do usuário como
sshKeySecret
e especifiqueimagePullSecret
, por exemplo:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: <cluster-name> namespace: cluster-<cluster-name> spec: type: user credentials: sshKeySecret: name: user-cluster-ssh-key namespace: anthos-creds .... nodeAccess: loginUser: <login user name> ....
Registrar pool de endereços VIP
Para que o administrador da plataforma crie um cluster de usuário diferente de InventoryMachines
,
o Anthos precisa de um pool de todos os IPs virtuais disponíveis. Ele é usado pela IU do
centro de gerenciamento para informar ao administrador da plataforma quais IPs virtuais estão disponíveis e
validar a disponibilidade do VIP durante a criação do cluster de usuários.
Nesta seção, você registra um AddressPool no cluster do administrador do Anthos para
usá-lo posteriormente na criação de clusters de usuários. Crie apenas um pool de
endereços usando o nome anthos-addresspool-default
. Cada cluster de usuário será
forçado a usar VIPs desse pool de endereços e não poderá reutilizar o mesmo intervalo de
VIPs. Os IPs virtuais precisam atender aos mesmos requisitos dos VIPs usados para o cluster de
administrador e não podem se sobrepor aos IPs dos nós. O campo de descrição permite adicionar algumas instruções extras na IU.
kubectl apply -f <path/to/example-addresspool.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
Exemplo:
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1
kind: AddressPool
metadata:
name: anthos-addresspool-default
spec:
description: <description text>
addresses:
- <vip address pool. e.g, 10.200.0.100-10.200.0.200>
Registrar serviço de inicialização
O serviço de inicialização é um mecanismo usado para pré-instalar recursos adicionais, como os serviços de armazenamento e os drivers de GPU, nos clusters do usuário, depois de criados, para disponibilizá-los imediatamente para uso. Crie os serviços de inicialização antes dos clusters de usuários em que serão usados.
Use
kubectl create configmap <configmap-name> --kubeconfig=${ADMIN_KUBECONFIG} \ --from-file=<path/to/manifests> --namespace=anthos-management-center
para criar o configmap que contém todos os manifestos necessários para inicializar o serviço.
Crie o objeto de serviço de inicialização que se refere ao configmap
apiVersion: managementcenter.anthos.cloud.google.com/v1alpha1 kind: BootstrapService metadata: name: <bootstrap-service-name> namespace: anthos-management-center spec: # If set to True, this configuration can be applied to many user clusters, # e.g. a GPU driver configuration. If False, this configuration can only be # applied to a single user cluster, e.g. a CSI Driver + StorageClass # combination which is intended for exclusive use by a single user cluster. # Defaults to False. isReusable: False configMapRef: name: <configmap-name> namespace: anthos-management-center
Repita as etapas acima se forem necessários mais serviços de inicialização.