為了在内網上使用Kubernetes,有時候因為網絡原因,需要離線進行部署。
裸機安裝
我這裡使用Ubuntu進行試驗,需要解決幾個問題:
- Ubuntu的離線安裝。下載下傳,安裝時選擇不聯網可以正常完成,沒有問題。
- Ubuntu的包更新,應用系統包必須更新到較新版本,否則有的軟體安裝不上。
- 這個可以通過建立本地内網的 Archive鏡像來實作。
- 這個其實嘛,最好是全部抓源碼自己編譯,搞個分發版。不過難度和資源都比較大,還是吃現成的吧。
- 先鏡像下來整個最新的軟體包。參考:
- 建立Ubuntu安裝包服務鏡像的腳本, https://my.oschina.net/u/2306127/blog/1622218
- 建立Ubuntu apt的本地Mirror, https://my.oschina.net/u/2306127/blog/541895
- 使用容器技術搭建apt鏡像站, https://my.oschina.net/u/2306127/blog/1626991
- 使用IPFS搭建Ubuntu apt鏡像站點, https://my.oschina.net/u/2306127/blog/1626254
- 再把archive包目錄全部複制到内網(實體拷貝或通過網閘),然後建立mirror服務。
- 使用apt-mirror或者nginx、ipfs建立靜态網站服務即可。
- 修改/etc/apt/sources.list或該目錄下相關檔案,指向到建立立的服務。
- 然後運作 sudo apt update && sudo apt upgrade -y即可更新安裝包了。
- 這個可以通過建立本地内網的 Archive鏡像來實作。
- Docker容器引擎的下載下傳和離線安裝,這是Kubernetes運作的基礎了。
- 如果使用GPU,還需要下載下傳Nvidia-Docker并進行安裝。
- kubeadm/kubectl/kubelet的安裝,這是Kubernetes運作的幾個基礎檔案。其它的部分都已經容器化了,通過容器的離線下載下傳進行部署。
- Kubernetes系統容器的下載下傳和安裝。需要幾個步驟來完成。
- 通過腳本下載下傳(需要周轉的哈)到本地(參考 Ubuntu 18.04 LTS安裝Kubernetes 1.11 )。
- 然後export到容器檔案格式。
- 複制到内部網絡環境。
- 對容器檔案解包,恢複為Docker鏡像。
- 使用kubeadm或其它工具進行安裝。與線上安裝基本相同,需要指定安裝的版本,否則會去線上搜尋。
更多方法
還有其它的辦法(滿足的需求和效果不同),包括:
- 在網絡環境下,做好虛拟機,然後整個放到内網上運作。但是,更新還需要單獨處理,而且需要注意軟體和資料的安全性。
- 使用DinD(Docker in Docker),跟虛拟機類似,不同的是整個Kubernetes叢集都運作在Docker中。
- 建立自己的作業系統分發版,把相關軟體打包進去。
其它參考
- 用kubeadm離線部署kubernetes v1.9.0, https://blog.csdn.net/u012286287/article/details/79716588
- Kubernetes-基于Rancher進行Kubernetes的離線安裝, https://www.kubernetes.org.cn/4089.html
- 推薦,使用的centos: [K8s 1.9實踐]Kubeadm 1.9 HA 高可用 叢集 本地離線鏡像部署
本文轉自掘金-
Kubernetes的離線部署(Ubuntu)方法試驗