教你如何將應用從docker-compose遷移到k8s中

公司之前有一些應用是通過docker-compose部署,最近領導讓我將其遷移到k8s中。我已經初步完成任務,現記錄其操作過程,分享給各位朋友。

工具推薦

當我接到這個任務,我的第一感覺是要參考docker-compose.yaml中的信息,手寫一套k8s的yaml部署文件。這樣當然是可行的,但是效率比較低,且需要同時熟悉docker-compose和k8s的yaml文件的結構。
後來我發現瞭一個專門的遷移工具,可方便地通過docker-compose.yaml自動生成k8s的yaml部署文件。這個工具就是kompose,現已經被k8s官方文檔收錄:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/translate-compose-kubernetes/ 。

操作步驟

安裝kompose

註意:僅需要下載安裝kompose。運行環境中可以沒有docker,也無需kubectl。

curl -L https://github.com/kubernetes/kompose/releases/download/v1.24.0/kompose-linux-amd64 -o kompose
chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose

轉換yaml

在docker-compose.yaml所在的路徑下運行kompose convert命令進行轉換。如下圖所示:

請添加圖片描述

調整

將新生成的系列文件復制到到本地計算機進行調整。生成的yaml文件中自動填入瞭不少帶kompose字樣的標簽和註解,可以將其替換。您可能還需要根據實際需求調整與網絡相關的yaml文件。

部署到k8s

調整好yaml文件後,就可以在k8s部署。在本示例中,我為瞭操作方便,將所有的內容寫到瞭一個yaml文件中。如下圖所示。

請添加圖片描述

請添加圖片描述

到此這篇關於如何將應用從docker-compose遷移到k8s中的文章就介紹到這瞭,更多相關docker compose遷移到k8s內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: