当服务收到请求但没有就绪 pods 时会发生什么?
What happens when a service receives a request but has no ready pods?
将 kubernetes service
(ClusterIP
类型)连接到一组 pod
,但其中 none 当前已准备就绪 - 会发生什么请求?
会不会:
- 急于失败
- 超时
- 等到准备好的 pod 可用(或永远,以较早者为准)
- 还有别的吗?
会超时
Kube-proxy 从健康的 pods 中提取 IP 地址并设置为服务的端点(后端)。另外,请注意,kube-proxy 所做的只是在您创建、删除或修改服务时重新编写 iptables。
因此,当您在网络中发送请求但没有人回复时,您的请求将会超时。
已部署nginx服务
[node1 ~]$ kubectl 获取 svc
名称类型群集 IP 外部 IP 端口年龄
kubernetes ClusterIP 10.96.0.1 443/TCP 2h
my-nginx ClusterIP 10.100.1.134 80/TCP 9s
$ 卷曲 10.100.1.134
curl: (7) 连接到 10.100.1.134:80 失败;连接被拒绝
部署nginx部署
$ kubectl create -f nginx-depl.yaml
$ kubectl 获取 po
姓名 READY STATUS RESTARTS AGE
my-nginx-f9945ffdd-2f77f 1/1 运行 0 1m
my-nginx-f9945ffdd-rk68v 1/1 运行 0 1m
$ 卷曲 10.100.1.134
欢迎使用 nginx!
您很可能会收到连接被拒绝的错误
将 kubernetes service
(ClusterIP
类型)连接到一组 pod
,但其中 none 当前已准备就绪 - 会发生什么请求?
会不会:
- 急于失败
- 超时
- 等到准备好的 pod 可用(或永远,以较早者为准)
- 还有别的吗?
会超时
Kube-proxy 从健康的 pods 中提取 IP 地址并设置为服务的端点(后端)。另外,请注意,kube-proxy 所做的只是在您创建、删除或修改服务时重新编写 iptables。
因此,当您在网络中发送请求但没有人回复时,您的请求将会超时。
已部署nginx服务
[node1 ~]$ kubectl 获取 svc
名称类型群集 IP 外部 IP 端口年龄
kubernetes ClusterIP 10.96.0.1 443/TCP 2h
my-nginx ClusterIP 10.100.1.134 80/TCP 9s
$ 卷曲 10.100.1.134
curl: (7) 连接到 10.100.1.134:80 失败;连接被拒绝
部署nginx部署
$ kubectl create -f nginx-depl.yaml
$ kubectl 获取 po
姓名 READY STATUS RESTARTS AGE
my-nginx-f9945ffdd-2f77f 1/1 运行 0 1m
my-nginx-f9945ffdd-rk68v 1/1 运行 0 1m
$ 卷曲 10.100.1.134