Kompose:一个转换docker-compose为k8s资源清单y...

运维有笔谈 2024-07-18 16:44:32

私信运维笔谈,回复 “阿里云k8s” 可以获取 《阿里云Kubernetes项目实战手册.pdf》”。

为了方便快捷,我们有不少应用是docker-compose来快速拉起的,如何把这些docker-compose启动的应用快速迁移到kubernetes环境里呢?靠我们手写yaml还是挺累的。

推荐一款转换工具:kompose。Kompose 是一个开源工具,由 Red Hat 开发并维护,旨在简化从 Docker Compose 文件向 Kubernetes 资源对象(如 Deployment、Service 等)的转换过程。

kompose logo

GitHub地址:https://github.com/kubernetes/kompose

官网地址:https://kompose.io/

1.安装kompose

这里我们推荐直接下载二进制文件(Go直接编译之后的可执行文件)。

# Linuxcurl -L https://github.com/kubernetes/kompose/releases/download/v1.34.0/kompose-linux-amd64 -o kompose# Linux ARM64curl -L https://github.com/kubernetes/kompose/releases/download/v1.34.0/kompose-linux-arm64 -o kompose# macOScurl -L https://github.com/kubernetes/kompose/releases/download/v1.34.0/kompose-darwin-amd64 -o kompose# macOS ARM64curl -L https://github.com/kubernetes/kompose/releases/download/v1.34.0/kompose-darwin-arm64 -o komposechmod +x komposesudo mv ./kompose /usr/local/bin/kompose

假如是Centos,并且安装了epel-release,我们还直接yum安装即可:

sudo yum -y install kompose2.添加kompose的bash自动扩展# Bash (添加到文件 .bashrc)source <(kompose completion bash)kompose completion fish | source3.Kompose架构图

4.简单使用实例

我们以memos这个应用的docker-compose.yml为例:

version: "3"services: memos: image: ghcr.io/usememos/memos:0.22.2 restart: unless-stopped ports: - 5230:5230 volumes: - ./memos/:/var/opt/memos

我们执行下转换命令:

kompose convert -f docker-compose.yml

根据docker-compose.yml内容,自动生成了deployment,service和pvc三个yaml,pv需要自行处理。

Kompose还支持生成helm chart文件,参考命令如下:

kompose convert --chart -f docker-compose.yml -o my-helm-chart

更多的功能和发现,我们可以使用kompose --help命令,大佬们可以下载下来自行体验吧。

如果您在日常运维工作中遇到了任何问题或挑战,无论是关于系统配置、性能优化、故障排除还是其他方面,都欢迎您随时留言或私信我。我会尽我所能为您提供解决方法或建议。相互学习,积累更多的经验和知识。私信回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》。

0 阅读:0

运维有笔谈

简介:感谢大家的关注