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