docker compose迁移到k8s
农民工老王 人气:0公司之前有一些应用是通过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文件中。如下图所示。
加载全部内容