Я создал кластер, используя kudeadm
и все работает нормально до тех пор, пока я не пытаюсь настроить правила брандмауэра, такие как разрешение только 10.0.0.0/8
трафик. Это каким-то образом отключает мой модуль VPN (Wireguard) для подключения к Kubernetes. куб-dns
с моей локальной машины. Происходит какая-то черная магия, которая выше моей зарплаты.
Если я разрешаю весь трафик со всех общедоступных IP-адресов в кластере, все снова работает нормально. Так что я думаю, что это потому, что kube-прокси
использует только эти общедоступные IP-адреса и каким-то образом проксирует соединения через них. Решением этого будет принудительное кубелет
и kube-прокси
использовать только частные IP-адреса экземпляров (10.0.0.0/8
).
Я пытался:
- Параметр
кубелет
х --node-ip
(видеть здесь). кубелет
Затем процесс запускается с этой опцией и устанавливает некоторую аннотацию на этом узле (например, alpha.kubernetes.io/provided-node-ip: 10.0.3.1
), но IP-адрес kube-прокси
pod не меняется (после перезагрузки). Кто-то сказал, что Kubernetes берет IP-адрес, указанный облачным провайдером (см. здесь), если он предоставлен, но мой облачный провайдер этого не делает (см. здесь). я также использовал сброс кубеадм
и позвольте узлу воссоединиться, просто чтобы убедиться.
- Параметр
адрес привязки
в kube-прокси
ConfigMap также не имеет никакого эффекта. Я установил там IP узла и перезапустил его kube-прокси
чтобы проверить это. Нет эффекта. Не нашел способа настроить это на диске самой ноды, т.к. kube-прокси
использует только ConfigMap kube-прокси
как объем.
Может быть интересно:
- Версия Кубернета: 1.24
- Облачный провайдер: Hetzner
Спасибо за любую помощь!