[クラウドネイティブ] Dockerネットワークオーバーレイはクロスホスト通信を実現するConsulを構築します

目次

1. オーバーレイ ネットワークとは何ですか?

オーバーレイ環境を実装する


1. オーバーレイ ネットワークとは何ですか?

        Docker では、オーバーレイ ネットワークは、複数の Docker ホスト上に仮想ネットワークを作成できるようにするコンテナ ネットワーク ドライバーであり、コンテナがこのネットワークを通じて相互に通信できるようにします。

        オーバーレイ ネットワークは、VXLAN (Virtual Extensible LAN) テクノロジーを使用して、複数のホスト間の通信を実現します。各 Docker ホスト上のコンテナはオーバーレイ ネットワークに参加でき、基礎となるホストのネットワーク構成を知らなくても、あたかも同じホスト上にあるかのように通信できます。

        コンテナーがネットワーク リクエストを送信すると、オーバーレイ ネットワーク ドライバーはそのリクエストを VXLAN パケットにカプセル化し、基盤となるホストの物理ネットワークを通じてターゲット コンテナーが配置されているホストに送信します。ターゲット ホスト上のオーバーレイ ネットワーク ドライバーは、VXLAN パケットのカプセル化を解除し、リクエストをターゲット コンテナーに渡します。

オーバーレイ ネットワークには次の特徴があります。

  1. クロスホスト通信: コンテナは異なる Docker ホスト上で実行でき、オーバーレイ ネットワークを通じて通信できます。

  2. 自動ルーティング: オーバーレイ ネットワーク ドライバーはコンテナ間のルーティングを自動的に処理し、コンテナがコンテナ名によって直接通信できるようにします。

  3. セキュリティ: オーバーレイ ネットワークは暗号化と認証を使用してコンテナ間の通信を保護し、データのセキュリティを確保します。

  4. スケーラビリティ: オーバーレイ ネットワークは、複数のホスト上に数千のコンテナを作成でき、コンテナの動的な追加と削除を自動的に処理できます。

  5. 柔軟性: オーバーレイ ネットワークを他のネットワーク ドライバー (ブリッジ、ホストなど) と一緒に使用して、さまざまなネットワーク要件を満たすことができます。

        オーバーレイ ネットワークは、Docker で一般的に使用されるネットワーク ドライバーの 1 つであり、ホスト間で通信する機能を提供し、分散環境でコンテナーがネットワーク経由で通信することを容易にします。

オーバーレイ環境を実装する

導入環境

CPU名 IP
領事 192.168.2.5
ノード1 192.168.2.6
ノード2 192.168.2.7

 

1. Consul ホストに Consul イメージをダウンロードします。

[root@localhost ~]# docker pull  progrium/consul

2. consulコンテナを起動します

[root@localhost ~]# docker run -d --restart always -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap -ui-dir /ui
3ae189bff461fc03e004598c399b5746085918a84effc0cea8c15306bfa53e3b

3. 3 つのホストのファイアウォールを閉じます。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save

4. すべてのノードで consul サーバー オプションを指定します。

[root@localhost ~]# vi /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376 --cluster-store=consul://192.168.2.5:8500 --cluster-advertise=ens33:2376
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

注: ここで、consul に接続するには、docker のバージョンを下げる必要があります。

[root@localhost ~]# yum -y remove docker-ce
[root@localhost ~]# yum -y install docker-ce-20.10.24-3.el7

5. 完了後、ノード上のいずれかのノードが

[root@localhost ~]# docker network create -d overlay --subnet 192.168.6.0/24 --gateway 192.168.6.254 ov_net1

6. 2 つのノードにそれぞれ作成されたオーバーレイ ネットワークのコンテナを生成し、オーバーレイ ネットワークを検証します

#node1操作
[root@localhost ~]# docker run -it --name test1 --network ov_net1 busybox
​
#node2操作
[root@localhost ~]# docker run -it --name test2--network ov_net1 busybox

7. 同じネットワークに相互に ping を送信します

/ # ping 192.168.6.1
PING 192.168.6.1 (192.168.6.1): 56 data bytes
64 bytes from 192.168.6.1: seq=0 ttl=64 time=0.450 ms
64 bytes from 192.168.6.1: seq=1 ttl=64 time=0.272 ms
64 bytes from 192.168.6.1: seq=2 ttl=64 time=0.379 ms

おすすめ

転載: blog.csdn.net/weixin_53678904/article/details/131727514