[英]Kubernetes - not unique ip per pod
我正在构建一个Kubernetes 1.3.2的3 VM(CentOS 7)集群。 根据该kubernetes文档页面“ Kubernetes中的联网 ”:“我们为每个Pod分配了自己的IP地址”,并且当很少的Pod在同一节点上使用相同的端口时,就不会发生端口冲突。 但是,如此处所示,pod确实获得了相同的IP地址:
[root@gloom kuber-test]# kubectl get pods -o wide -l app=userloc
NAME READY STATUS RESTARTS AGE IP NODE
userloc-dep-857294609-0am9d 1/1 Running 0 27m 172.17.0.5 157.244.150.86
userloc-dep-857294609-a4538 1/1 Running 0 27m 172.17.0.7 157.244.150.96
userloc-dep-857294609-c4wzy 1/1 Running 0 6h 172.17.0.3 157.244.150.86
userloc-dep-857294609-hbl9i 1/1 Running 0 6h 172.17.0.5 157.244.150.96
userloc-dep-857294609-rpgyd 1/1 Running 0 27m 172.17.0.5 157.244.150.198
userloc-dep-857294609-tnnho 1/1 Running 0 6h 172.17.0.3 157.244.150.198
我想念什么?
编辑-2016年7月31日:
按照Sven Walter的评论,也许问题出在某种程度上,吊舱已经收到的IP是docker bridge子网172.17.0.0/16(每个节点都不相同),而不是法兰绒的子网10.xxx/24(不同)。每个节点)。 这可能是问题吗?
如果需要,这里是部署yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: userloc-dep
spec:
replicas: 6
template:
metadata:
labels:
app: userloc
spec:
containers:
- name: userloc
image: globe:5000/openlso/userlocation-ms:0.1
ports:
- containerPort: 8081
发生此问题的原因是,在Docker文档之后,我在/etc/systemd/system/docker.service.d/docker.conf中添加了其他docker config,以覆盖/usr/lib/systemd/system/docker.service中的配置。 不幸的是,我用来设置集群的脚本(master.sh和worker.sh)不是引用第一个文件,而是引用第二个文件。
一旦我删除了docker.conf文件,吊舱就获得了法兰绒的子网。
配置法兰绒后,假设您配置正确,则每个节点将获取整个ip网络cidr的一部分。 您可以通过执行etcd ls -r
并查找类似“ coreos.com”的键来找出将哪个cidr分配给了哪个节点。 分配给每个节点的子网片应该是唯一的。
节点具有子网后,法兰绒将cidr分配给flannel.0(vxlan设备),并且您需要重启docker,例如: https : //github.com/coreos/flannel#docker-integration 。 如果您无法重新启动docker,或者选项错误,或者节点上没有运行法兰绒,或者将非唯一的子网分配给了不同的节点,那么一切将无法正常进行。 如果您需要更多帮助进行调试,请回复此信息,我们可以从那里获取帮助。
也许可以帮到您,当我要修复多个网络接口时,我遇到了同样的问题,即我定义了法兰绒用于与其他节点进行通信的网络接口。
flanneld --iface=enp0s8
就我而言,我在/ etc / sysconfig / flanneld中进行了更改
FLANNEL_ETCD="http://master.gary.local:2379"
FLANNEL_ETCD_KEY="/atomic.io/network"
FLANNEL_OPTIONS="--iface=enp0s8"
更改后,显然您需要重新启动docker和flanneld守护程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.