教你如何将应用从docker-compose迁移到k8s中

目录
  • 工具推荐
  • 操作步骤
    • 安装kompose
    • 转换yaml
    • 调整
    • 部署到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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • k8s和Docker关系简单说明

    最近项目用到kubernetes(以下简称k8s,k和s之间有8个字母).虽然之前也有简单使用过,但最近发现k8s概念较多,命令也有些不够用了,故想借此机会写点东西,更全面认识并使用k8s.本篇文章目的:让你更全面了解k8s概念,以及学到在工作中常用的操作.整体更偏向于原理和应用.在正式开始k8s之前,我们先看看k8s和Docker的关系,分别从虚拟化角度.部署方式角度叙述why use容器,话不多说,开干. 目前发现并没有将kubernetes和Docker技术产生背景和需求进行比较的文章,本

  • k8s部署docker容器的实现

    环境:(docker ,k8s集群),继续上次docker 启动的java程序的镜像为例(https://www.jb51.net/article/189462.htm) 将制作的镜像推送到docker的私有仓库 docker tag demo-img:latest localhost:5000/demo-img:1.0 docker push localhost:5000/demo-img:1.0 k8s部署该镜像k8s创建命名空间及secret 创建命名空间cl-test,这里名字根据自己的

  • Docker+K8S 集群环境搭建及分布式应用部署

    1.安装docker yum install docker #启动服务 systemctl start docker.service systemctl enable docker.service #测试 docker version 2.安装etcd yum install etcd -y #启动etcd systemctl start etcd systemctl enable etcd #输入如下命令查看 etcd 健康状况 etcdctl -C http://localhost:2379

  • 在docker中部署k8s的方法

    K8s k8s是一个cluster集群,在cluster集群中有多个Namespace,一个namespace下又有多个pods,一个pod下有多个container. 这篇文章带你从头在docker中部署k8s. docker下载 docker安装 docker: https://docs.docker.com/docker-for-mac/install/ 在docker中使用k8s: https://docs.docker.com/desktop/kubernetes/ 在docker设置

  • Docker与K8s关系介绍不会Docker也可以使用K8s

    目录 K8s 和 Docker 的关系 容器用 Docker,需要学到什么程度 总结 K8s 和 Docker 的关系 Docker 和 K8s 这两个经常一起出现,两者的Logo 看着也有一定联系一个是背上驮着集装箱的鲸鱼一个是船的舵轮. 不过两者不能放在一个维度上讨论,Docker 是当前流行的 Linux 容器解决方案,利用 Namespaces .Cgroups 以及联合文件系统UnionFS 实现了同一主机上容器进程间的相互隔离. NameSpaces:隔离进程,让进程只能访问到本命名

  • 教你如何将应用从docker-compose迁移到k8s中

    目录 工具推荐 操作步骤 安装kompose 转换yaml 调整 部署到k8s 公司之前有一些应用是通过docker-compose部署,最近领导让我将其迁移到k8s中.我已经初步完成任务,现记录其操作过程,分享给各位朋友. 工具推荐 当我接到这个任务,我的第一感觉是要参考docker-compose.yaml中的信息,手写一套k8s的yaml部署文件.这样当然是可行的,但是效率比较低,且需要同时熟悉docker-compose和k8s的yaml文件的结构.后来我发现了一个专门的迁移工具,可方便

  • 亲手教你Docker Compose安装DOClever的详细过程

    目录 一.Docker Compose是什么以及Docker Compose安装和使用 二.DOClever是什么 三.使用Docker Compose安装DOClever步骤 一.Docker Compose是什么以及Docker Compose安装和使用 点击查看我的另外一篇:<Docker Compose的安装和使用> 二.DOClever是什么 DOClever是一个可视化免费开源的接口管理工具 ,可以分析接口结构,校验接口正确性, 围绕接口定义文档,通过一系列自动化工具提升我们的协作

  • Docker Compose的安装和使用步骤

    一.Docker Compose是什么? Docker Compose是一个工具,用于定义和运行多容器应用程序的工具: Docker Compose通过yml文件定义多容器的docker应用: Docker Compose通过一条命令根据yml文件的定义去创建或管理多容器: Docker Compose是用来做Docker的多容器控制,是一个用来把Docker自动化的东西.有了Docker Compose你可以把所有繁复的 Docker 操作全都一条命令,自动化的完成(可以简单理解为批处理).

  • 使用Docker compose编排Laravel应用的方法

    前言 Laravel官方开发环境推荐的是Homestead(其实就是一个封装好的Vagrant box),我感觉这个比较重,于是自己用Docker compose编排了一套开发环境,在这里分享下. 环境要求 先要安装好Docker 和 Docker compose,而且Docker 仓库镜像最好换成国内的.一般地,我开发电脑上会运行一个Vagrant,然后再在里面运行Docker等应用. 主要思路 Docker官方推荐的是一个容器运行一个服务,所以会有Compose编排,各个服务间通过容器互联技

  • Docker Compose常用命令详解

    1.Docker compose的使用非常类似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到docker-compose.yml文件所在的目录下才能执行. 2.compose以守护进程模式运行加-d选项 $ docker-compose up -d 3.查看有哪些服务,使用docker-compose ps命令,非常类似于 docker 的ps命令 4.查看compose日志 $ docker-compose logs web $ docker-compose lo

  • 使用Docker Compose 实现nginx负载均衡的方法步骤

    以Docker的网络管理,容器的IP设置为基础知识实现Nginx负载均衡 查看所有docker网络 docker network ls /* NETWORK ID NAME DRIVER SCOPE b832b168ca9a bridge bridge local 373be82d3a6a composetest_default bridge local a360425082c4 host host local 154f600f0e90 none null local */ // compose

  • Docker Compose引用环境变量的方法示例

    在项目中,往往需要在 docker-compose.yml 文件中使用环境变量来控制不同的条件和使用场景.本文集中介绍 docker compose 引用环境变量的方式. 说明:本文的演示环境为 ubuntu 16.04. Compose CLI 与环境变量 Compose CLI(compose command-line 即 docker-compose 程序)能够识别名称为 COMPOSE_PROJECT_NAME 和 COMPOSE_FILE 等环境变量(具体支持的环境变量请参考这里).比

  • Docker系列之使用Docker Compose编排容器

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: 1.Dockerfile 定义应用的运行环境 2.docker-compose.yml 定义组成应用的各服务 3.docker-compose up 启动整个应用 2. 安装Compose 直接从github下载即可,前提要先安装Docker,版本要1.9.1以上 Note that Compose 1.8.0 requires

  • docker compose 使用教程

    Docker提供一个容器编排工具------>Docker Compose,它允许用户在一个模板(YAML格式)中定义一组相关联的应用容器,这组容器会根据配置模板中的"--link"等参数 对启动的优先级自动排序,简单执行一条"docker-compose up",就可以把同一个服务中的多个容器一次创建和启动. 安装docker-compose: 复制代码 代码如下: curl -L https://github.com/docker/compose/rele

  • Docker Compose 网络设置详解

    基本概念 默认情况下,Compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络中.这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问. 默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml所在目录的名称.如需修改工程名称,可使用--project-name标识或COMPOSE_PORJECT_NAME环境变量. 举个例子,假如一个应用程序在名为myapp的目录中,并且do

随机推荐