2016-07-28 59 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守護程序改變後。