Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Removendo Componentes do Kubernetes dos Nós

Esta seção descreve como desconectar um nó de um cluster Kubernetes iniciado pelo Rancher e remover todos os componentes do Kubernetes do nó. Este processo permite que você use o nó para outros fins.

Quando você usa o Rancher para instalar o Kubernetes em novos nós em um provedor de infraestrutura, recursos (contêineres/interfaces de rede virtual) e itens de configuração (certificados/arquivos de configuração) são criados.

Ao remover nós do seu cluster Kubernetes iniciado pelo Rancher (desde que estejam no estado Active), esses recursos são limpos automaticamente, e a única ação necessária é reiniciar o nó. Quando um nó se torna inacessível e o processo de limpeza automática não pode ser usado, descrevemos os passos que precisam ser executados antes que o nó possa ser adicionado a um cluster novamente.

O que é removido?

Ao limpar nós provisionados usando o Rancher, os seguintes componentes são excluídos com base no tipo de nó de cluster que você está removendo.

Componente Removido Nós Hospedados por Provedor de Infraestrutura Nós Personalizados Cluster Hospedado Nós Registrados

O namespace de implantação do Rancher (cattle-system por padrão)

serviceAccount, clusterRoles e clusterRoleBindings rotulados pelo Rancher

Rótulos, Anotações e Finalizadores

Implantação do Rancher

Máquinas, clusters, projetos e definições de recursos personalizados (CRDs)

Todos os recursos criados sob o management.cattle.io Grupo de API

Todos os CRDs criados pelo Rancher v2.x

Removendo um Nó de um Cluster pela Interface do Rancher

Quando o nó está no estado Active, remover o nó de um cluster acionará um processo para limpar o nó. Por favor, reinicie o nó após o processo automático de limpeza ser concluído para garantir que quaisquer dados não persistentes sejam removidos corretamente.

Para reiniciar um nó:

# using reboot
$ sudo reboot

# using shutdown
$ sudo shutdown -r now

Removendo Componentes do Rancher de um Cluster Manualmente

Quando um nó está inacessível e removido do cluster, o processo automático de limpeza não pode ser acionado porque o nó está inacessível. Por favor, siga os passos abaixo para remover manualmente os componentes do Rancher.

Os comandos listados abaixo removerão dados do nó. Certifique-se de ter criado um backup dos arquivos que deseja manter antes de executar qualquer um dos comandos, pois os dados serão perdidos.

Removendo Componentes do Rancher de Clusters Registrados

Para clusters registrados, o processo de remoção do Rancher é um pouco diferente. Você tem a opção de simplesmente excluir o cluster na interface do Rancher, ou pode executar um script que remove os componentes do Rancher dos nós. Ambas as opções realizam as mesmas exclusões.

Após o cluster registrado ser desanexado do Rancher, as cargas de trabalho do cluster não serão afetadas e você pode acessar o cluster usando os mesmos métodos que usou antes do cluster ser registrado no Rancher.

  • Por UI / API

  • Por script

Este processo removerá dados do seu cluster. Certifique-se de ter criado um backup dos arquivos que deseja manter antes de executar o comando, pois os dados serão perdidos.

Após iniciar a remoção de um cluster registrado usando a interface do Rancher (ou API), os seguintes eventos ocorrem.

  1. O Rancher cria um serviceAccount que usa para remover os componentes do Rancher do cluster. Esta conta é atribuída às permissões clusterRole e clusterRoleBinding, que são necessárias para remover os componentes do Rancher.

  2. Usando o serviceAccount, o Rancher agenda e executa um job que limpa os componentes do Rancher do cluster. Esse job também faz referência ao serviceAccount e suas funções como dependências, então o job os exclui antes de sua conclusão.

  3. O Rancher é removido do cluster. No entanto, o cluster persiste, executando a versão nativa do Kubernetes.

Resultado: Todos os componentes listados para clusters registrados em O Que é Removido? são excluídos.

Em vez de limpar os nós do cluster registrado usando a interface do Rancher, você pode executar um script em vez disso.

Pré-requisitos

Instale kubectl.

  1. Abra um navegador da web, navegue até GitHub e baixe user-cluster.sh.

  2. Torne o script executável executando o seguinte comando a partir do mesmo diretório que user-cluster.sh:

    chmod +x user-cluster.sh
  3. Ambientes de Air Gap Somente: Abra user-cluster.sh e substitua yaml_url pela URL em user-cluster.yml.

    Se você não tiver um ambiente de air gap, pule esta etapa.

  4. Do mesmo diretório, execute o script e forneça a versão da imagem rancher/rancher-agent, que deve ser igual à versão do Rancher usada para gerenciar o cluster. (<RANCHER_VERSION>):

    Adicione a flag -dry-run para visualizar o resultado do script sem fazer alterações.

    ./user-cluster.sh rancher/rancher-agent:<RANCHER_VERSION>

Resultado: O script é executado. Todos os componentes listados para clusters registrados em O Que é Removido? são excluídos.

Limpando Nós

  • RKE2

  • K3s

Para instruções sobre como limpar nós em clusters RKE2 que não foram implantados pelo Rancher, consulte a documentação oficial do RKE2 sobre desinstalação de clusters.

Você precisa remover os seguintes componentes dos nós RKE2 provisionados pelo Rancher:

  • O rancher-system-agent, que se conecta ao Rancher e instala e gerencia o RKE2.

  • RKE2 itself.

Removendo o rancher-system-agent

Para remover o rancher-system-agent, execute o script system-agent-uninstall.sh:

