成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

云原生之Docker容器跨主機指定IP通信

云計算 云原生
對開發者而言,隨著容器的普遍使用,開發者可以很方便的搭建項目的簡易測試環境。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

一、前言

1、使用場景

對開發者而言,隨著容器的普遍使用,開發者可以很方便的搭建項目的簡易測試環境。有時候為了項目可以在任意機器一鍵運行,不用配置連接IP等信息。所以希望可以提前固定容器的IP地址,而且一個項目有時候涉及多個容器,可能還會部署在多臺機器上。所以如果容器間可以固定IP跨機器通信的話,會有很大方便。

2、docker網絡

  • docker容器默認是一個有自己獨立網絡空間的虛擬系統。
  • docker安裝后自動創建3中網絡:bridge、host、none。
  • bridge:網橋模式,默認創建docker0網橋,172.17.0.0/16,宿主機可訪問,外部機器不可見。
  • host:共享宿主機網絡模式,外部主機與容器直接通信,容器缺少了隔離性。
  • none:禁用網絡模式。
  • docker自定義網絡
    docker提供了三種自定義網絡驅動:bridge、overlay、macvlan。
  • bridge驅動類似默認的bridge網絡模式。
  • overlay和macvlan是用于創建跨主機網絡。
  • 支持自定義網段、網關,docker network create --subnet 172.77.0.0/24 --gateway 172.77.0.1 my_net。
  • docker創建容器使用默認docker0網絡不支持自定義固定IP,都是動態的。

3、自定義網絡使用

  1. 自定義創建網段。docker network create --subnet=172.18.0.0/16 spark-net。
  2. 指定網絡驅動docker network create -d overlay --subnet 10.22.1.0/24 --gateway 10.22.1.1 spark-net-0。
  3. 創建容器固定IP。
docker run --name cloud1 \
--net spark-net --ip 172.18.0.2 \
-h cloud1 \
-it ubuntu
docker run --name cloud1_0 \
--network spark-net-0 --ip 10.22.1.26 \
-h cloud1 \
-it ubuntu

二、實踐操作

1、Overlay網絡模式詳解

  • Overlay網絡是目前比較主流的跨節點容器間數據傳輸和路由方案。
  • Overlay網絡模式在主機網絡之上,在多個Docker主機之間實現分布式網絡,允許跨容器之間的交互。
  • Overlay網絡是指在不改變現有網絡基礎設施的前提下,通過某種約定通信協議,把二層報文封裝在IP報文之上的新的數據格式。

2、Consul服務發現

  • Consul是一個分布式、高可用性和多數據中心感知工具,用于服務發現、配置和編排。Consul 支持大規模快速部署、配置和維護面向服務的架構。
  • 部署單節點的consul服務(可選擇公網服務器,或者能與其他部署容器通信的主機)。
# 拉取鏡像
docker pull progrium/consul
# 運行consul容器
docker run -d -p 8500:8500 -h consul --name consul --restart=always progrium/consul -server -bootstrap
# -h:表示consul的主機名
# --name consul:表示為該容器名
# --restart=always表示可以隨著docker服務的啟動而啟動;
# 運行consul容器,該服務的默認端口是8500;-p:表示將容器的8500端口映射到宿主機的8500端口
# -serve -bootstarp:表示當在群集中,加上這兩個選項可以使其以master的身份出現
  • 管理訪問地址
    http://IP:8500/ui/#/dc1/kv/docker/nodes/。

3、修改docker配置

# 所有需要通信的機器都需要修改
vim /etc/docker/daemon.json
# 增加 cluster-store、cluster-advertise兩個參數
{
"registry-mirrors": ["https://xxxx.xxxx.aliyuncs.com","https://registry.docker-cn.com"],
"cluster-store": "consul://IP:8500",
"cluster-advertise": "ens33:2376"
}
# cluster-store,是配置sonsul集群的訪問地址
# cluster-advertise,是廣播通信地址和端口
# 重啟docker
systemctl daemon-reload
systemctl restart docker
#如果有端口拒絕訪問問題,可直接關掉防火墻
#停止firewall
systemctl stop firewalld.service
#禁止firewall開機啟動
systemctl disable firewalld.service
#查看開放端口列表
firewall-cmd --list-ports

4、實踐機器規劃

本文實踐創建了3臺虛機:192.168.17.150 192.168.17.151 192.168.17.152。

5、創建overlay網絡

  • 選其中一臺機器執行,例如在192.168.17.150執行
# 創建overlay網絡,并自定義制定網段以及網關
# 可以通過制定不同的網段,以隔離不同的服務
docker network create -d overlay --subnet 10.22.1.0/24 --gateway 10.22.1.1 spark-net
# 每臺機器查看創建的網絡
docker network ls
# 查看具體信息
docker network inspect spark-net
  • 刪除網絡命令
