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 arquivokubeconfig
do cluster de administrador associado. Obmctl
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
:
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 porcluster-
. Por exemplo, se você nomear o clustertest
, o namespace terá um nome comocluster-test
.ADMIN_KUBECONFIG_PATH
: o caminho para o arquivokubeconfig
do cluster de administrador associado.
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
ehaproxy
. - Exclui os arquivos de configuração de
keepalived
ehaproxy
.
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.