# k8s-devops-test **Repository Path**: xufengzz/k8s-devops-test ## Basic Information - **Project Name**: k8s-devops-test - **Description**: 使用k8s 部署的gitlab ci 文件。maven打包镜像 推送到harbor - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 主要的逻辑harbor 配置相关docker.io 代理。或者某台服务器配置代理。然后使用/[harbor-mirror-sync](.claude/harbor-mirror-sync) 进行同步, 将maven kaniko 基础镜像同步到内网。 在项目中cicd配置 harbor地址.因为我们是多个k8s集群。所以cd 依靠argo 来监控git仓库实现。不在该脚本实现 [img.png](img.png) ## 打双tags的解答 ![img_1.png](img_1.png) 1. 两个 Tag 分别是: master master-20260710-16 ```angular2html # 第一行:带时间+流水线序号的完整版本标签 --destination $HARBOR_IMAGE:$IMAGE_TAG # IMAGE_TAG=${CI_COMMIT_REF_SLUG}-$(date +%Y%m%d)-${CI_PIPELINE_IID} # 代入变量:CI_COMMIT_REF_SLUG=master、日期20260710、流水线IID=16 → master-20260710-16 # 第二行:仅分支名短标签 --destination $HARBOR_IMAGE:$CI_COMMIT_REF_SLUG # CI_COMMIT_REF_SLUG=master → master ``` Kaniko 的 --destination 参数可以传多次,每传一个就会给同一份镜像层打一个新 Tag,两个标签指向完全同一个 sha256 镜像层(图里 sha256:adb115bd) ,所以页面显示两个 Tag 绑定在一条镜像记录上。 ## 二、页面显示简写 master, master-202(2) 原因 界面做了长度截断,完整标签 master-20260710-16 太长,前端省略显示为 master-202;括号里(2)代表这条镜像一共绑定了 2 个 Tag,鼠标悬浮才会弹出完整标签列表。 ## 三、这么打双 Tag 的设计目的 固定唯一版本标签 master-20260710-16 每次流水线生成唯一不重复标签,用于环境部署、版本回滚、漏洞追溯,每一次构建都有独立标识,不会覆盖旧镜像。 分支浮动标签 master 每次 master 分支构建完成,都会把master标签重新指向最新镜像。 部署 yaml 里直接写 hb.gs.lan/leadal/demo-k8s-devops:master,不用每次改镜像版本号,自动拉取 master 最新构建。 四、补充说明 两个 Tag 共享一份镜像文件(108.47MiB),Harbor 不会重复存储占用磁盘,只是新增标签索引; 如果你只想保留唯一版本标签、去掉浮动 master 标签,删除 CI 脚本里第二行--destination $HARBOR_IMAGE:$CI_COMMIT_REF_SLUG即可; 反过来,如果不需要时间戳长标签,删掉第一行,就只会保留master一个 Tag。 保留双 Tag(当前效果): ```angular2html --destination $HARBOR_IMAGE:$IMAGE_TAG \ --destination $HARBOR_IMAGE:$CI_COMMIT_REF_SLUG ``` 只保留唯一时间戳标签: ```angular2html --destination $HARBOR_IMAGE:$IMAGE_TAG ```