k8s内部署gitlab与备份和恢复

k8s内部署gitlab与备份和恢复
一:安装gitlab到k8s
1.登陆阿里云》容器服务》应用》无状态》选择右上方使用镜像创建
2.填写信息 镜像: registry-vpc.cn-beijing.aliyuncs.com/maikebing/gitlab-ce-zh:9.1 (找个官方中文版镜像)
3.不要勾选总是拉镜像 (备份是a版本 恢复的时候是b版本 极容易出问题 最好一个版本用到完)
4.新增四个环境变量 TERM=xterm LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
5.存活检查(建议开启 消耗一定资源 但是会自动重启挂了的容器 也可以不开启 挂了手动重启一下就行了 )
6.生命周期可不填 启动后处理 是每次启动后都会处理 (没有什么命令要这么干 )
7.挂载数据到本地存储 新增三个 /gitlab/data:/var/opt/gitlab /gitlab/logs:/var/log/gitlab /gitlab/config:/etc/gitlab
(挂载源是本机路径 容器路径是容器内的路径 这三个文件夹放的是gitlab所有的数据 data文件夹里面后面会有用于备份和备份恢复的文件 一定要挂载在本地)(本地没有文件夹 会去自动创建)
8.容器服务》路由与负载均衡》服务 由于k8s没有暴露到外部 所以要新建一个服务 创建服务 选择之前运行起来的容器gitlab 服务类型选择为负载均衡 服务内部的端口填31352 暴露到外部访问的端口为8181(这样外网访问的时候就是IP+8181自行设置一个不冲突的就行了)

(要是有什么想对gitlab干的 又不是每次都要运行的 比如加邮件配置呀什么的 可以直接到容器内部去配一次)
二:备份与恢复
1.首先进入容器内部 拿阿里云举例:容器服务》应用》无状态》详情》更多–连接终端
(在docker里面进入gitlab的容器 sudo docker exec -it gitlab /bin/bash)
2.gitlab-rake gitlab:backup:create #备份仓库、数据库、用户、用户组、用户密钥、权限 备份后的文件是一个带时间戳的tar包
(#默认备份后的文件存在/var/opt/gitlab/backups/目录下 不过没必要改他的默认存放路径 已经挂载到本地了 就不怕丢了
ls -a /var/opt/gitlab/backups/
vim /etc/gitlab/gitlab.rb #编辑配置文件
gitlab_rails[‘backup_path’] = “/data/gitlab/backups” #修改路径
gitlab-ctl reconfigure #从载配置文件
3.定时备份数据
vim /etc/crontab
0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
(上面的意思是每天凌晨4点备份一次)
4.只保留7天的备份
vim /etc/gitlab/gitlab.rb
gitlab_rails[‘backup_keep_time’] = 604800
5.恢复
恢复的时候看好gitlab镜像的版本号 不一样的版本之间来恢复经常报错
1.先把那个tar包复制到新的 /var/opt/gitlab/backups/ 目录下面 (就是之前打包时候 那个包存放的目录 这个目录其实被挂载在本地了 也就是如果挂了 根本就不用复制 本地有)
2.停数据连接 (停不停无所谓 都要恢复版本了 那肯定是容器挂了呀)
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
3.恢复gitlab仓库
itlab-rake gitlab:backup:restore BACKUP=1555413729_2019_04_16_11.9.8
(上面的数字就是之前的tar包前面的时间戳)
4.启动gitlab服务
sudo gitlab-ctl start

猜你喜欢

转载自blog.csdn.net/qq_42437047/article/details/89352725