gitlab 8.5.8版本.参照:https://github.com/sameersbn/docker-gitlab.git.太多年了也没有升级,现在准备备份还原到一个新的服务器然后升级一下。gitlab服务器开始是docker-compose搭建的后面迁移到了kubernetes上(记得当时还是1.14),后面kubernetes 版本持续升级到了1.21。基础环境如下:
kubectl get nodeskubectl get pods -n gitlab
外链图片转存中...(img-3i4prQtR-1678333347024)
外链图片转存中...(img-8oHZOTIX-1678333347025)
【资料图】
image 镜像的版本如下:
kubectl get deployment -n gitlab -o yaml|grep image:
外链图片转存中...(img-rba3rIG7-1678333347025)
升级的过程参考了:升级公司的 GitLab,基本版本是8.5.8 -8.12.13-9.5.10-10.8.7-11.1.4(8的小版本先升级到稳定的8.12,然后到8的最高版本,然后每个大版本进行升级)
注:我这里的gitlab的基础镜像并不是sameersbn/gitlab当时有汉化twang2218/gitlab-ce-zh镜像直接使用了汉化的镜像,直接使用了twang2218/gitlab-ce-zh的镜像为例!存储直接挂载了nfs存储未使用pv,pvc方式,如下:
登陆一台CVM节点,当然了前提是可以exec进入gitlab容器控制台。也可以其他可视化dashboard进入,我这里直接在k8s-master-01节点操作了VM-4-34-rockylinux为操作还原升级节点,这里也备注强调一下:
kubectl exec -it gitlab-77d7878db-j8kqh bash -n gitlabgitlab-rake gitlab:backup:create
确认一下数据的备份目录:
cat /etc/gitlab/gitlab.rb |grep back
默认的备份目录为:/var/opt/gitlab/backups目录
进入/var/opt/gitlab/backups得到生成的备份文件如下:
很漫长得到一个20多G的压缩包!
20g的文件copy 或者mv很慢很慢,尤其是在copy腾讯云cfs文件存储上面的文件。当时还找存储的小伙伴问过,当时他们推荐了使用rclone传输,体验了是很快!
安装rclone,参照:https://cloud.tencent.com/document/product/582/83114(还是在kubernetes 控制节点操作的,当然了其实可以在任何一个局域网内节点安装,然后挂载10.0.0.24的nfs)
wget https://downloads.rclone.org/v1.53.4/rclone-v1.53.4-linux-amd64.zip --no-check-certificateunzip rclone-v1.53.4-linux-amd64.zipchmod 0755 ./rclone-*/rclonecp ./rclone-*/rclone /usr/bin/rm -rf ./rclone-*
源nfs 10.0.0.24目的nfs 10.0.4.134在k8s控制节点挂载。文件夹路径可以自定义。
sudo mount -t nfs -o vers=4.0,noresvport 10.0.0.24:/ /nfs5sudo mount -t nfs -o vers=4.0,noresvport 10.0.4.134:/ /nfs10
外链图片转存中...(img-2SyA4mTA-1678333347028)
rclone sync同步文件到目的nfs(也可以是其他文件系统)
rclone sync /nfs5/data/github/gitlab/backups/1678096354_gitlab_backup.tar /nfs10/data/github/gitlab/backups/ -Pvv --transfers 32 --checkers 64 --copy-links --local-no-check-updated
外链图片转存中...(img-cI75IBYI-1678333347028)
4分钟左右同步完成还是很快的,毕竟有20多G文件!
注:以上操作在Kubernetes控制节点上操作
一台新的rocky服务器,主机名:VM-4-34-rockylinux
安装docker docker-compose:
yum update -y ###先update一下sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum makecache fastsudo yum -y install docker-cesudo service docker startsudo docker -v
注:当然了可以配置一下镜像加速:
配置镜像加速后记得systemctl reload-daemon systemctl restart docker.
docker-compose的安装:
docker_compose_version=v2.16.0 && curl -L "https://github.com/docker/compose/releases/download/${docker_compose_version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装一下nfs客户端(文件准备同步过来,挂载nfs的!)
yum install nfs*sudo mount -t nfs -o vers=4.0,noresvport 10.0.4.134:/ /data
/data目录下创建github目录(与原来nfs实例保证目录结构一致),github目录下创建gitlab postgresql redis目录(gitlab目录已经存在了其实,上面reclone同步的时候会自动创建目录):
[root@VM-4-34-rockylinux github]# pwd/data/data/github[root@VM-4-34-rockylinux github]# mkdir gitlab postgresql redis
注意自己挂载的目录路径以及文件夹目录名.
VM-4-34-rockylinux 主机操作
首先确认文件以及rclone到指定路径
登陆github仓库查找对应版本docker-compose.yml文件放在/data/data/github目录下:
注意:我这里拿得https://github.com/sameersbn/docker-gitlab/blob/v8.9.4/docker-compose.yml的yml文件
修改docker-compose.yml如下:
version: "2"services: redis: restart: always image: sameersbn/redis:latest command: - --loglevel warning volumes: - /data/data/github/redis:/var/lib/redis:Z postgresql: restart: always image: sameersbn/postgresql:9.4-24 volumes: - /data/data/github/postgresql:/var/lib/postgresql:Z environment: - DB_USER=gitlab - DB_PASS=passw0rd - DB_NAME=gitlabhq_production - DB_EXTENSION=pg_trgm gitlab: restart: always image: twang2218/gitlab-ce-zh:8.5.8 depends_on: - redis - postgresql ports: - "80:80" - "10022:22" volumes: - /data/data/github/gitlab:/var/opt/gitlab:Z environment: - DEBUG=false - DB_ADAPTER=postgresql - DB_HOST=postgresql - DB_PORT=5432 - DB_USER=gitlab - DB_PASS=password - DB_NAME=gitlabhq_production - REDIS_HOST=redis - REDIS_PORT=6379 - TZ=Asia/Shanghai - GITLAB_TIMEZONE=Beijing - GITLAB_HTTPS=false - SSL_SELF_SIGNED=false - GITLAB_HOST=gitlab.zhangpeng.com - GITLAB_PORT=80 - GITLAB_SSH_PORT=10022 - GITLAB_RELATIVE_URL_ROOT= - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string - GITLAB_ROOT_PASSWORD= - GITLAB_ROOT_EMAIL= - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true - GITLAB_NOTIFY_PUSHER=false - GITLAB_EMAIL=notifications@example.com - GITLAB_EMAIL_REPLY_TO=noreply@example.com - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com - GITLAB_BACKUP_SCHEDULE=daily - GITLAB_BACKUP_TIME=01:00 - SMTP_ENABLED=false - SMTP_DOMAIN=www.example.com - SMTP_HOST=smtp.gmail.com - SMTP_PORT=587 - SMTP_USER=mailer@example.com - SMTP_PASS=password - SMTP_STARTTLS=true - SMTP_AUTHENTICATION=login - IMAP_ENABLED=false - IMAP_HOST=imap.gmail.com - IMAP_PORT=993 - IMAP_USER=mailer@example.com - IMAP_PASS=password - IMAP_SSL=true - IMAP_STARTTLS=false - OAUTH_ENABLED=false - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER= - OAUTH_ALLOW_SSO= - OAUTH_BLOCK_AUTO_CREATED_USERS=true - OAUTH_AUTO_LINK_LDAP_USER=false - OAUTH_AUTO_LINK_SAML_USER=false - OAUTH_EXTERNAL_PROVIDERS= - OAUTH_CAS3_LABEL=cas3 - OAUTH_CAS3_SERVER= - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false - OAUTH_CAS3_LOGIN_URL=/cas/login - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate - OAUTH_CAS3_LOGOUT_URL=/cas/logout - OAUTH_GOOGLE_API_KEY= - OAUTH_GOOGLE_APP_SECRET= - OAUTH_GOOGLE_RESTRICT_DOMAIN= - OAUTH_FACEBOOK_API_KEY= - OAUTH_FACEBOOK_APP_SECRET= - OAUTH_TWITTER_API_KEY= - OAUTH_TWITTER_APP_SECRET= - OAUTH_GITHUB_API_KEY= - OAUTH_GITHUB_APP_SECRET= - OAUTH_GITHUB_URL= - OAUTH_GITHUB_VERIFY_SSL= - OAUTH_GITLAB_API_KEY= - OAUTH_GITLAB_APP_SECRET= - OAUTH_BITBUCKET_API_KEY= - OAUTH_BITBUCKET_APP_SECRET= - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL= - OAUTH_SAML_IDP_CERT_FINGERPRINT= - OAUTH_SAML_IDP_SSO_TARGET_URL= - OAUTH_SAML_ISSUER= - OAUTH_SAML_LABEL="Our SAML Provider" - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient - OAUTH_SAML_GROUPS_ATTRIBUTE= - OAUTH_SAML_EXTERNAL_GROUPS= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME= - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME= - OAUTH_CROWD_SERVER_URL= - OAUTH_CROWD_APP_NAME= - OAUTH_CROWD_APP_PASSWORD= - OAUTH_AUTH0_CLIENT_ID= - OAUTH_AUTH0_CLIENT_SECRET= - OAUTH_AUTH0_DOMAIN= - OAUTH_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID=
只修改了几个镜像的tag与kubernetes搭建的版本一致(redis版本其实没有太大要求),还有ssh的对外映射端口(否则会与主机的22端口冲突,数据库密码也直接拿来kubernetes集群中的变量了.......):
外链图片转存中...(img-FZMftzTd-1678333347030)
为什么不用8.5.8的docker-compose.yaml文件呢?
https://github.com/sameersbn/docker-gitlab/blob/8.5.8/docker-compose.yml
docker-compose的版本 貌似是V1的起不来服务.....这里就默认用v2的yaml了
cd /data/data/githubdocker-compose up -d
等待容器running......
进入gitlab容器,进入backups目录,执行restore命令还原仓库:
docker exec -it github-gitlab-1 bashcd /var/opt/gitlab/backups/gitlab-rake gitlab:backup:restore BACKUP:1678096354
外链图片转存中...(img-Kr7gCCEi-1678333347031)
外链图片转存中...(img-zVCADnM9-1678333347031)
注:BACKUP后跟备份文件_前面的时间辍格式.除了1678096354_gitlab_backup.tar压缩包外其他文件是执行过程中解压产生的文件。这是在CVM主机挂载目录看到的!
中间会有
This will rebuild an authorized_keys file.You will lose any data stored in authorized_keys file
yes 同意?等待还原完成
ipor host绑定域名。或是直接绑定域名访问gitlab:
外链图片转存中...(img-xvsxZjJ6-1678333347032)
注:https的操作可以创建负载均衡绑定端口的方式or参照gitlab 15.8 on rocky 8中证书配置设置一下?不知道古老能不能适用,升级高版本了再去尝试!验证了一下仓库 and 用户权限都没有什么问题还原到一段落了,下面尝试一下升级!
项目搜索这里,翻页貌似会404......我尝试了线上的github应用也这样就忽略了.......
另外ssh-key 的clone没有成功,尝试了http的clone没有问题,先忽略!
正常的更新流程看网上都是说
升级至当前大版本(major version)的最新小版本(latest minor version)升级至目标大版本(target major version)的首个小版本(first minor version)继续升级至更新的版本根据 gitlab upgrading guide 的说法,版本低于 8.11.Z时,先更新到 8.12.0是比较稳妥的方案。第一部先升级到8.12吧!
注:我这里的twang2218/gitlab-ce-zh镜像很多都与官方的不太一样,还是继续使用twang2218/gitlab-ce-zh的镜像进行升级了!
外链图片转存中...(img-YyueKN9u-1678333347032)
升级gitlab的同时,postgresql的版本也应该同时进行升级的,详细的版本对应关系可参考以下链接:
https://repository.prace-ri.eu/git/help/administration/package_information/postgresql_versions.md
准备在升级gitlab9的时候升级一下postgresql 。8版本就使用默认的9.4.24了!
dockerhub仓库看了一眼:https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags?page=1&name=8.12,8.12的版本tag就顺手选择了8.12.13:
尝试修改docker-compose.yml中gitlab image tag 为twang2218/gitlab-ce-zh:8.12.13
外链图片转存中...(img-wQHkVHIg-1678333347033)
外链图片转存中...(img-hp83WBI3-1678333347034)
docker-compose downdocker-compose up -d
[root@VM-4-34-rockylinux github]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdbb3e922065e twang2218/gitlab-ce-zh:8.12.13 "/assets/wrapper" About a minute ago Up 1 second 0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp, 0.0.0.0:10022->22/tcp, :::10022->22/tcp github-gitlab-1bbce8d9fcc7f sameersbn/redis:latest "/sbin/entrypoint.sh…" About a minute ago Up About a minute 6379/tcp github-redis-1da59ea5a2780 sameersbn/postgresql:9.4-24 "/sbin/entrypoint.sh" About a minute ago Up About a minute 5432/tcp github-postgresql-1
docker logs -f github-gitlab-1
查看日志出现如下报错:
尝试删除secret文件:
cd /data/data/github/gitlab/gitlab-rails/etcrm -rf secret
综上,删除secret后,继续重启gitlab服务:
docker-compose downdocker-compose up -ddocker logs -f github-gitlab-1
恩 docker-compose.yml少了两个参数,参照gitlab on kubernetes的配置:
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-strin
其实kubernetes gitllab中是有的,8.9.4的docker-compose.yml中没有这两个参数,添加一下:
注:截图很多目录会是/data/data/github1/gitlab/是第二次操作后截图,为了熟练练手,图中路径忽略!
尝试继续重启gitlab服务:
cd /data/data/github/docker-compose downdocker-compose up -d
查看gitlab服务日志:
docker logs -f github1-gitlab-1
出现如下错误,按照日志内容,基本确定是文件夹权限问题!
外链图片转存中...(img-Kw1i9zQP-1678333347036)
修改文件夹目录权限:
chmod 2770 -R gitlab/git-data/repositories
请注意文件目录路径,操作命令文件相对路径在/data/data/github/目录
重启gitlab服务:
docker-compose downdocker-compose up -d
外链图片转存中...(img-kqO7rIIh-1678333347037)
查看日志,等待服务正常启动!
docker logs -f github-gitlab-1
用原有gitlab账户登陆此gitlab服务器
外链图片转存中...(img-JkaZ6qaf-1678333347037)
点击管理区域查看gitlab版本,确认版本已经升级到8.12.13版本。
第一步升级算是基本成功!
注:docker-compose 命令都是在/data/data/github目录下执行(放置docker-compose.yml文件目录下)。注意文件目录的切换!
dockerhub查看8版本最后镜像tag为8.17,https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags?page=1&name=8.17。这里就选择升级到8.17.7版本
修改docker-compose.yml文件中镜像tag:
docker-compose downdocker-compose up -ddocker logs -f github-gitlab-1
外链图片转存中...(img-820woXWy-1678333347038)
用原有gitlab账户登陆此gitlab服务器,控制台查看gitlab 服务器版本已经升级到指定8.17.7版本
外链图片转存中...(img-bVQcK6dP-1678333347039)
外链图片转存中...(img-rEB76Ib4-1678333347039)
参照postgresql 与gitlab对应关系.....gitlab升级到9版本,postgresql也的升级到9.6版本以上:
参考:https://github.com/sameersbn/docker-gitlab/tree/9.5.5
还是使用sameersbn 的postgresql镜像,修改tag
https://hub.docker.com/r/sameersbn/postgresql/tags?page=1&name=9.6
外链图片转存中...(img-HmFF8HWX-1678333347039)
准备修改postgresql镜像tag为9.6-3 gitlab镜像tag9.5.10参照
https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags?page=1&name=9.5
docker-compose downdocker-compose up -ddocker ps
docker logs -f github1-postgresql-1
恩 postgresql版本升级会有问题!sameersbn/postgresql中 基础镜像中9.4的版本仓库应该没有了(毕竟太老了)怎么破?流氓一下,找到最新的postgresql的版本:
修改docker-compose.yml postgresql镜像为sameersbn/postgresql:12-20200524
docker-compose downdocker-compose up -d docker logs -f github-postgresql-1
外链图片转存中...(img-bbTzSK6N-1678333347041)
等待postgresql升级完成:
docker ps
查看gitlab容器日志:
docker logs -f github-gitlab-1
外链图片转存中...(img-PjVzqlwh-1678333347041)
貌似会有点问题无法登陆。集体重启一遍docker-compose服务:
docker-compose downdocker-compose up -d docker logs -f github-gitlab-1
等待gitlab 容器正常运行:
外链图片转存中...(img-FwXa9v8L-1678333347042)
用原有gitlab账户登陆此gitlab服务器,控制台查看gitlab 服务器版本已经升级到指定9.5.10版本:
另外关于postgresql的升级后文件目录的变化:
外链图片转存中...(img-DaNKsQIJ-1678333347043)
继续升级gitlab到10大版本.到dockerhub参考一下镜像仓库版本:
https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags?page=1&name=10.8
修改gitlab镜像tag为10.8.7
外链图片转存中...(img-pcZJW4Sv-1678333347043)
docker-compose downdocker-compose up -ddocker ps -a
docker logs -f github-gitlab-1
外链图片转存中...(img-XF8gadcL-1678333347044)
等待的有些漫长
点击管理区域验证版本10.8.7:
外链图片转存中...(img-Izdc7tvY-1678333347044)
继续找到11大版本的最高版本11.1.4
https://hub.docker.com/r/twang2218/gitlab-ce-zh/tags?page=1&name=11.1
外链图片转存中...(img-8CeJ7Qsx-1678333347045)
docker-compose downdocker-compose up -ddocker ps -a
查看日志,等待服务升级:
docker logs -f github1-gitlab-1
外链图片转存中...(img-CQZraTrX-1678333347046)
点击管理区域:
确认版本升级到11.1.4:
外链图片转存中...(img-M4kxmPSB-1678333347046)
就先升级到这里后续用官方镜像or sameersbn镜像继续完成升级到更高版本!
postgresql配置的时候第一次出现过如下报错:
参照csdn的一篇文章:https://blog.csdn.net/weixin_42758299/article/details/117958407,修改了pg_hba.conf
外链图片转存中...(img-mJcE5mMD-1678333347047)
然后重启了postgresql正常启动了:
标签:
gitlab8 5 8版本 参照:https: github com sameersbn docker-gitlab git 太多年了也没有升级,现在准备备
解答:1、蓝莓可以冷冻。2、蓝莓可以冷冻(10以下)。蓝莓采摘后可以放入速冻冷库,可以保持其口感和营养...
欢迎观看本篇文章,小勉来为大家解答以上问题。结节是什么意思,结节简单介绍很多人还不知道,现在让我...
1、截至目前,以QQ手机版为例,检查方法如下:2、在手机上打开QQ软件,点击左上角的圆形头像或者向右滑...
多地优化楼市限售政策:释放改善需求挂牌量显著增长中新网3月11日电(中新财经记者左宇坤)房地产需求侧的...
得知上越来演出由大IP《后宫甄嬛传》改编的越剧《甄嬛》,自然不容错过,泉州戏校还专门带着学生组团来...
现在大家使用手机的频率越来越频繁,手机也为我们提供了许多的便利,今天小编也来说一下这个红米k30pro...
现年14岁的刘秀桦(Josephine)是富豪港商刘銮雄与甘比的大女儿,虽年纪轻轻,但从小就被父亲大刘宠爱,...
1、跟谁游,个性游玩社交平台,是一个解决大学生和白领们“和谁玩,去哪玩,玩什么”的游玩、游戏,游艺...
3月10日,由大鹏自编自导自演的最新力作《保你平安》正式上映,首映日票房收入2400万元,击败了同档期新...
直播吧3月11日讯在本轮意甲联赛的一场比赛中,国际米兰客场1-2负于斯佩齐亚,遭遇了本赛季意甲联赛的第8...
1、1)首先,打开“系统属性”点“高级”选项卡,在“启动和故障恢复”区里打开“设置”,去掉“系统启...
在经济学中,生命的反义词并不是死亡而是僵化,僵化源于规则化、程序化、标准化的优化,在初期减少社会...
【环球网报道】据日本《读卖新闻》10日报道,在日本东京巨蛋体育馆当天进行的2023世界棒球经典赛B组第二...
由大鹏执导并主演的喜剧电影《保你平安》已于今日(3月10日)起在全国IMAX影院公映。IMAX今日发布幕后特辑...
2022第23届佛山秋季茶业博览会于2022年12月2-5日在佛山陈村花卉世界展览中心隆重开幕。同期举办“东方美...
了不起的你丨社区医生刘硕:做居民健康的“守护者”
圣诞节的英语是名词Christmas,意思是圣诞节和圣诞节期间。嫁给圣诞!圣诞快乐!我和我的祖父母度过了一...
1、《心理障碍自我疏导治疗》是2008年人民卫生出版社出版的图书,作者是鲁龙光。2、本书在不同的治疗阶...
据上海法治报消息祖母墓碑上刻有孙子与孙媳妇名字结果二人离婚后因刻名引起一场人格权官司近日,紫阳县...
9日,韩国男团JYJ成员,前东方神起成员金在中被曝曾在2020年被追缴1亿韩元(约合人民币53万元)税款,对...
海天瑞声(688787)03月10日在投资者关系平台上答复了投资者关心的问题。
1、由动词开头构成的短语、词组很多。2、复习时应分类处理:一、动词+介词1 lookat…看…,looklik
*ST海伦3月9日公告,3月9日,公司收到中国证券监督管理委员会江苏监管局下发的《行政处罚及市场禁入事先...
1、热源,热力学指的是具有很大热容量的物系。2、它既可以作为取出热量的热源,又可以作为投入热量的热...
1、链接:提取码:9xa4广播剧《柳林风声》,虚荣的蛤蟆连连闯祸。2、为了教育他,动物们煞费苦心,对他百...
大家好,我是第一美食的飞哥,关注阿飞,有更多的家常面点供大家参考。糖包子是人们在冬季喜欢吃的食物...
运势对个人事业的影响是相当明显的,一般来说,财运好的人发财几率会高,这样的人如果选择创业,那么就...
【2月CPI同比上涨1%大幅低于机构预期!对货币政策有何影响?】接受证券时报记者采访的市场人士表示,考...
1、凭身份证或公积金联名卡到当地公积金管理中心查询。2、2、当地公积金管理中心网站查询,需要身份证号...
Copyright © 2015-2022 国华娱乐网版权所有 备案号:京ICP备2021034106号-22 联系邮箱:55 16 53 8 @qq.com