Перейти к содержанию

Очистка ноды от компонентов k8s

Предисловие

Эта инструкция поможет очистить сервер самостоятельно, без машинерии.

Действия приведут к полному удалению всех данных, связанных с kubernetes, в том числе и персистентного хранилища.

Очистка от неудачной попытки установки

В случае неудачной попытки установки кластера, на всех узлах выполните следующие действия:

  1. Остановите Host-агент

    sudo systemctl stop host-agent.service
    

  2. Удалите файл конфигурации

    sudo rm /root/.byoh/config
    

  3. Перезапустите Host-агент

    sudo systemctl start host-agent.service
    

  4. Проверьте статус запуска Host-агент

    sudo systemctl status host-agent.service  
    sudo journalctl -xe -u host-agent -f  
    

Зачистка

Мы рекомендуем пользоваться автоматическим способом зачистки ноды от компонентов kubernetes.
Для автоматической зачистки ноды воспользуйтесь командой:

byoh-agent clean-k8s

Заметка

Команду автоматической зачистки следует выполнять отдельно на проблемном узле, либо на каждом из используемых узлов, при развертывании нового кластера.

При необходимости ручной зачистки ноды от компонентов выполните следующие действия:

Сначала установите базовый путь хранения артефактов. Это значение динамическое, поэтому задайте его вручную, посмотрев в директорию:

/var/lib/byoh/bundles

Пример структуры директории:

/var/lib/byoh/bundles
└── harbor.bootsman.host
    └── bootsman-nimbus
        └── common-artifacts
            └── cluster-api-byoh-redos-bundle
                └── byoh-bundle-redos_7.3.2_x86-64_k8s:v1.27.4
                    ├── conf.tar
                    ├── containerd.tar
                    ├── cri-tools.rpm
                    ├── imgpkg
                    ├── kubeadm.rpm
                    ├── kubectl.rpm
                    ├── kubelet.rpm
                    └── kubernetes-cni.rpm
Найдя полный путь до артефактов, объявите переменную:

Пример объявления переменной:

export BUNDLE_PATH=/var/lib/byoh/bundles/harbor.bootsman.host/bootsman-nimbus/common-artifacts/cluster-api-byoh-redos-bundle/byoh-bundle-redos_7.3.2_x86-64_k8s\:v1.27.4/
Теперь можно очистить сервер.

Сбросьте состояние kubernetes на машине

kubeadm reset

Отключите containerd

systemctl stop containerd && systemctl disable containerd

Зачистите артефакты

rm -rf /opt/cni/ && rm -rf /etc/cni/ && rm -rf /opt/containerd/ && rm -rf /var/lib/containerd/ &&   tar tf "$BUNDLE_PATH/containerd.tar" | xargs -n 1 echo '/' | sed 's/ //g'  | grep -e '[^/]$' | xargs rm -f

Зачистите хранилище PV

rm -rf /var/lib/longhorn

Удалите пакеты kubernetes

rpm -e cri-tools kubeadm kubectl kubelet kubernetes-cni
dpkg -P cri-tools kubeadm kubectl kubelet kubernetes-cni

Удалите конфигурации ОС

tar tf "BUNDLE_PATH/conf.tar" | xargs -n 1 echo '/' | sed 's/ //g' | grep -e "[^/]$" | xargs rm -f

Удалите модули ядра

modprobe -rq overlay && modprobe -r br_netfilter

Удалите сетевые интерфейсы

for interface in cilium_net cilium_vxlan lxc_health; do ip a show interface && ip link delete interface || true; done

Удалите артефакты боцмана

rm -rf BUNDLE_PATH

Sudo

rm /root/.byoh/config && sudo systemctl restart host-agent && sudo systemctl status host-agent