Noções básicas sobre verificações de simulação

Nos clusters do Anthos em bare metal, você pode executar verificações de simulação para diferentes situações:

  • Os clusters do Anthos em bare metal executa verificações de simulação ao criar ou atualizar clusters, clusters híbridos ou independentes e recursos do pool de nós com bmctl. Se as verificações falharem, nenhuma alteração será feita. Também é possível ignorar essas verificações.
  • É possível executar um conjunto limitado de verificações de simulação antes de criar clusters de usuário a partir de um cluster de administrador ou híbrido com o comando kubectl.
  • Os clusters do Anthos em bare metal também executa verificações de simulação internas quando você aplica recursos do Kubernetes a clusters de usuário de um cluster de administrador ou híbrido. As verificações são executadas antes que as alterações sejam aplicadas aos clusters de usuário afetados. Se as verificações falharem, nenhuma alteração será feita. Também é possível ignorar essas verificações ou executá-las de maneira explícita.

Preparar verificações ao criar clusters usando bmctl

Ao criar clusters admin, híbridos ou independentes com o comando bmctl, os clusters do Anthos on o bare metal executa automaticamente verificações de simulação antes que sejam feitas alterações.

Quando as verificações são aprovadas, os clusters do Anthos em bare metal criam os clusters.

Ignorar os resultados das verificações automáticas de simulação

Se você quiser ignorar essas verificações de simulação automatizadas, use a sinalização opcional --force no comando.

Como executar verificações de simulação de maneira independente

Também é possível executar verificações de simulação antes da criação do cluster. Isso pode ajudar a economizar tempo garantindo que os recursos do seu nó e da sua máquina sejam aprovados nas verificações.

  • O comando a seguir valida o arquivo de configuração do cluster especificado, mas não tenta criar o próprio cluster:

    bmctl check config --cluster CLUSTER_NAME

  • Esse comando verifica se as máquinas e a rede estão prontas para a criação do cluster:

    bmctl check preflight --cluster CLUSTER_NAME

Não é possível criar clusters de usuário com bmctl (e há uma verificação de simulação para evitar isso).

Verificações de simulação para criação do cluster de usuário

Clusters de usuário são criados com base em um cluster admin ou híbrido existente e você usa kubectl para executar verificações de simulação. Com base nos resultados dessas verificações, é possível determinar se há erros e corrigi-los antes da criação do cluster de usuários.

Depois que um cluster híbrido ou administrador for criado e em execução, use o kubectl para executar verificações de simulação antes de criar um cluster de usuário.

  1. Crie um arquivo de configuração de cluster de usuário seguindo as etapas em Como criar clusters de usuários em uma configuração de vários clusters.

  2. Crie um namespace para o novo cluster de usuário. Por exemplo, para criar um novo cluster de usuário chamado user1, crie um namespace chamado cluster-user1. Este é o comando kubectl para criar o namespace, em que ADMIN_KUBECONFIG especifica o caminho para o arquivo kubeconfig do cluster de administrador:

    kubectl --kubeconfig ADMIN_KUBECONFIG create namespace cluster-user1
    

  3. Faça upload do arquivo de chave privada SSH no novo namespace como um secret para estabelecer suas credenciais. Aqui está o comando de amostra, em que ADMIN_KUBECONFIG especifica o caminho para o arquivo kubeconfig do cluster de administrador e SSH_PRIVATE_KEY_FILE_PATH especifica o caminho para o arquivo de chave privada SSH:

    kubectl --kubeconfig ADMIN_KUBECONFIG create secret generic ssh-key -n cluster-user1 --from-file=id_rsa=SSH_PRIVATE_KEY_FILE_PATH
    

  4. Crie um novo arquivo YAML de verificação de simulação com a estrutura a seguir: No campo configYAML, insira o conteúdo de texto do arquivo de configuração do cluster de usuário criado na etapa 1:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: PreflightCheck
    metadata:
    generateName: preflightcheck-
    namespace: cluster-user1
    spec:
    configYAML: |
    # insert user cluster config file content here.
    
  5. O comando kubectl a seguir executa a verificação de simulação do cluster de usuário, em que ADMIN_KUBECONFIG especifica o caminho para o arquivo kubeconfig do cluster de administrador e USER_CLUSTER_PREFLIGHT_CHECK_CONFIG especifica o caminho para o teste antecipado do arquivo YAML criado na etapa anterior:

    kubectl --kubeconfig ADMIN_KUBECONFIG create -f USER_CLUSTER_PREFLIGHT_CHECK_CONFIG
    
    Por exemplo, para um cluster de administrador chamado cluster1 e uma configuração de verificação de simulação do cluster de usuário chamada user1-preflight.yaml, o comando é:
    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
    
    O sistema retorna a seguinte mensagem, com o ID da verificação de simulação:
    preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created

  6. Consulte o status do job de verificação de simulação usando o comando kubectl:

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-user1 get preflightchecks preflightcheck-g7hfo4
    