curl https://raw.githubusercontent.com/rancher/system-agent/main/system-agent-uninstall.sh > system-agent-uninstall.sh
sudo sh system-agent-uninstall.sh

Removendo o RKE2

Para remover a instalação do RKE2, execute o script rke2-uninstall que já está presente no nó:

sudo rke2-uninstall.sh

Você precisa remover os seguintes componentes dos nós K3s provisionados pelo Rancher:

  • O rancher-system-agent, que se conecta ao Rancher e instala e gerencia o K3s.

  • K3s itself.

Removendo o rancher-system-agent

Para remover o rancher-system-agent, execute o script system-agent-uninstall.sh:

curl https://raw.githubusercontent.com/rancher/system-agent/main/system-agent-uninstall.sh > system-agent-uninstall.sh
sudo sh system-agent-uninstall.sh

Removendo o K3s

Para remover a instalação do K3s, execute o script k3s-uninstall que já está presente no nó:

sudo k3s-uninstall.sh

Diretórios e arquivos

Os seguintes diretórios são usados ao adicionar um nó a um cluster e devem ser removidos. Você pode remover um diretório usando rm -rf /directory_name.

Dependendo do papel que você atribuiu ao nó, certos diretórios podem ou não estar presentes no nó.

  • RKE2

  • K3s

Diretórios

/etc/ceph

/etc/cni

/etc/kubernetes

/etc/rancher

/opt/cni

/run/calico

/run/flannel

/run/secrets/kubernetes.io

/var/lib/calico

/var/lib/cni

/var/lib/etcd

/var/lib/kubelet

/var/lib/rancher

/var/lib/weave

/var/log/containers

/var/log/pods

/var/run/calico

Para limpar os diretórios:

rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /etc/rancher \
       /opt/cni \
       /run/calico \
       /run/flannel \
       /run/secrets/kubernetes.io \
       /var/lib/calico \
       /var/lib/cni \
       /var/lib/etcd \
       /var/lib/kubelet \
       /var/lib/rancher \
       /var/lib/weave \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico
Diretórios

/etc/ceph

/etc/cni

/etc/kubernetes

/etc/rancher

/etc/systemd/system/k3s

/opt/cni

/run/calico

/run/flannel

/run/secrets/kubernetes.io

/usr/local/bin/k3s

/var/lib/calico

/var/lib/cni

/var/lib/etcd

/var/lib/kubelet

/var/lib/rancher

/var/lib/weave

/var/log/containers

/var/log/pods

/var/run/calico

Para limpar os diretórios:

rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /etc/rancher \
       /etc/systemd/system/k3s \
       /opt/cni \
       /run/calico \
       /run/flannel \
       /run/secrets/kubernetes.io \
       /usr/local/bin/k3s \
       /var/lib/calico \
       /var/lib/cni \
       /var/lib/etcd \
       /var/lib/kubelet \
       /var/lib/rancher \
       /var/lib/weave \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico

Interfaces de Rede e Iptables

Os dois componentes restantes que são alterados/configurados são as interfaces de rede (virtuais) e as regras do iptables. Ambos não são persistentes no nó, o que significa que serão limpos após uma reinicialização do nó. Para remover esses componentes, uma reinicialização é recomendada.

Para reiniciar um nó:

# using reboot
$ sudo reboot

# using shutdown
$ sudo shutdown -r now

Se você quiser saber mais sobre interfaces de rede (virtuais) ou regras do iptables, consulte os assuntos específicos abaixo.

Interfaces de rede

Dependendo do provedor de rede configurado para o cluster do qual o nó fazia parte, algumas das interfaces estarão ou não presentes no nó.

Interfaces

flannel.1

cni0

tunl0

caliXXXXXXXXXXX (nomes de interfaces aleatórias)

vethXXXXXXXX (nomes de interfaces aleatórias)

Para listar todas as interfaces:

# Using ip
ip address show

# Using ifconfig
ifconfig -a

Para remover uma interface:

ip link delete interface_name

Iptables

Dependendo do provedor de rede configurado para o cluster do qual o nó fazia parte, algumas das cadeias estarão ou não presentes no nó.

As regras do iptables são usadas para rotear o tráfego de e para os contêineres. As regras criadas não são persistentes, portanto reiniciar o nó restaurará o iptables ao seu estado original.

Cadeias

cali-failsafe-in

cali-failsafe-out

cali-fip-dnat

cali-fip-snat

cali-from-hep-forward

cali-from-host-endpoint

cali-from-wl-dispatch

cali-fw-caliXXXXXXXXXXX (nomes de cadeias aleatórias)

cali-nat-outgoing

cali-pri-kns.NAMESPACE (cadeia por namespace)

cali-pro-kns.NAMESPACE (cadeia por namespace)

cali-to-hep-forward

cali-to-host-endpoint

cali-to-wl-dispatch

cali-tw-caliXXXXXXXXXXX (nomes de cadeias aleatórias)

cali-wl-to-host

KUBE-EXTERNAL-SERVICES

KUBE-FIREWALL

KUBE-MARK-DROP

KUBE-MARK-MASQ

KUBE-NODEPORTS

KUBE-SEP-XXXXXXXXXXXXXXXX (nomes de cadeias aleatórias)

KUBE-SERVICES

KUBE-SVC-XXXXXXXXXXXXXXXX (nomes de cadeias aleatórias)

Para listar todas as regras do iptables:

iptables -L -t nat
iptables -L -t mangle
iptables -L