为什么每次更新 pods 时我的 kubernetes 服务端点 IP 都会改变?
Why does my kubernetes service endpoint IP change every time I update the pods?
我有一个名为 staging
的 kubernetes 服务,它选择了所有 app=jupiter
pods。它在端口 1337 上公开了一个 HTTP 服务。这是描述输出:
$ kubectl describe service staging
Name: staging
Namespace: default
Labels: run=staging
Selector: app=jupiter
Type: NodePort
IP: 10.11.255.80
Port: <unnamed> 1337/TCP
NodePort: <unnamed> 30421/TCP
Endpoints: 10.8.0.21:1337
Session Affinity: None
No events.
但是当我在 RC 上 运行 一个 kubectl rolling-update
时,它删除了 1 个 pod 运行ning 应用程序并添加了另一个,然后 运行 再次描述,我得到:
$ kubectl describe service staging
Name: staging
Namespace: default
Labels: run=staging
Selector: app=jupiter
Type: NodePort
IP: 10.11.255.80
Port: <unnamed> 1337/TCP
NodePort: <unnamed> 30421/TCP
Endpoints: 10.8.0.22:1337
Session Affinity: None
No events.
一切都一样,除了端点 IP 地址。事实上,每次我这样做它都会增加 1。这是我希望不会改变的一件事,因为服务是对 pods 的抽象,所以当 pods 改变时它们不应该改变。
我知道您可以对端点地址进行硬编码,所以这更像是一种好奇心。
此外,谁能告诉我描述输出中的 IP
字段是做什么用的?
IP 是您的服务地址,它会随着时间的推移保持不变。端点是后端地址的集合,在给定的时间点,对服务地址的请求分布在这些后端地址上。每次包含您的服务的 pods 集合发生变化时,该集合都会发生变化,正如您在复制控制器 (RC) 上执行滚动更新时所注意到的那样。
我有一个名为 staging
的 kubernetes 服务,它选择了所有 app=jupiter
pods。它在端口 1337 上公开了一个 HTTP 服务。这是描述输出:
$ kubectl describe service staging
Name: staging
Namespace: default
Labels: run=staging
Selector: app=jupiter
Type: NodePort
IP: 10.11.255.80
Port: <unnamed> 1337/TCP
NodePort: <unnamed> 30421/TCP
Endpoints: 10.8.0.21:1337
Session Affinity: None
No events.
但是当我在 RC 上 运行 一个 kubectl rolling-update
时,它删除了 1 个 pod 运行ning 应用程序并添加了另一个,然后 运行 再次描述,我得到:
$ kubectl describe service staging
Name: staging
Namespace: default
Labels: run=staging
Selector: app=jupiter
Type: NodePort
IP: 10.11.255.80
Port: <unnamed> 1337/TCP
NodePort: <unnamed> 30421/TCP
Endpoints: 10.8.0.22:1337
Session Affinity: None
No events.
一切都一样,除了端点 IP 地址。事实上,每次我这样做它都会增加 1。这是我希望不会改变的一件事,因为服务是对 pods 的抽象,所以当 pods 改变时它们不应该改变。
我知道您可以对端点地址进行硬编码,所以这更像是一种好奇心。
此外,谁能告诉我描述输出中的 IP
字段是做什么用的?
IP 是您的服务地址,它会随着时间的推移保持不变。端点是后端地址的集合,在给定的时间点,对服务地址的请求分布在这些后端地址上。每次包含您的服务的 pods 集合发生变化时,该集合都会发生变化,正如您在复制控制器 (RC) 上执行滚动更新时所注意到的那样。