Se o job de verificação de simulação falhar, verifique o status dele e verifique os registros detalhados do job para ver qual falhou. Corrija os problemas mencionados nos jobs adequadamente e execute as verificações novamente.

Verificações de simulação interna em clusters atuais

Os clusters do Anthos em bare metal também faz verificações de simulação interna quando você aplica recursos do Kubernetes a um cluster atual ou híbrido. Se alguma verificação falhar, os clusters do Anthos no bare metal não fará alterações nos nós relacionados, a menos que você tenha ignorado as verificações especificamente.

Ignorar verificações de simulação ao aplicar recursos do Kubernetes

Para ignorar as verificações de simulação interna ao aplicar recursos a clusters atuais, você precisa definir o campo BypassPreflightCheck como true no arquivo YAML do cluster.

Este é um fragmento de um arquivo YAML de configuração do cluster, mostrando o campo bypassPreflightCheck definido como true.

# Sample cluster config to bypass preflight check errors:

apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user1
  namespace: cluster-user1
spec:
  type: user
  bypassPreflightCheck: true
  # Anthos cluster version.
  anthosBareMetalVersion: v1.6.2
....

Como reativar verificações de simulação

É possível acionar explicitamente uma nova rodada de verificações de simulação. Assim, os clusters do Anthos em bare metal podem atualizar ou criar novos clusters após a conclusão desse processo.

  1. Crie um novo arquivo YAML de verificação de simulação com o conteúdo a seguir. Preencha os campos namespace e clusterName com o nome do cluster que você está criando:

    apiVersion: baremetal.cluster.gke.io/v1
    kind: PreflightCheck
    metadata:
    generateName: preflightcheck-
    namespace: CLUSTER_NAMESPACE
    spec:
    clusterName: CLUSTER_NAME
    

  2. Emita o comando kubectl para executar a verificação de simulação do cluster, em que ADMIN_KUBECONFIG especifica o caminho para o arquivo kubeconfig do cluster de administrador e CLUSTER_PREFLIGHT_CHECK_CONFIG especifica o caminho para o arquivo YAML de verificação de simulação criada anteriormente na etapa 1 de verificações de simulação para clusters de usuários:

    kubectl --kubeconfig ADMIN_KUBECONFIG create -f CLUSTER_PREFLIGHT_CHECK_CONFIG
    
    Por exemplo, para um cluster de administrador chamado cluster1 e uma configuração de verificação de simulação do cluster de usuário chamada user1-preflight.yaml, o comando é:
    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
    
    O sistema responde com o ID do job da verificação de simulação:
    preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
    

  3. Consulte o ID de status do job de verificação de simulação usando o comando kubectl:

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-cluster1 get preflightchecks preflightcheck-g7hfo4
    

Após a conclusão do job de verificação de simulação, os clusters do Anthos em bare metal criam o cluster e os recursos dele.

Detalhes da verificação de simulação da instalação

Os clusters do Anthos em bare metal verificam uma variedade de condições de sistema operacional, software e pré-requisito da máquina ao executar verificações de simulação.

Saiba mais detalhes em Visão geral dos pré-requisitos de instalação.