Docker容器跨主機通訊

2022-02-10 10:26:46 字數 3836 閱讀 7412

預設情況下docker容器需要跨主機通訊兩個主機節點都需要在同乙個網段下,這時只要兩個docker容器的宿主機能相互通訊並且該容器使用net網路模式,改實現方式為網橋模式通訊;

除此之外我們還可以通過使用第三方工具為不同主機間建立乙個覆蓋網路,使之能夠跨節點通訊,這裡將使用flanneld實現;

建立 cat /etc/etcd/etcd.conf檔案

# [member]

etcd_name=infra1

etcd_data_dir="/var/lib/etcd"

etcd_listen_peer_urls=""

etcd_listen_client_urls=""

#[cluster]

etcd_initial_advertise_peer_urls=""

etcd_initial_cluster_token="etcd-cluster"

etcd_advertise_client_urls=""

建立/etc/systemd/system/etcd.service檔案

啟動systemctl start etcd

在etcd中建立目錄:etcdctl --endpoints=,http://192.168.5.151:2379
mkdir /kube-centos/network

建立config節點並寫入網路配置資訊:

etcdctl --endpoints=

mk /kube-centos/network/config '}'

建立 /etc/sysconfig/flanneld檔案

建立/usr/lib/systemd/system/flanneld.service檔案

啟動systemctl start flanneldflannled啟動後會生產/run/flannel/subnet.env檔案修改docker啟動引數配置加上:

environmentfile=/run/flannel/subnet.env

--bip=$ --ip-masq=$ --mtu=$

重啟docker,此時docker將使用flanneld配置的網段為container分配ip;

在兩個節點分別啟動容器:docker run -it --rm busybox sh

檢視其中乙個主機節點的容器ip,ping另乙個主機節點ip

檢視其中乙個主機節點的容器ip,ping另乙個主機節點ip

此時已可聯通;

注意iptables配置是否正確;

Docker容器跨主機通訊

兩台主機上的docker容器直接通過ip位址進行通訊 各項配置如下 docker version 1.13.1 ip資訊根據個人需求部署 主機1的ip位址為 192.168.1.128 主機2的ip位址為 192.168.1.129 為主機1上的docker容器分配的子網 172.17.1.0 24...

docker跨主機容器通訊

docker 網路模式詳解 路由器位址192.168.1.1用route n檢視 parent enp7s0的乙太網名用ifcofig查詢 apt install net tools iputils ping ydocker network create driver macvlan subnet ...

Docker容器跨主機通訊 路由模式

採用路由模式 1 不同主機的docker子網不同,通過 var docker daemon.json檔案定義。重啟docker服務 systemctl daemon reload systemctl restart docker例如 a主機 bip 172.17.1.252 24 b主機 bip 1...