1. 程式人生 > >Calico 的網路結構是什麼?- 每天5分鐘玩轉 Docker 容器技術(68)

Calico 的網路結構是什麼?- 每天5分鐘玩轉 Docker 容器技術(68)

上一節我們部署了 Calico 網路,今天將執行容器並分析 Calico 的網路結構。

在 host1 中執行容器 bbox1 並連線到 cal_net1:

docker container run --net cal_net1 --name bbox1 -tid busybox

檢視 bbox1 的網路配置。

cali0是 calico interface,分配的 IP 為192.168.119.2。cali0 對應 host1 編號11的 interfacecali5f744ac07f0

host1 將作為 router 負責轉發目的地址為 bbox1 的資料包。

所有傳送到 bbox1 的資料都會發給cali5f744ac07f0,因為cali5f744ac07f0cali0是一對 veth pair,bbox1 能夠接收到資料。

host1 網路結構如圖所示:

接下來我們在 host2 中執行容器 bbox2,也連線到 cal_net1:

docker container run --net cal_net1 --name bbox2 -tid busybox

IP 為192.168.183.65

host2 添加了兩條路由:

  1. 目的地址為 host1 容器 subnet192.168.119.0/26的路由。

  2. 目的地址為本地 bbox2 容器192.168.183.65

    的路由。

同樣的,host1 也自動添加了到192.168.183.64/26的路由。

完成了上面這些準備工作,下一節我們將討論 Calico 網路的連通性。

二維碼+指紋.png

相關推薦

Calico網路結構是什麼?- 每天5分鐘 Docker 容器技術68

上一節我們部署了 Calico 網路,今天將執行容器並分析 Calico 的網路結構。 在 host1 中執行容器 bbox1 並連線到 cal_net1: docker container run --net cal_net1 --name bbox1 -tid bu

Calico 的網絡結構是什麽?- 每天5分鐘 Docker 容器技術68

docker 教程 容器 上一節我們部署了 Calico 網絡,今天將運行容器並分析 Calico 的網絡結構。在 host1 中運行容器 bbox1 並連接到 cal_net1:docker container run --net cal_net1 --name bbox1 -tid busyb

如何部署 Calico 網絡?- 每天5分鐘 Docker 容器技術67

docker 教程 容器 Calico 是一個純三層的虛擬網絡方案,Calico 為每個容器分配一個 IP,每個 host 都是 router,把不同 host 的容器連接起來。與 VxLAN 不同的是,Calico 不對數據包做額外封裝,不需要 NAT 和端口映射,擴展性和性能都很好。與其他容器

Calico 的默認連通性 - 每天5分鐘 Docker 容器技術69

12px 方法 ner ipam -name wid -s ubunt creat 前面我們完成了 Calico 網絡的部署並運行了容器,今天將討論 Calico 的連通性。測試一下 bbox1 與 bbox2 的連通性: ping

如何定制 Calico 的 IP 池?- 每天5分鐘 Docker 容器技術71

wan mil 討論 mar apple ipam hit initial use 在前面的小節中,我們沒有特別配置,calico 會為自動為網絡分配 subnet,當然我們也可以定制。 首先定義一個 IP Pool,比如: cat <<

調試 Dockerfile - 每天5分鐘 Docker 容器技術15

top add font tom middle 程序 ria family 是個 包括 Dockerfile 在內的任何腳本和程序都會出錯。有錯並不可怕,但必須有辦法排查,所以本節討論如何 debug Dockerfile。 先回顧一下通過 Dockerfile 構建鏡像

Dockerfile 常用指令 - 每天5分鐘 Docker 容器技術16

依次 官方文檔 構建 bottom str -s 暴露 工作 12px 是時候系統學習 Dockerfile 了。下面列出了 Dockerfile 中最常用的指令,完整列表和說明可參看官方文檔。 FROM指定 base 鏡像。 MAINTAINER設置鏡像的作

RUN vs CMD vs ENTRYPOINT - 每天5分鐘 Docker 容器技術17

docker 教程 容器 RUN、CMD 和 ENTRYPOINT 這三個 Dockerfile 指令看上去很類似很容易混淆。本節將通過實踐詳細討論它們的區別。簡單的說RUN 執行命令並創建新的鏡像層RUN 經常用於安裝軟件包。CMD 設置容器啟動後默認執行的命令及其參數但 CMD 能夠被 doc

使用公共 Registry - 每天5分鐘 Docker 容器技術19

