Redefinir ou excluir clusters atuais

Redefinir clusters com bmctl reset cluster

Quando a instalação de um cluster falha, é possível retornar os nós para um estado limpo redefinindo o cluster. A redefinição de um cluster faz com que ele seja excluído. Depois de excluído, é possível reinstalar o cluster após fazer as alterações de configuração necessárias.

No contexto deste documento, os termos redefinição e exclusão são usados alternadamente.

Redefinir clusters autogerenciados

Para redefinir um cluster que se gerencia, como um cluster de administrador, emita o seguinte comando:

bmctl reset --cluster CLUSTER_NAME

Substitua CLUSTER_NAME pelo nome do cluster que você está redefinindo.

Redefinir clusters de usuários

Há duas maneiras de excluir ou redefinir clusters de usuário, usando bmctl ou kubectl, respectivamente. Usar bmctl é a maneira recomendada de redefinir clusters de usuário.

Usar bmctl para redefinir um cluster de usuário

Execute o seguinte comando para redefinir um cluster de usuário com bmctl:

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

Substitua:

  • CLUSTER_NAME: o nome do cluster de usuário que você está redefinindo.

  • ADMIN_KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do cluster de administrador associado. O bmctl tem suporte para o uso de --kubeconfig como um alias para a sinalização --admin-kubeconfig.

Usar kubectl para excluir um cluster de usuário

Para usar kubectl para excluir um cluster de usuário, primeiro exclua o objeto do cluster e, em seguida, o namespace dele. Caso contrário, os jobs para redefinir máquinas não poderão ser criados, e o processo de exclusão poderá ficar travado indefinidamente.

Para excluir um cluster de usuário com kubectl:

  1. Execute este comando para excluir o objeto do cluster:

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster de usuário que você está excluindo.

    • CLUSTER_NAMESPACE: o namespace do cluster. Por padrão, os namespaces do cluster para os clusters do Anthos em bare metal são o nome do cluster precedido por cluster-. Por exemplo, se você nomear o cluster test, o namespace terá um nome como cluster-test.

    • ADMIN_KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do cluster de administrador associado.

  2. Depois que o cluster for excluído, execute o seguinte comando para excluir o namespace:

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
    

Redefinir detalhes do cluster

Independentemente do tipo de cluster, o comando de redefinição se aplica a todo o cluster. Não há opção para especificar um subconjunto de nós em um cluster.

A saída do comando bmctl cluster reset será semelhante a esta amostra:

bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

Durante a operação de redefinição, bmctl primeiro exclui o registro de associação do GKE Hub e limpa os nós afetados. Durante a redefinição, as ativações de armazenamento e os dados do anthos-system StorageClass também são excluídos.

Para todos os nós, o bmctl executa kubeadm reset, remove as interfaces de túnel usadas para a rede de cluster e exclui os seguintes diretórios:

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

Para os nós do balanceador de carga, bmctl também executa as seguintes ações:

  • Desativa os serviços keepalived e haproxy.
  • Exclui os arquivos de configuração de keepalived e haproxy.

O comando bmctl reset espera que o arquivo de configuração do cluster esteja no diretório de trabalho atual. Por padrão, o caminho é semelhante a este: bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

Se você usou a sinalização --workspacel-dir para especificar um diretório diferente durante a criação do cluster, use a sinalização para especificar o diretório de trabalho durante a redefinição do cluster.