如何在離線或內網環境中設置Rancher 2.0

有時候,我們無法使用像GKE或AKE這樣的託管服務,甚至處於離線或與外網隔離的狀態,而無法直接訪問互聯網。然而,即使在這種情況下,仍然是有方法使用Rancher管理集羣的

本文中,我們將向你介紹如何在離線或內網環境中運行Rancher 2.0

私有鏡像庫

因爲所有與Rancher相關的服務都在容器中運行,因此首先你需要的是在環境中存儲容器。在本文的示例中,我們將使用Docker Registry(Docker鏡像倉庫)。如果你已經有了鏡像倉庫,可以跳過這些步驟。

注意:在Rancher 2.0中,只有沒有身份認證的鏡像倉庫才能獲取啓動和運行Rancher 2.0所需的所有鏡像。這並不會影響在工作負載中使用的可配置鏡像倉庫。

要運行Docker Registry,你需要運行一個registry:2鏡像的實例。我們將公開默認端口(5000),掛載一個主機目錄確保我們有足夠的空間(至少需要8GB)並且獲得適當的I/O性能。

docker run -d -p 5000:5000 --restart=always --name registry -v /opt/docker-registry:/var/lib/registry registry:2

讓Rancher鏡像運行起來

在鏡像倉庫設置完成後,就開始同步所需的鏡像來運行Rancher 2.0。這一步驟我們將討論兩個場景:

  • 場景1:你有一臺可訪問DockerHub的主機來提取和保存鏡像,另有一臺可以訪問你的私有鏡像倉庫的單獨的主機,以用於push鏡像。

  • 場景2:你有一臺可以訪問DockerHub以及私有鏡像倉庫的主機。

場景1:一臺主機訪問DockerHub,另一臺訪問私有鏡像倉庫

Rancher每一次的版本更新發布(https://github.com/rancher/rancher/releases/tag/v2.0.0),都會隨之提供針對這一場景的插件。你需要如下腳本:

rancher-save-images.sh:該腳本將從DockerHub中拉取所有需要的鏡像,並且將所有鏡像保存成一個rancher-images.tar.gz壓縮文件。可以將該文件傳輸到能夠訪問你私人鏡像倉庫的內部部署主機上。

rancher-load-images.sh:該腳本將從rancher-images.tar.gz中加載鏡像,將它們push到你的私有鏡像倉庫。在腳本的第一個參數需要提供私有鏡像倉庫的主機名rancher-load-images.sh registry.yourdomain.com:5000

如何在離線或內網環境中設置Rancher 2.0

場景2:一臺可以訪問DockerHub以及私有鏡像倉庫的主機

針對這一場景,Rancher每一次的版本更新時

(https://github.com/rancher/rancher/releases/tag/v2.0.0),都會提供一個名爲rancher-images.txt的文件。該文件包含了運行Rancher 2.0所需要的全部鏡像。可以將它綁定到任何現有的自動化服務中同步你可能擁有的鏡像,也可以使用我在下面展示的腳本/Docker鏡像。

如何在離線或內網環境中設置Rancher 2.0

配置Rancher,使用私有鏡像倉庫

流程的最後一步是配置Rancher,將私有鏡像倉庫作爲獲取鏡像的源。這可以通過在Setting視圖中使用system-default-registry進行配置。

如何在離線或內網環境中設置Rancher 2.0

設置欄

如何在離線或內網環境中設置Rancher 2.0

若想要使用私有鏡像倉庫,在配置設置時不要使用https:// 或http://作爲前綴

這樣做可以確保那些被用於向集羣添加節點的rancher/rancher-agent容器,會使用該值作爲前綴。其他需要使用的鏡像也需要這樣配置。

如果你想在啓動rancher/rancher容器時進行配置,可以使用環境變量CATTLE_SYSTEM_DEFAULT_REGISTRY

例如:

docker run -d -p 80:80 -p 443:443 -e

CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.yourdomain.com:5000 registry.yourdomain.com:5000/rancher/rancher:v2.0.0

創建一個集羣

你可以通過運行rancher/rancher容器所在主機的IP來訪問Rancher 2.0 UI。最開始啓動大約需要1分鐘,第一次訪問時系統會提示你設置密碼。

如何在離線或內網環境中設置Rancher 2.0

接下來,你需要配置URL,節點將通過該地址和Rancher 2.0安裝建立聯繫。在默認情況下,它會顯示你訪問UI的IP地址,不過當你想使用DNS名稱或者負載均衡器的話,你可以在這裏進行更改。

在Global視圖中,點擊Add Cluster

如何在離線或內網環境中設置Rancher 2.0

本文會帶領你創建一個沒有高級選項的custom集羣。想要在你的集羣中配置高級選項,請參考相關的文檔。

如何在離線或內網環境中設置Rancher 2.0

點擊Next,創建testcluster集羣。

在下一個界面,你會獲得一個生成的命令,用於在你想要添加到集羣的節點上啓動。在該命令中使用的鏡像應該會自動地用你配置好的私有鏡像倉庫作爲前綴。

如何在離線或內網環境中設置Rancher 2.0

現在,對你想要添加的節點,你可以選擇要爲它們使用哪些角色,並且可以選擇配置該節點的IP。如果沒有指定,則會自動檢測IP。有關Node Roles的含義,也請參考文檔。

在項目中配置對鏡像倉庫的訪問

如前所述,目前Rancher 2.0還不支持使用帶有身份認證的私有鏡像倉庫來運行Rancher 2.0需要的鏡像。不過在這種情況下,Rancher 2.0支持project中的工作負載。

想要使用身份認證配置鏡像倉庫,你可以在集羣中打開你的項目(Default項目是自動爲你創建的)。在Default項目中,可以導航到Resources->Registries來配置用於工作負載的鏡像倉庫。

如何在離線或內網環境中設置Rancher 2.0

點擊Add Registry

如何在離線或內網環境中設置Rancher 2.0

填寫訪問鏡像倉庫所需的信息:

如何在離線或內網環境中設置Rancher 2.0

總結

希望這篇指南能夠幫助大家進一步瞭解如何在離線或內網環境中設置Rancher 2.0。我們知道很多環境中還會有代理,我們後續還會發布代理設置的相關文章,敬請期待!

最後附上我在本文中用到的一些命令,希望它們能夠爲你所用或帶給你更多靈感。

如何在離線或內網環境中設置Rancher 2.0


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