默认情况下码头工人容器需要跨主机通信两个主机节点都需要在同一个网段下,这时只要两个码头工人容器的宿主机能相互通信并且该容器使用净网络模式,改实现方式为网桥模式通信;
除此之外我们还可以通过使用第三方工具为不同主机间创建一个覆盖网络,使之能够跨节点通信,这里将使用Flanneld实现;
<>强安装etcd 强>
创建猫/etc/etcd/etcd.conf文件
#(成员) ETCD_NAME=infra1 ETCD_DATA_DIR="/var/lib/etcd” ETCD_LISTEN_PEER_URLS=" http://192.168.2.150:2380 " ETCD_LISTEN_CLIENT_URLS=" http://192.168.2.150:2379 " #(集群) ETCD_INITIAL_ADVERTISE_PEER_URLS=" http://192.168.2.150:2380 " ETCD_INITIAL_CLUSTER_TOKEN=" etcd-cluster " ETCD_ADVERTISE_CLIENT_URLS=" http://192.168.2.150:2379 " >之前创建/etc/systemd/系统/etcd.service文件
(单位) 描述=Etcd服务器=network.target后=network-online.target后 希望=network-online.target 文档=https://github.com/coreos (服务) 类型=通知 WorkingDirectory=/var/lib/etcd/EnvironmentFile=-/etc/etcd/etcd.conf ExecStart=/usr/地方/bin/etcd \ ——名称$ {ETCD_NAME} \ ——initial-advertise-peer-urls $ {ETCD_INITIAL_ADVERTISE_PEER_URLS} \ ——listen-peer-urls $ {ETCD_LISTEN_PEER_URLS} \ ——listen-client-urls $ {ETCD_LISTEN_CLIENT_URLS}, http://127.0.0.1:2379 \ ——advertise-client-urls $ {ETCD_ADVERTISE_CLIENT_URLS} \ ——initial-cluster-token $ {ETCD_INITIAL_CLUSTER_TOKEN} \ ——initial-cluster infra1=http://192.168.2.150:2380, http://192.168.2.151:2380 \ infra2=猧nitial-cluster-state新\ ——data-dir=$ {ETCD_DATA_DIR} 重启=失败 RestartSec=5 LimitNOFILE=65536 (安装) WantedBy=multi-user.target >之前<>强启动systemctl开始etcd 强>
在etcd中创建目录:etcdctl——端点=http://192.168.2.150:2379, http://192.168.5.151:2379
mkdir/kube-centos/网络<>强创建配置节点并写入网络配置信息:强>
etcdctl——端点=http://172.20.0.113:2379, http://172.20.0.114:2379 可/kube-centos/网络/config”{“网络”:“192.167.0.0/16”、“SubnetLen”: 24日“后端”:{“类型”:“vxlan}}”<强> Flanneld 强>
创建/etc/sysconfig/flanneld文件
# Flanneld配置选项 # etcd url位置。点这服务器etcd运行的地方 FLANNEL_ETCD_ENDPOINTS=" http://127.0.0.1:2379 " # etcd配置的关键。这是法兰绒配置键查询 #地址范围的任务 # FLANNEL_ETCD_PREFIX="/kube-centos/网络” FLANNEL_ETCD_PREFIX="/coreos.com/network " #任何你想传递的附加选项 FLANNEL_OPTIONS=" iface=eth0” >之前创建/usr/lib/systemd/系统/flanneld.service文件
(单位) 描述=Flanneld覆盖地址etcd代理=network.target后=network-online.target后 希望=network-online.target=etcd.service后=docker.service之前 (服务) 类型=通知 EnvironmentFile=/etc/sysconfig/flanneld EnvironmentFile=-/etc/sysconfig/docker-network # ExecStart=/usr/bin/flanneld-start FLANNEL_OPTIONS美元 ExecStart=/usr/bin/flanneld-start -etcd-endpoints=http://192.168.2.150:2379, http://192.168.2.151:2379 iface=ens33 # ExecStart=/usr/bin/flanneld-start -etcd-endpoints=http://192.168.2.150:2379, http://192.168.2.151:2379 -etcd——prefix=/kube-centos/网络 ExecStartPost=/usr/libexec/法兰绒/mk-docker-opts。sh - k DOCKER_NETWORK_OPTIONS - d/跑步/法兰绒/码头工人 重启=失败 (安装) WantedBy=multi-user.target RequiredBy=docker.service >之前<>强启动systemctl开始flanneld 强>
flannled启动后会生产/运行/法兰绒/subnet.env文件
修改码头工人启动参数配置加上:
EnvironmentFile=/运行/法兰绒/subnet.env ——毕普=$ {FLANNEL_SUBNET} - ip-masq=$ {FLANNEL_IPMASQ} - mtu=$ {FLANNEL_MTU}重启码头工人,此时码头工人将使用flanneld配置的网段为容器分配ip;