
Ich versuche, den Client-Verkehr auf einen NodePort eines Kubernetes-Clusters umzuleiten, der auf 192.168.1.100.30000 (https-Port) lauscht.
Der Client muss eine Anfrage an 192.168.1.100.8000 stellen, daher habe ich die folgende REDIRECT-Regel in iptables hinzugefügt:
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
Ich erhalte jedoch die folgende Fehlermeldung:
# 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.
auch versucht, Remotesystem einzurichten, das inDasAntworten Sie und stellen Sie eine Anfrage an denselben Endpunkt. Sie erhalten den folgenden Fehler:
# 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
Ich weiß, dass die Netzwerkrichtlinien des Kubernetes-Clusters mit Calico-CRDs erzwungen werden. Ich habe der Netzwerkrichtlinie jedoch standardmäßig „Alles zulassen“ hinzugefügt, und trotzdem scheint der Datenverkehr immer noch zu hängen.
Ich habe außerdem die Protokolle des Ingress-Controllers geprüft, um zu sehen, ob die Anfrage dort angekommen ist, habe jedoch beim Stellen der Anfrage keine Protokollausgabe gesehen.
Das Seltsame ist, dass das direkte Curling des Knotenports https://192.168.1.100.30000/v1/api
funktioniert und ich eine erfolgreiche Antwort zurückbekomme.
Die Frage ist, warum Curling https://192.168.1.100:8000/v1/api (with the REDIRECT rule to 30000)
dazu führt, dass die Anfrage hängen bleibt.