Google compute engine 为什么每次更新POD时我的kubernetes服务端点IP都会改变?

Google compute engine 为什么每次更新POD时我的kubernetes服务端点IP都会改变?,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我有一个kubernetes服务,名为staging,它选择所有app=jupiterpods。它在端口1337上公开HTTP服务。以下是描述输出: $ kubectl describe service staging Name: staging Namespace: default Labels: run=staging Selector: app=jupiter Type: NodePort IP:

我有一个kubernetes服务,名为
staging
,它选择所有
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.
除了端点IP地址之外,所有内容都是相同的。事实上,每次我这样做,它都会上升1。这是我希望不会改变的一件事,因为服务是对pod的抽象,所以当pod改变时,它们不应该改变

我知道您可以对端点地址进行硬编码,因此这更像是一种好奇


另外,有人能告诉我描述输出中的
IP
字段用于什么吗?

IP是您的服务地址,它随时间保持不变。端点是后端地址的集合,在给定的时间点,对服务地址的请求在这些地址之间传播。正如您在复制控制器(RC)上执行滚动更新时所注意到的那样,每次组成服务的POD集更改时,该集合都会更改。

这很有道理,但我似乎无法通过IP访问服务,无论是在端口1337还是端口80。(端点IP/端口工作。)可能这与它是一个NodePort服务有关,但从文档中看,它似乎不是。将此问题发布在此处:
$ 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.