2016-07-28 17 views
0

我正在构建一个3 VM(CentOS 7)的Kubernetes 1.3.2集群。 根据这个kubernetes文档页面Networking in Kubernetes:“我们给每个pod自己的IP地址”,并且由于少数pod使用相同节点上的相同端口时没有端口冲突。 但正如在这里看到,豆荚也得到相同的IP地址:Kubernetes - 不是每个荚的唯一IP

[[email protected] 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 

我怎么错过?

编辑 - 31/07/16:
继斯文瓦尔特的意见,也许问题是,不知何故该吊舱已收到的IP地址是泊坞窗桥子网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 
+0

正如你在你的问题中所描述的,每个节点*的IP地址是*唯一的。例如,有三个地址为“172.17.0.5”的豆荚,但它们都在不同的节点上。 – larsks

+0

它看起来有点像Kubernetes集群的未命中配置。每个节点的pod IP是唯一的。 AFAIK节点应为它们的Pod获得不同的子网(例如,172.17.0.0/24,172.17.1.0/24,172.17.2.0/24等)。 – svenwltr

+0

@larsks IMO的IP地址在整个群集中应该是唯一的。否则,豆荚之间的通信将无法进行。 – svenwltr

回答

0

问题发生监守以下docker documentation我在增加了额外的搬运工配置/etc/systemd/system/docker.service.d/docker.conf重写的配置在/usr/lib中/ systemd /系统/ docker.service。不幸的是,我用来设置集群的脚本(master.sh和worker.sh)并不是指第一个文件,而是指向第二个文件。
一旦我删除了docker.conf文件,豆荚就得到了绒布的子网。

0

配置法兰绒之后,假设你是如此正确,每个节点将抓住整个IP网络CIDR的切片。您可以通过执行etcd ls -r并寻找诸如“coreos.com”之类的密钥来确定哪个cidr分配给了哪个节点。分配给每个节点的子网切片应该是唯一的。

一旦节点有一个子网,flannel会将该cidr分配给flannel.0(一个vxlan设备),并且您需要重新启动docker,例如:https://github.com/coreos/flannel#docker-integration。如果重启docker失败,或者选项错误,或者节点上没有运行flannel,或者将非唯一的子网分配给不同的节点,则事情将无法按预期工作。如果您需要更多帮助调试,请回复此问题,我们可以从此处进行调试。

+0

感谢和抱歉由于度假而迟到的回复。问题解决了;请参阅下面的答案。 – user5396668

0

也许它可以帮助你,我有同样的问题,当我有多个网络接口来修复,我定义了法兰绒用来与其他节点通信的网络接口。

flanneld --iface=enp0s8

在我的情况,我改变在/ etc/SYSCONFIG/flanneld

FLANNEL_ETCD="http://master.gary.local:2379" 
FLANNEL_ETCD_KEY="/atomic.io/network" 
FLANNEL_OPTIONS="--iface=enp0s8" 

是很明显,你需要重新启动码头工人和flanneld守护程序改变后。