官网手册:
从 Helm Chart 迁移到 Linux 包 | 极狐GitLab
系统:debian 12
gitlab版本:14.8.2-jh
注意:先按照官方文档步骤操作,以下是实际生产迁移遇到的问题补充
1. 在K8S环境导出secret
将 GITLAB_NAMESPACE
和 RELEASE
替换为适当的值:
kubectl get secret -n GITLAB_NAMESPACE RELEASE-rails-secret -ojsonpath='{.data.secrets\.yml}' | yq '@base64d | from_yaml | .production' -o json > rails-secrets.json
2. 将密钥转换成json
yq eval-all 'select(filename == "gitlab-secrets.json").gitlab_rails = select(filename == "rails-secrets.json") | select(filename == "gitlab-secrets.json")' -ojson gitlab-secrets.json rails-secrets.json > gitlab-secrets-updated.json
3. 安装minio并配置
解决报错:static_object_token: Object Storage is not enabled for AvatarUploader
修改配置文件:/etc/gitlab/gitlab.rb
gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['proxy_download'] = true
gitlab_rails['object_store']['connection'] = {
'provider' => 'AWS',
'region' => 'eu-central-2',
'aws_access_key_id' => 'rD6XtgOBPzp59vGwCyPw',
'aws_secret_access_key' => 'vmnvlbp3lXIwbzBcQ0Nw741ybo1S60bqgc77n2wK',
'endpoint' => 'http://10.16.15.213:9000',
'path_style' => true # Use 'host/bucket_name/object' instead of 'bucket_name.host/object'
# true:host/bucket_name/object,如:http://192.168.80.4:9000/gitlab-uploads/object
# false:bucket_name.host/object,如:http://gitlab-uploads.192.168.80.4:9000/object
}
# OPTIONAL: The following lines are only needed if server side encryption is required
#gitlab_rails['object_store']['storage_options'] = {
# 'server_side_encryption' => '<AES256 or aws:kms>',
# 'server_side_encryption_kms_key_id' => '<arn:aws:kms:xxx>'
#}
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'gitlab-artifacts'
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'gitlab-mr-diffs'
gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'gitlab-lfs'
gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'gitlab-uploads'
gitlab_rails['object_store']['objects']['packages']['bucket'] = 'gitlab-packages'
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'gitlab-dependency-proxy'
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'gitlab-terraform-state'
gitlab_rails['object_store']['objects']['ci_secure_files']['bucket'] = 'gitlab-ci-secure-files'
gitlab_rails['object_store']['objects']['pages']['bucket'] = 'gitlab-pages'
4. 备份和恢复
进入toolbox pod执行 backup-utility
#toolbox
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# Verify
gitlab-ctl status
gitlab-backup restore BACKUP=1728634774_2024_10_11_14.8.2-jh
#restart
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true