如何将已有的docker服务迁移至Kubernetes集群中

问题描述

在接触到Kubernetes集群之前,我所需要的服务都是以docker的形式部署在三台不同的服务器上的,由于docker服务数量越来越多,我有时分不清某个服务部署在哪台服务器上,或者我想将一个服务由A服务器迁移至B服务器就很麻烦,还有一个就是我想接入promethese来做监控
综上原因,我打算将这三台服务器组成一个Kubernetes集群,并且将所有的docker服务都迁移至Kubernetes集群中
目前我已有的服务有gitlab、nextcloud、verdaccio还有一些个人打包镜像定制的服务,这里就以这gitlab服务为代表来描述整个迁移过程

迁移思路

我的迁移思路就是:

  1. 先准备好一个跟原来服务使用相同版本镜像的环境
  2. 将这个空白环境的服务启动
  3. 将原来docker服务的数据进行打包或者说备份
  4. 将备份的压缩文件复制到现在的集群环境中来
  5. 执行恢复操作
  6. 检查恢复后的数据是否异常,恢复后的服务是否都可用

准备工作

在正式迁移前,你需要准备如下:

  1. 一个已经部署好并且能够正常运行的Kubernetes集群(包括Kubernetes的网络组件、ingress controller等都需安装好)
  2. 已经具备Kubernetes的基础知识,包括如何编写资源对象的yaml文件、创建pv/pvc等

迁移gitlab过程

我的gitlab打算迁移到Kubernetes集群中,不指定分配在哪个节点,但是要求要将gitlab的配置文件、数据、日志映射出来并保存
我这里是先创建一个空的gitlab,也就是提前讲gitlab所需要的资源对象都迁移过来,然后再执行恢复数据的步骤

数据持久化保存可以使用storageclass可以自己创建pv并且绑定pvc,这里我是自己创建pv跟pvc的
正式开始迁移前,请将三台服务器上部署nfs,并且将一个统一保存数据的目录挂载到node节点上(我这里是将master的/volume目录挂载到两个node节点上)

1. 创建namespace

创建一个namespace,将gitlab相关的资源对象都部署在这个namespace里面

#创建namespace app
kubectl create namespace app

2. 创建gitlab需要的pv跟pvc

这里通过nfs的方式进行数据卷挂载,gitlab的相关数据都挂载到master的/data/gitlab目录下

root@master:/deployment/pvc# cat gitlab-pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  gitlab
  labels:
    name: "gitlab"  
spec:
  capacity:
      storage: 2Gi
  accessModes: ["ReadWriteMany"]
  volumeMode: Filesystem
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /data/gitlab
    server: 172.16.10.21
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-pvc
  namespace: app
spec:
  accessModes: ["ReadWriteMany"]
  resources:
    requests:
      storage: 2Gi
  selector:
    matchLabels:
      name: "gitlab"

创建这个pv跟pvc

kubectl apply -f gitlab-pv.yaml 

3.创建gitlab的deployment

root@master:/deployment/deployment# cat gitlab-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab
  namespace: app
  labels:
    name: gitlab
spec:
  selector:
    matchLabels:
      nam
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值