繁体   English   中英

Kubernetes-每个Pod不唯一的IP

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM