1.
为什么选择香港 VPS 作为测试与 CI 节点
香港 VPS 延迟低、访问两地(中国内地与国际)稳定,适合做真实流量回放和与外部服务联调。建议用于功能测试、集成测试、预发布灰度与轻量级 CI 节点。
2.
选购与规格建议
原则:CPU 2 核以上、内存 4GB 起、SSD、带公网 IPv4。带有快照和镜像功能的厂商(如阿里云香港、腾讯云香港或国际 VPS 服务商)便于回滚。购买时开启自动备份或快照功能。
3.
首次上线与 SSH 安全配置
步骤:1) 本地生成密钥:ssh-keygen -t ed25519 -C "your@email" 2) 登录控制台添加密钥或通过密码首次登录:ssh root@IP 3) 创建非 root 用户:adduser dev && usermod -aG sudo dev 4) 配置 SSH 只允许密钥登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no、PasswordAuthentication no,重启 sshd。
4.
基础防火墙与时间设置
使用 UFW(Ubuntu 示例):apt update && apt install -y ufw && ufw allow OpenSSH && ufw allow 80 && ufw allow 443 && ufw enable。设置时区:timedatectl set-timezone Asia/Hong_Kong。
5.
安装 Docker 与 docker-compose
在 Ubuntu:apt install -y apt-transport-https ca-certificates curl gnupg lsb-release && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 然后添加源并 apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin。将用户加入 docker 组:usermod -aG docker dev。
6.
配置本地私有镜像仓库(加速与缓存层)
运行官方 registry:docker run -d -p 5000:5000 --restart=always --name registry registry:2。CI 中使用:image: IP:5000/your-image:tag,推送前 docker tag、docker push。可加 nginx 反向代理并启用 TLS(见第8步)。
7.
部署自托管 CI Runner(GitLab / GitHub 示例)
GitLab Runner(Debian/Ubuntu):curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash && apt install -y gitlab-runner;注册:gitlab-runner register --url https://gitlab.com/ --registration-token TOKEN --executor docker --docker-image docker:20.08-dind。GitHub Actions Runner:在仓库 Settings > Actions > Runners 页面获取 token,执行:mkdir actions-runner && cd actions-runner && curl -o actions-runner.tar.gz -L https://github.com/actions/runner/releases/download/v2.x.x/actions-runner-linux-x64-2.x.x.tar.gz && tar xzf actions-runner.tar.gz,然后 ./config.sh --url REPO_URL --token TOKEN,最后 sudo ./svc.sh install && sudo ./svc.sh start。
8.
配置 Nginx 与 TLS(让 CI 服务安全暴露)
安装 nginx:apt install -y nginx。示例反代 registry 或 runner 面板,启用 LetsEncrypt:apt install -y certbot python3-certbot-nginx && certbot --nginx -d ci.example.com。确保 firewall 放通 443。
9.
CI 流水线实践要点(Docker 缓存与并行)
建议:使用本地 registry 做 layer cache;在 gitlab-ci.yml 中配置 services: docker:dind,variables: DOCKER_HOST: tcp://docker:2375,设置 image pull/push 步骤并使用缓存卷挂载 /var/lib/docker。对于 GitHub Actions,可用 actions/cache 缓存依赖并使用 self-hosted runner 执行镜像构建。
10.
回滚与备份策略
利用 VPS 快照做发布前备份;镜像打标签(image:repo:sha),失败时用旧标签回滚。配置定时脚本 rsync 到对象存储或使用云厂商快照 API 做每日备份。
11.
监控与日志聚合
安装 Prometheus node_exporter:docker run -d --net=host --pid=host --name node_exporter quay.io/prometheus/node-exporter,并在 Prometheus 上添加目标。聚合日志用 Filebeat/Elasticsearch 或直接把容器日志发到远端 ELK/EFK。
12.
性能与网络注意事项
香港 VPS 对内地延迟低但带宽计费差异大,CI 大量镜像拉取建议启用镜像加速或使用 CDN。测试真实流量时注意保护数据隐私与限流,避免在 CI 中泄露密钥。
13.
问:在香港 VPS 上做 CI 成本和速度如何平衡?
答:选择合适实例(短期并行用高规格,长期 runner 用小规格并水平扩展);使用私有 registry、镜像缓存和层缓存能显著降低带宽与构建时间,从而实现成本与速度平衡。
14.
问:如何安全地在 VPS 上存放 CI 凭据与密钥?
答:不要把凭据写入仓库或镜像,使用 CI 的 secret 管理(GitLab/GitHub Secret),在 runner 主机上使用文件系统权限或 HashiCorp Vault 等集中密钥管理;SSH key 只存放在受控目录并限制权限。
15.
问:如果需要横向扩展 CI,香港 VPS 推荐哪些做法?
答:用编排(Kubernetes / Docker Swarm)管理 runner,基于 autoscaling 策略启动短期高性能实例;或用多台小型 runner 通过调度器分摊任务,配合共享私有 registry 与缓存卷。
来源:开发者必读香港vps 用途 在测试环境和CI部署中的优势