README-HARBOR-SETUP.md 4.6 KB

Harbor:alien_cloud 项目与 Jenkins 对接

重要: Harbor Web 与 Registry 在 39.105.153.68(浏览器如 http://39.105.153.68/harbor/...)。
不是 39.106.135.88。docker login / HARBOR_REGISTRY 须用 153.68

Jenkins(示例):http://39.106.135.88:30003 — 可与 Harbor 分机部署,网络互通即可。


当前进度(对照打勾)

  • Harbor 项目 alien_cloud(私有)
  • 机器人 robot$alien_cloud+jenkins-k8s(拉取/推送等权限)
  • Token 写入 Jenkins 凭据 harbor-robot-alien
  • 有 Docker 的机器docker login 39.105.153.68 成功
  • 推送基础镜像 39.105.153.68/alien_cloud/base/openjdk8-ffmpeg:v1
  • UAT Job 推业务镜像(见 README-UAT-HARBOR-PUSH.md
  • Jenkins 凭据 ack-kubeconfig-alien + Job 试跑
  • ACK 命名空间 / Deployment / imagePullSecret

一、保存机器人 Token → Jenkins

Harbor 2.x 里 机器人名称不能点击,这是正常现象;Token 不会在详情页里长期展示。

获取 Token 的两种方式

方式 A:重新生成密钥(推荐,保留原机器人)

  1. 机器人账户 列表中,勾选左侧复选框(选中 robot$alien_cloud+jenkins-k8s 那一行)。
  2. 点表格上方的 「其他操作」 下拉菜单。
  3. 选择 「重新生成密钥」 / 「Regenerate secret」 / 「刷新令牌」(中文版措辞可能略有不同)。
  4. 弹出框里会显示 新 Token立即复制(关闭后无法再查看)。

方式 B:新建一个机器人

  1. + 添加机器人账户,名称如 jenkins-k8s-2,权限与现网相同。
  2. 完成 后弹窗里的 Token 只出现一次,务必当场复制。
  3. Jenkins 凭据里改用新用户名;旧的 jenkins-k8s 可之后在 Harbor 里禁用或删除。

若勾选后 「其他操作」 里没有「重新生成」:试该行最右侧 菜单,或换用 admin 账号登录。

写入 Jenkins

  1. Jenkins 文件夹 凭据添加
    • 类型:Username with password
    • IDharbor-robot-alien
    • 用户名robot$alien_cloud+jenkins-k8s
    • 密码:Token

二、探测 Registry(在 Jenkins 所在机或 153.68 上)

curl -sI http://39.105.153.68/v2/
curl -skI https://39.105.153.68/v2/
结果 做法
401 正常,继续 docker login 39.105.153.68
301 到 https https 登录,勿对 153.68 配 insecure-registries 走 HTTP
404 把完整 curl 输出给运维;或试浏览器同协议的主机名

登录(推荐):

echo '<TOKEN>' | docker login 39.105.153.68 -u 'robot$alien_cloud+jenkins-k8s' --password-stdin

若 HTTPS 证书报错:在 /etc/docker/certs.d/39.105.153.68/ca.crt 放 Harbor CA,或请运维提供证书;优先不要用错 88 的 insecure-registries


三、推送基础镜像(153.68 上常有 my-openjdk8-ffmpeg:v1

docker images | grep openjdk8-ffmpeg

docker tag my-openjdk8-ffmpeg:v1 39.105.153.68/alien_cloud/base/openjdk8-ffmpeg:v1
docker push 39.105.153.68/alien_cloud/base/openjdk8-ffmpeg:v1

Harbor Web → alien_cloud → 应看到 base/openjdk8-ffmpeg


三.1、UAT 首次推送 gateway 镜像(方案 A)

README-UAT-HARBOR-PUSH.md:在 UAT Job 勾选 PUSH_GATEWAY_TO_HARBOR,产出 gateway:uat-build-<构建号> 后,再跑生产晋升 Job。


四、Jenkins 参数(Build with Parameters)

参数
HARBOR_REGISTRY 39.105.153.68
HARBOR_PROJECT alien_cloud
BASE_IMAGE 39.105.153.68/alien_cloud/base/openjdk8-ffmpeg:v1

Git 凭据:zhanghaomimapingzheng(或你 Job SCM 里已选中的)。


五、下一步总序

  1. 本步:Jenkins 凭据 harbor-robot-alien + 上节 docker login / push 基础镜像
  2. 凭据 ack-kubeconfig-alien(ACK 下载的 kubeconfig)
  3. Job gateway-k8salien-cloud-k8s-whole:先 DRY_RUN,再真实构建
  4. ACK:kubectl apply namespace、harbor pull secret、deployment(见 README-ACK-GRAY-RELEASE.md)

六、两台机器分工

IP 角色
39.105.153.68 Harbor、现网 *-produ compose、Registry login/push 目标
39.106.135.88 Jenkins :30003、UAT 等(构建机可 SSH 到 153.68 做 login 测试)

88 上构建时:Jenkins 容器/宿主机的 Docker 必须能访问 153.68 的 Registry(安全组放行)。