docker 教程 容器 保存和分發鏡像的最直接方法就是使用 Docker Hub。Docker Hub 是 Docker 公司維護的公共 Registry。用戶可以將自己的鏡像保存到 Docker Hub 免費的 repository 中。如果不希望別人訪問自己的鏡像,也可以購買私有 repos

Docker 鏡像小結 - 每天5分鐘 Docker 容器技術21

列表 例如 normal one sys tro docker comm color 本節我們對 Docker 鏡像做個小結。 這一部分我們首先討論了鏡像的分層結構,然後學習了如何構建鏡像,最後實踐使用 Docker Hub 和本地 registry。 下面是鏡像的常用操作

如何運行容器?- 每天5分鐘 Docker 容器技術22

docker 教程 容器 上一章我們學習了如何構建 Docker 鏡像,並通過鏡像運行容器。本章將深入討論容器:學習容器的各種操作,容器各種狀態之間如何轉換,以及實現容器的底層技術。運行容器docker run 是啟動容器的方法。在討論 Dockerfile 時我們已經學習到,可用三種方式指定容器

兩種進入容器的方法 - 每天5分鐘 Docker 容器技術23

工作 技術 啟動進程 gin attach ant while col -c 我們經常需要進到容器裏去做一些工作,比如查看日誌、調試、啟動其他進程等。有兩種方法進入容器:attach 和 exec。 docker attach 通過 docker attach 可以 a

運行容器的最佳實踐 - 每天5分鐘 Docker 容器技術24

oat add vertical poi can size 執行命令 後臺 運行 按用途容器大致可分為兩類:服務類容器和工具類的容器。 1. 服務類容器以 daemon 的形式運行,對外提供服務。比如 web server,數據庫等。通過 -d 以後臺方式啟動這類容器是非常

容器常用操作 - 每天5分鐘 Docker 容器技術25

技術 order position 自動 code lec 資源 add 服務 前面討論了如何運行容器,本節學習容器的其他常用操作。 stop/start/restart 容器 通過 docker stop 可以停止運行的容器。 容器在 docker host 中實際上是

限制容器對內存的使用 - 每天5分鐘 Docker 容器技術27

upload 機制 性能 http tle war pac 啟動 物理內存 一個 docker host 上會運行若幹容器,每個容器都需要 CPU、內存和 IO 資源。對於 KVM,VMware 等虛擬化技術,用戶可以控制分配多少 CPU、內存資源給每個虛擬機。對於容器,D

限制容器對CPU的使用 - 每天5分鐘 Docker 容器技術28

docker 教程 容器 上節學習了如何限制容器對內存的使用,本節我們來看CPU。默認設置下,所有容器可以平等地使用 host CPU 資源並且沒有限制。Docker 可以通過 -c 或 --cpu-shares 設置容器使用 CPU 的權重。如果不指定,默認值為 1024。與內存限額不同,通過

限制容器的 Block IO - 每天5分鐘 Docker 容器技術29

docker 教程 容器 前面學習了如何限制容器對內存和CPU的使用,本節我們來看 Block IO。Block IO 是另一種可以限制容器使用的資源。Block IO 指的是磁盤的讀寫,docker 可通過設置權重、限制 bps 和 iops 的方式控制容器讀寫磁盤的帶寬,下面分別討論。註:目前

實現容器的底層技術 - 每天5分鐘 Docker 容器技術30

docker 教程 容器 為了更好地理解容器的特性,本節我們將討論容器的底層實現技術。cgroup 和 namespace 是最重要的兩種技術。cgroup 實現資源限額, namespace 實現資源隔離。cgroupcgroup 全稱 Control Group。Linux 操作系統通過 cg

none 和 host 網絡的適用場景 - 每天5分鐘 Docker 容器技術31

docker 教程 容器 本章開始討論 Docker 網絡。我們會首先學習 Docker 提供的幾種原生網絡,以及如何創建自定義網絡。然後探討容器之間如何通信,以及容器與外界如何交互。Docker 網絡從覆蓋範圍可分為單個 host 上的容器網絡和跨多個 host 的網絡,本章重點討論前一種。對於

容器必須懂 bridge 網絡 - 每天5分鐘 Docker 容器技術32

docker 教程 容器 上一節我們討論了 none 和 host 類型的容器網絡,本節學習應用最廣泛也是默認的 bridge 網絡。Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定--network,創建的容器默認都會掛到 docker0 上。當前