首先,我想说我是kubernetes主题的初学者,当我给服务赋予固定IP时,我遇到了无法通过服务到达pod的问题,想总结一下我认为我已经理解的事情,也许这里的某人可以纠正我或知道我解决问题的方式。
我将带有ansible-script kubespray的集群部署在裸机(带有CentOS 7的2个节点)上,并按如下方式配置脚本和生成的集群:
在成功部署之后,我可以将pod,服务,机密等部署到集群,因此对我来说似乎可以正常工作,但是当我现在定义一个外部IP时,例如:
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
selector:
name: nginx
externalIPs:
- "192.168.1.42"
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: gluster-pod1
image: gcr.io/google_containers/nginx-slim:0.8
ports:
- name: web
containerPort: 80
我可以通过他的内部IP,端点的IP和主服务器的IP到达Pod,但是不能通过为此服务定义的IP到达Pod,当我尝试通过卷曲时得到错误:“否路由到主机”对于我来说,这很奇怪,当我将该服务的IP设置为与kubernetes主站相同的IP时,即
...
spec:
ports:
- port: 80
selector:
name: nginx
externalIPs:
- "192.168.1.1"
我可以到达吊舱。
现在,在阅读了大量文档之后,当我配置自己的负载均衡器以管理外部IP时,该问题就可以解决,因为如果我没有定义固定IP,则该服务的状态为“待处理”外部IP。
但是不幸的是,在阅读完所有文档之后,我不确定体系结构是否真的以此方式工作,我的意思是 pod <->服务<->负载均衡器(<-> DHCP)
所以我可以通过服务到达吊舱。
开始时,我想结束这篇文章,但不确定这是否是解决我的问题的正确方向。因此,如果有人可以确认我或纠正我,我将不胜感激:-) 最好的祝福 丹