详解码头工人容器跨主机通信的方法

  

默认情况下码头工人容器需要跨主机通信两个主机节点都需要在同一个网段下,这时只要两个码头工人容器的宿主机能相互通信并且该容器使用净网络模式,改实现方式为网桥模式通信;

  

除此之外我们还可以通过使用第三方工具为不同主机间创建一个覆盖网络,使之能够跨节点通信,这里将使用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;

  

详解码头工人容器跨主机通信的方法”>,<h2 class=详解码头工人容器跨主机通信的方法