# 刪除自定義網絡
docker network rm spark-net
# 如果有已連接的,先斷開連接
docker network disconnect -f net-spark con1
  • 注意
    例如:在cloud1機器上,可以執行docker network disconnect -f spark-net cloud2但是執行docker network disconnect -f spark-net cloud1就無效,必須跨機器執行斷連。

6. 跨主機創建容器驗證

本文依賴上篇文章創建了3個容器, 可查看 ??Docker搭建大數據平臺之Hadoop,Spark,Hive初探??。

192.168.17.150機器上執行。

docker run --name cloud1 \
-p 50070:50070 \
-p 8088:8088 \
-p 8080:8080 \
-p 7077:7077 \
-p 9000:9000 \
-p 16010:16010 \
--network net-spark --ip 10.22.1.26 \
-h cloud1 \
--add-host cloud1:10.22.1.26 \
--add-host cloud2:10.22.1.27 \
--add-host cloud3:10.22.1.28 \
-it spark:v4

192.168.17.151機器上執行。

docker run --name cloud2  \
--network net-spark --ip 10.22.1.27 \
-h cloud2 \
--add-host cloud1:10.22.1.26 \
--add-host cloud2:10.22.1.27 \
--add-host cloud3:10.22.1.28 \
-it spark:v4

192.168.17.152機器上執行。

docker run --name cloud3 \
--network net-spark --ip 10.22.1.28 \
-h cloud3 \
--add-host cloud1:10.22.1.26 \
--add-host cloud2:10.22.1.27 \
--add-host cloud3:10.22.1.28 \
-it spark:v4

可分別在三個容器內互相ping IP10.22.1.26、10.22.1.27、10.22.1.28驗證。

三、常見問題

1、如遇錯誤常用命令

  • 如果網絡改動,需要重啟docker
systemctl daemon-reload
systemctl restart docker
  • 關掉防火墻
# 停止firewall
systemctl stop firewalld.service
# 禁止firewall開機啟動
systemctl disable firewalld.service
# 查看開放端口列表
firewall-cmd --list-ports
# 開放端口
firewall-cmd --zone=public --add-port=2379/tcp --permanent
# 重新載入
firewall-cmd --reload

2、將容器以指定IP鏈接到自定義網絡中

#容器cloud3以IP10.22.1.28鏈接到overlay網絡spark-net
docker network connect --ip 10.22.1.28 spark-net cloud3

3、將容器從自定義網絡中刪除

# 注意不可在當前容器里執行斷連
# 例如 需要斷連容器cloud2,則需要在容器cloud1中執行如下命令
docker network disconnect -f spark-net cloud2

4、manager節點無法接入

docker.service配置 -H tcp://0.0.0.0:2376 --cluster-store=consul://121.4.138.199:8500 --cluster-advertise=ens33:2376 并不能正確執行,原理暫未知。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2017-03-28 10:20:24

Docker通信分析

2020-03-04 09:56:56

網絡安全云原生容器

2023-11-13 09:28:20

跨組件組件化

2022-05-26 15:02:35

Docker容器云原生

2015-01-08 10:29:59

Shipyardweb管理集中化

2018-09-06 14:29:13

容器主機存儲

2020-02-05 14:31:04

兩種互通方法

2018-09-07 10:23:46

云備份混合云存儲

2020-06-03 07:59:12

2021-08-09 11:43:02

容器云原生安全

2021-02-08 08:30:11

容器化云原生微服務

2023-08-28 16:08:12

2014-11-11 15:25:00

Dockerambassador云計算

2023-09-15 10:15:43

Docker網絡

2021-07-13 07:52:03

云原生彈性模式

2020-12-14 10:47:30

云計算云原生容器

2021-08-24 05:02:34

云原生容器分布式

2022-10-27 07:09:58

容器通信

2022-12-15 11:26:44

云原生

2014-11-20 10:55:47

Docker容器技術虛擬化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本在线小视频 | 欧美激情精品久久久久久 | 国产精品福利网 | 国产精品成人一区二区三区 | 久久久久一区二区三区四区 | 五月婷婷激情网 | 久久99精品久久久久久国产越南 | 欧美性另类 | 黄视频免费 | 久久久123| 国产精品99久久久久久动医院 | 国产精品a免费一区久久电影 | 欧美一区二区三区 | 久久男人 | 免费特级黄毛片 | 在线一区二区观看 | 伊人狠狠 | 精品三级在线观看 | 九九精品久久久 | 毛片一级片 | 超碰97人人人人人蜜桃 | 精品一区二区三区在线观看国产 | 在线国产视频 | 青青草视频免费观看 | re久久| 91伊人 | www精品| 精品乱子伦一区二区三区 | 国产成人免费视频网站高清观看视频 | 视频一区二区在线观看 | 91国自产| 成人伊人| 色欧美综合 | 蜜桃av人人夜夜澡人人爽 | 99re免费 | 成人免费视频7777777 | 日韩高清国产一区在线 | 久久人人国产 | 亚洲色图网址 | 国产精品久久久久久久免费观看 | 黑人精品 |