0

我有一个名为staging的kubernetes服务,它可以选择所有app=jupiter吊舱。它暴露在端口1337的HTTP服务这里的描述输出:为什么每次更新Pod时,我的kubernetes服务端点IP都会更改?

$ 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,这消除了1个荚运行的应用程序,并增加了一个运行kubectl rolling-update,并再次运行形容,我得到:

$ 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。这是我期望不会改变的一件事,因为服务是一个对pod的抽象,所以当pod改变时它们不应该改变。

我知道你可以硬编码端点地址,所以这更多的是好奇心。

另外,任何人都可以告诉我描述输出中的IP字段是用于什么?

回答

3

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

+0

这非常合理,但我似乎无法通过IP访问服务,无论是在端口1337还是端口80.(端点IP /端口工作。)也许这与它是一个NodePort服务有关,但从文档看来,它似乎不是。 – tmandry

+0

在此发布此问题:http://stackoverflow.com/questions/32618437/why-cant-i-access-my-kubernetes-service-via-its-ip – tmandry

相关问题