當 xxl-job 遇上 docker → 它暈了,但我不能亂!

開心一刻

  某次住酒店,晚上十點多叫了個外賣

  過了一陣兒,外賣到了

  因爲酒店電梯要刷卡,所以我下樓去接

  到了電梯口看到個模樣不錯的妹紙

  我:是你麼?

  妹紙愣了下:嗯!

  於是拉上進電梯回房間,正準備開始呢

  我倆的電話同時響了

  按下接聽鍵,一男一女同時問:我到電梯口了,你人呢?

  尷尬了,取錯外賣了

  然後一起回電梯口,四個人一起上電梯,電梯裏非常尷尬

  我:呵呵,你的妹紙不錯

  他:呵呵,你也是

前情回顧

  在當 xxl-job 遇上 docker → 它暈了,我也亂了!,有兩個場景沒給大家演示,先補上

  executor 和 admin 在同一臺宿主機上通過 docker 部署

  這裏有必要給大家簡單講一下 Docker 的 bridge 網絡模式

   docker0 類似一個交換機,它有很多接口,每個接口叫 veth ,在宿主機和容器內分別創建一個虛擬接口,並讓他們彼此聯通(這樣一對接口叫 veth pair )

  每個容器實例內部也有一塊網卡,其接口叫 eth0 ; docker0 上面的每個 veth 匹配某個容器內部的 eth0 ,兩兩配對,一一匹配

  如此,將同個宿主機上的所有容器都連接到同個內部網絡上,那麼這些容器之間的網絡是互通的

  所以這種情況下, xxl-job-admin 是可以掉通 xxl-admin-executor 的,因爲它們在同一個內部網絡上

  executor 和 admin 都通過 docker 部署,但不在同一個宿主機

  上一篇提到了,但沒告訴大家結果,也不知道大家有沒有去驗證,這裏再給大家演示下

  從結果來看, xxl-job-admin 是訪問不通 xxl-job-executor 的,想知道爲什麼嗎?

  兩臺宿主機的 docker0 分別構成了一個內部網絡,但這兩個內部網絡是隔離的、不通的!

  這就好比我的局域網的 192.168.1.115 訪問你的局域網的 192.168.1.118 ,你說能訪問得通嗎?

自動註冊

  關於自動註冊的問題,很多小夥伴在上一篇的評論區給出一些解決方案,我來給大家試試水

  docker compose

   xxl-job-admin 鏡像不需要改動,以 docker-compose 進行編排部署即可, docker-compose.yml 內容如下

   xxl-job-executor 需要修改下配置

  用 服務名 替換具體的ip

  改完之後重新生成 xxl-job-executor 的鏡像 sample-executor-compose:1.2 

  然後以 docker-compose 進行編排部署, docker-compose.yml 內容如下

  我們來看下效果

  額,自動註冊好了!你們是不是愛上我了?

  etcd + flannel

  配置過程就不演示了,可參考:docker使用 Flannel(etcd+flannel)網絡etcd安裝和所遇到的坑

  當IP情況類似如上所示,則說明配置成功了

  我們再來看看 xxl-job 的自動註冊

   xxl-job-executor 自動註冊的IP 10.10.96.2 , xxl-job-admin 可以正常調度 xxl-job-executor 

  k8s

   k8s 集羣搭建過程不是那麼簡單,但也不是很複雜;搭建好的集羣信息如下

  在 k8s 集羣部署 xxl-job-admin 、 xxl-job-executor 成功後,我們來看下 xxl-job 的自動註冊

  如你所見,自動註冊是可以正常調度的!

  我們再來看下 xxl-job-admin 、 xxl-job-executor 所在節點

   sample-xxl-job-admin-56bb76f846-7rnmw 在節點 docker221 

   sample-xxl-job-executor-78c4997dd4-562hw 在節點 docker220 

  不在同一個節點哦!

總結

  1、三種方式(docker compose、etcd+flannel、k8s)選哪一種,需要結合具體情況來定

    如果想實現簡單點,那就選 docker compose 

    如果已經使用了 k8s ,那就用 k8s 方式就行了

    實現方式肯定還有其他的,比如 etcd + flannel 只是屬於打通內部網絡的一種

  2、環境的搭建,樓主都省略了,有兩點目的

    2.1 考慮到篇幅問題,如果把搭建環境的詳細過程都加進來,整篇篇幅就太長了,擔心你們看的累

    2.2 希望大家都去嘗試搭建一下,受過傷纔會刻骨銘心,樓主是深有感觸

    你們不要覺得我壞,我就是壞!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章