Перейти к содержимому

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

Предисловие ​

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

Внимание

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

Зачистка ​

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

bash
/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

Найдя полный путь до артефактов, объявите переменную:

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

bash
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 на машине ​

bash
kubeadm reset

Отключите containerd ​

bash
systemctl stop containerd && systemctl disable containerd

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

bash
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 ​

bash
rm -rf /var/lib/longhorn

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

bash
rpm -e cri-tools kubeadm kubectl kubelet kubernetes-cni

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

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

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

bash
modprobe -rq overlay && modprobe -r br_netfilter

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

bash
for interface in cilium_net cilium_vxlan lxc_health; do ip a show {++"${interface}"++} && ip link delete {++"${interface}"++} || true; done

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

bash
rm -rf {++$BUNDLE_PATH++}

Команда Боцман