
Я пытаюсь направить клиентский трафик на кластер Kubernetes NodePort, прослушивающий 192.168.1.100.30000 (порт https).
Клиенту необходимо сделать запрос на 192.168.1.100.8000, поэтому я добавил следующее правило REDIRECT в iptables:
iptables -t nat -I PREROUTING -p tcp --dst 192.168.1.100 --dport 8000 -j REDIRECT --to-port 30000
iptables -t nat -I OUTPUT -d 192.168.1.100 -p tcp --dport 8000 -j REDIRECT --to-port 30000
Однако я получаю следующую ошибку:
# curl -vk https://192.168.1.100:8000/v1/api
* About to connect() to 192.168.1.100 port 8000 (#0)
* Trying 192.168.1.100...
* Connected to 192.168.1.100 (192.168.1.100) port 8000 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* NSS error -12263 (SSL_ERROR_RX_RECORD_TOO_LONG)
* SSL received a record that exceeded the maximum permissible length.
* Closing connection 0
curl: (35) SSL received a record that exceeded the maximum permissible length.
также попытался настроить удаленную систему, указанную вэтотответил и сделал запрос к той же конечной точке и получил следующую ошибку:
# ip netns exec remotesystem curl -vk https://192.168.1.100:8000/v1/api
* About to connect() to 192.168.1.100 port 8000 (#0)
* Trying 192.168.1.100...
* Connection timed out
* Failed connect to 192.168.1.100:8000; Connection timed out
* Closing connection 0
curl: (7) Failed connect to 192.168.1.100:8000; Connection timed out
Я знаю, что в кластере Kubernetes сетевые политики реализованы с помощью Calico CRD, однако я добавил в сетевую политику разрешение по умолчанию для всех, но трафик, похоже, все еще зависает.
Я также проверил журналы ingress-controller, чтобы узнать, дошел ли туда запрос, но не увидел никаких записей в журнале при отправке запроса.
Странно то, что прямое скручивание порта узла https://192.168.1.100.30000/v1/api
работает, и я получаю успешный ответ.
Вопрос в том, почему завёртывание https://192.168.1.100:8000/v1/api (with the REDIRECT rule to 30000)
приводит к зависанию запроса?