如何kubernetes的kube-schedule、kube-controller的服务地址


有俩个问题:
如下图1,我想修改kubernetes的kube-schedule、kube-controller的服务地址,是改哪个配置文件呢?
/etc/kubernetes的配置文件都看过了 好像没有相关配置信息啊。
EP5DL}@R1S}5W(224OK0N50.png


如下图2, 我创建了一个service,为什么查看的时候会多出来一个IP地址?是我哪里设置有问题吗?

QQ截图20150526214441.png

apiVersion: v1beta3
kind: Service
metadata:
labels:
name: webserver
name: webserver-service
namespace: default
spec:
ports:
- port: 80
publicIPs:
- 192.168.1.16
selector:
name: webserver

kubectl create -f web-service.yaml


谢谢。

我是参考红帽的文档来操作的
https://access.redhat.com/articles/1353773
已邀请:

MapleWang

赞同来自:


1 关于第一个问题,你在netstat里面看到有两个地址,一个local,一个foreign, local不用多说,foreign的0.0.0.0是指host上所有的除local外的IP地址,当然也包括了你想要设置的192.168.1.16,这意味着你完全已经可以使用这个IP访问到你这个服务了。所以你不需要再特意去设置,如果非要限定到这个IP,那controller-manager来说,在/etc/kubernetes/controller-manager中设置KUBE_CONTROLLER_MANAGER_ARGS=“--address=192.168.1.16”,具体可参见“man kube-controller-manager”

2 关于第二个问题,其实你指的那个多出来地址取自“10.254.0.0/16”,这个是kube-proxy使用的地址段,在/etc/kubernetes/apiserver中可以设置的,请用“iptables -L -t nat -n”先查看一下你的iptable,你就会发现,所有的访问“192.168.1.16:80”的ip packet都被redirect到本地的一个random port上,proxy从这个port得到packet,并把它转发给后面的pod暴露的端口(这时候的源地址10.254.95.32),然后pod处理完数据后把response再返回给proxy,proxy再把它转发至会话的发起方(这时候的源地址是192.168.1.16),从始至终,pod只和“10.254.95.32”这个地址通信,具体可见以下链接:
https://github.com/GoogleCloud ... es.md

所以说,这个不是什么错误,kubenetes的service就是这么work的

要回复问题请先登录注册