kubeadm reset

kubeadm reset

Виконує максимально можливий відкат змін, зроблених командами kubeadm init або kubeadm join.

Опис

Виконує максимально можливий відкат змін, зроблених на цьому хості командами 'kubeadm init' або 'kubeadm join'

Команда "reset" виконує наступні фази:

preflight           Run reset pre-flight checks
remove-etcd-member  Remove a local etcd member.
cleanup-node        Run cleanup node.
kubeadm reset [flags]

Параметри

--cert-dir string     Типово: "/etc/kubernetes/pki"

Шлях до теки, де зберігаються сертифікати. Якщо вказано, очистити цю теку.

--cleanup-tmp-dir

Очистити теку "/etc/kubernetes/tmp"

--config string

Шлях до конфігураційного файлу kubeadm.

--cri-socket string

Шлях до сокета CRI для підключення. Якщо порожньо, kubeadm спробує автоматично визначити це значення; використовуйте цей параметр лише якщо у вас встановлено більше одного CRI або якщо у вас нестандартний сокет CRI.

--dry-run

Не застосовувати жодних змін; лише вивести, що було б зроблено.

-f, --force

Виконати reset вузла без запиту на підтвердження.

-h, --help

довідка для reset

--ignore-preflight-errors strings

Список перевірок, помилки яких будуть показані як попередження. Приклад: 'IsPrivilegedUser,Swap'. Значення 'all' ігнорує помилки всіх перевірок.

--kubeconfig string     Типово: "/etc/kubernetes/admin.conf"

Файл kubeconfig, який використовується для спілкування з кластером. Якщо прапорець не встановлено, може бути переглянутий набір стандартних місць для пошуку наявного файлу kubeconfig.

--skip-phases strings

Список фаз, які потрібно пропустити

Параметри, успадковані від батьківських команд

--rootfs string

Шлях до 'справжньої' кореневої файлової системи хоста. Це змусить kubeadm виконати chroot у вказаний шлях.

Процес скидання

kubeadm reset відповідає за очищення локальної файлової системи вузла від файлів, створених за допомогою команд kubeadm init або kubeadm join. Для вузлів панелі управління reset також видаляє з кластера etcd локального члена stacked etcd цього вузла.

kubeadm reset phase можна використовувати для виконання окремих фаз наведеного вище процесу. Щоб пропустити список фаз, ви можете використовувати прапорець --skip-phases, який працює аналогічно до механізмів запуску фаз kubeadm join та kubeadm init.

kubeadm reset також підтримує прапорець --config для передачі структури ResetConfiguration.

Очищення зовнішніх членів etcd

kubeadm reset не видалить жодних даних etcd, якщо використовується зовнішній etcd. Це означає, що якщо ви знову виконаєте kubeadm init з використанням тих самих точок доступу etcd, ви побачите стан від попередніх кластерів.

Щоб видалити дані etcd, рекомендується використовувати клієнт, такий як etcdctl, наприклад:

etcdctl del "" --prefix

Дивіться документацію etcd для отримання додаткової інформації.

Очищення конфігурації CNI

Втулки CNI використовують теку /etc/cni/net.d для зберігання своїх конфігурацій. Команда kubeadm reset не очищує цю теку. Залишення конфігурації втулка CNI на хості може бути проблематичним, якщо той самий хост пізніше буде використано як новий вузол Kubernetes, а у цьому кластері буде розгорнуто інший втулок CNI. Це може призвести до конфлікту конфігурації між втулками CNI.

Щоб очистити теку, створіть резервну копію її вмісту, якщо потрібно, а потім виконайте наступну команду:

sudo rm -rf /etc/cni/net.d

Очищення правил мережевого трафіку

Команда kubeadm reset не очищує жодних правил iptables, nftables або IPVS, застосованих kube-proxy до хоста. Цикл контролю в kube-proxy гарантує, що правила на кожному вузлі будуть синхронізовані. Додаткові відомості наведено у статті Віртуальні IP-адреси та проксі-сервери Service.

Якщо залишити правила без очищення, не повинно виникнути жодних проблем, якщо хост пізніше буде повторно використано як вузол Kubernetes або якщо він слугуватиме для інших цілей.

Якщо ви бажаєте виконати таке очищення, ви можете використати той самий контейнер kube-proxy, який використовувався у вашому кластері, і прапорець --cleanup у бінарному файлі kube-proxy:

docker run --privileged --network=host -v /lib/modules:/lib/modules:ro --rm registry.k8s.io/kube-proxy:v1.37.0 sh -c "kube-proxy --cleanup && echo DONE"

Наприкінці виконання наведеної вище команди має бути виведено DONE. Замість Docker для запуску контейнера ви можете скористатися вашим улюбленим середовищем виконання контейнерів.

Очищення $HOME/.kube

Тека $HOME/.kube зазвичай містить конфігураційні файли та кеш kubectl. Хоча залишення вмісту $HOME/.kube/cache без очищення не є проблемою, у цій теці є один важливий файл. Це $HOME/.kube/config, і він використовується kubectl для автентифікації в API-сервері Kubernetes. Після завершення kubeadm init користувачеві пропонується скопіювати файл /etc/kubernetes/admin.conf у розташування $HOME/.kube/config і надати доступ до нього поточному користувачеві.

Команда kubeadm reset не очищує вміст теки $HOME/.kube. Залишення файлу $HOME/.kube/config без видалення може бути проблематичним, залежно від того, хто матиме доступ до цього хосту після виклику kubeadm reset. Якщо той самий кластер продовжує існувати, наполегливо рекомендуємо видалити цей файл, оскільки облікові дані адміністратора, що зберігаються в ньому, залишатимуться дійсними.

Щоб очистити теку, перегляньте її вміст, виконайте резервне копіювання, якщо потрібно, і виконайте наступну команду:

rm -rf $HOME/.kube

Коректне завершення роботи kube-apiserver

Якщо ваш kube-apiserver налаштований з прапорцем --shutdown-delay-duration, ви можете виконати наступні команди, щоб спробувати коректно завершити роботу запущеного Podʼа API-сервера, перед тим як виконати kubeadm reset:

yq eval -i '.spec.containers[0].command = []' /etc/kubernetes/manifests/kube-apiserver.yaml
timeout 60 sh -c 'while pgrep kube-apiserver >/dev/null; do sleep 1; done' || true

Що далі

  • kubeadm init для ініціалізації вузла панелі управління Kubernetes
  • kubeadm join для ініціалізації робочого вузла Kubernetes та приєднання його до кластера
Змінено November 05, 2026 at 10:41 PM PST: [uk] Add kubeadm reference pages and generated includes (a6b040015a)