gpt4 book ai didi

Kubernetes:服务外部 IP 不工作

转载 作者:行者123 更新时间:2023-12-03 16:26:29 25 4
gpt4 key购买 nike

我正在私有(private)实验室中部署 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 请求正在通过,但没有回复。

External IP 在服务中是如何工作的?

最佳答案

如果你查看 github 中的 kubectl 源代码,你会发现external-ip只在kubectl expose中有记录,描述如下:

cmd.Flags().String("external-ip", "", i18n.T("Additional external IP address (not managed by Kubernetes) to accept for the service. If this IP is routed to a node, the service can be accessed by this IP in addition to its generated service IP."))

当向服务添加 external-ip 参数时,Kubernete 可能什么都不做,因为它不管理此 IP 的行为及其在集群内的路由。它只是假定此 IP 将被路由到集群中的一个节点。它将被视为与生成的服务 IP 相同。

要使外部 IP 正常工作,应应用类似于服务类型 LoadBalancerNodePort 的配置。我认为这更像是一个注释目​​的。

关于Kubernetes:服务外部 IP 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48602528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com