Под завис в состоянии завершения из-за ошибки iptables «Цепочка уже существует» в Kubernetes
Я столкнулся с необычной проблемой при развертывании Kubernetes с использованием диаграммы Mailu Helm, в частности
error killing pod: failed to "KillPodSandbox" for "237aa644-7634-4fa2-a538-f973e7f7dfab" with KillPodSandboxError: "rpc error: code = Unknown desc = failed to destroy network for sandbox \"cbbcf6eaaf47c0ef5b92b97187276d04def7bcef3e68b92889b7993ba970ce55\": plugin type=\"portmap\" failed (delete): could not teardown ipv4 dnat: running [/usr/sbin/iptables -t nat -N CNI-DN-0e851981d24bd2d807e1a --wait]: exit status 1: iptables: Chain already exists.\n"
Я использую небольшой кластер kubeadm 1.28 с Weave CNI и операционной системой Debian 11 для всех узлов.
Попытки принудительно удалить модуль не увенчались успехом. Эта проблема, по-видимому, связана с конфигурацией iptables, а именно с конфликтом, при котором цепочку невозможно разорвать, поскольку она уже существует (конфликт, поскольку команда в журнале событий намеревается создать цепочку, а не удалить ее).
Я не нашел много информации о том, как устранить эту конкретную ошибку.
Если я войду в ОС хоста затронутого узла и запущу `sudo iptables -t nat -N CNI-DN-0e851981d24bd2d807e1a --wait` , я действительно увижу проблему, отраженную в выводе:
iptables: Chain already exists.
Если я попытаюсь удалить цепочку с помощью
iptables v1.8.7 (nf_tables): CHAIN_USER_DEL failed (Device or resource busy): chain CNI-DN-0e851981d24bd2d807e1a
Я попытался перезапустить узел, но проблема все еще возникает.