我正在私有实验室中部署k8s,并在k8s服务中使用--external-ip选项:
Name: my-service
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=myapp
Type: ClusterIP
IP: 10.98.4.250
External IPs: 10.10.16.21
Port: http 80/TCP
TargetPort: 80/TCP
Endpoints: 192.168.237.3:80
Session Affinity: None
Events: <none>
user@k8s-master:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 22h
my-service ClusterIP 10.98.4.250 10.10.16.21 80/TCP 7m
但我只能通过外部 IP 从同一节点(k8s-master)对端点进行curl。如果我使用其他节点(与k8s-master相同的子网),curl将无法正常工作。
运行tcpdump,我可以看到http请求已经通过,但没有回复。
服务中的外部IP是如何工作的?