Trivy 使用笔记:从安装到生产实践

1. Trivy 是什么 官方网站: https://trivy.dev/ 开源仓库: https://github.com/aquasecurity/trivy Trivy(读作 “tri-vee”)是由 Aqua Security 主导开发并开源的统一安全扫描工具,名称取自 “Trigger”,寓意快速触发安全检查。它面向整个软件供应链,可用于扫描: 容器镜像与文件系统 Git 仓库与依赖项 IaC 配置,如 Dockerfile、Terraform 和 Kubernetes 清单 SBOM Kubernetes 集群及资源 借助统一的命令行入口,Trivy 能够发现: 操作系统及应用依赖中的已知漏洞(CVE) 容器、Kubernetes 和 IaC 配置错误 硬编码密码、令牌等泄露密钥 依赖项的许可证合规风险 Trivy 的优势在于将多种安全检查整合到一套工具中,并可轻松接入 CI/CD、DevSecOps 和 Kubernetes 等工作流,以结构化报告输出扫描结果。这样无需为不同类型的安全风险维护多套独立工具,就能在代码构建、制品发布和部署运行等阶段持续开展安全检查。 trivy <扫描目标> ─► 镜像 / 文件系统 / Git / IaC / SBOM / K8s ─► 漏洞 + 配置错误 + 密钥 + 许可证风险报告 2. 为什么我们需要它 2.1 供应链安全是真实风险 服务的容器镜像不是凭空造的,它由一层层基础镜像 + 一堆依赖库叠加而成。任何一个基础镜像里的老漏洞(比如某个 glibc 漏洞)、任何一个 npm install 下来的依赖带 CVE,都会原封不动带进生产环境。 ...

Kaniko 从入门到实践

1. Kaniko 是什么 Kaniko 是一个由 Google 开源的,在容器或 Kubernetes 集群内部,直接根据 Dockerfile 构建容器镜像的工具。 它最核心的特点只有一个:不依赖 Docker daemon(守护进程),所有构建动作都在用户态(userspace)完成。这意味着你不需要在集群里跑一个 Docker 服务,也不需要挂载 /var/run/docker.sock,就可以构建出标准镜像。 2. Kaniko 解决了什么问题 在 Kaniko 出现之前,CI 里构建镜像的主流做法是 Docker-in-Docker(DinD)。即在 CI Job 里再起一个 Docker 守护进程,用它去 build。这套方案在 Kubernetes 集群里有两个致命痛点: 需要 privileged 特权模式:dind 服务容器要操控内核特性,必须给 Pod 开 privileged: true。这是很严重的安全隐患——容器可能逃逸到宿主机,很多安全策略严格的集群直接禁止。 性能差:每个 Job 都额外拉起一个完整 Docker daemon,启动慢、占用高,多任务并发时更是灾难。 Kaniko 就是为了解决这个问题而生的:不用特权、不用 daemon,在标准 K8s 集群里就能安全构建镜像。 问题 DinD(旧方案) Kaniko 需要 privileged 特权 ✅ 必须 ❌ 不需要 依赖 Docker daemon ✅ 必须 ❌ 完全不需要 挂载 docker.sock ✅ 需要 ❌ 不需要 安全性 有容器逃逸风险 纯用户态,安全 性能开销 每个 Job 起 daemon,慢 轻量,快 Kaniko 的核心价值用一句话来说就是:在不安全、不方便跑 Docker daemon 的环境(尤其是 K8s 集群)里,仍然能安全、快速地构建镜像。 ...

Harbor 私有镜像仓库安装部署和最佳实践

1. 简介 Harbor 是 CNCF 托管、VMware 开源的企业级容器镜像仓库,基于 Docker Registry 二次开发。除基础镜像存储能力外,还提供 Web UI、细粒度RBAC权限、镜像漏洞扫描、垃圾回收、镜像复制同步、审计日志等企业级能力,是 Kubernetes 集群离线部署、容器镜像统一管理的核心组件。 适用场景:企业内网私有镜像托管、Kubespray 离线集群镜像分发、CI/CD流水线镜像仓库。 官方参考文档: Harbor 官方安装指南:https://goharbor.io/docs/2.8.0/install-config/ Harbor HTTPS 证书配置文档:https://goharbor.io/docs/main/install-config/configure-https/ Harbor 版本生命周期与版本策略:https://goharbor.io/docs/main/install-config/versioning/ Harbor 备份恢复官方文档:https://goharbor.io/docs/main/administration/backup-restore/ Harbor 生产环境最佳实践:https://www.cncf.io/blog/2026/02/24/making-harbor-production-ready-essential-considerations-for-deployment/ Harbor 官方 Trivy 文档:https://goharbor.io/docs/2.14.0/scan/ Trivy 官方文档:https://aquasecurity.github.io/trivy/ 2. 前置环境准备 2.1 Harbor版本选型指南 当前最新版已经到 v2.15.x,很多人会直接选用最新版,但不建议生产直接上最新大版本。 Harbor版本命名规则:主版本.次版本.补丁号,例如 2.10.2、2.15.0 奇数小版本(2.11、2.13、2.15):新特性版本,引入新功能、重构模块;bug相对多,适合测试体验,不推荐生产直接使用。 偶数小版本(2.10、2.12、2.14):长期维护稳定分支,重点修复漏洞,新增功能保守,生产首选。 举例: v2.15.x:新特性版,适合尝鲜、学习测试; v2.14.x:当前最新稳定偶数版; v2.10.x:久经大规模生产验证,bug少,社区问题资料极多,如果不需要新版本的一些新特性的话,推荐使用。 企业生产环境:优先选择偶数LTS稳定分支,发布至少3个月以上,积累足够补丁。不要选用刚发布的 .0 首版(例如 2.15.0),这类版本会存在较多未发现的bug。 2.2 基础依赖 Harbor 基于 Docker Compose V2 编排运行,提前准备依赖环境: Docker Engine:20.10+ Docker Compose V2 系统架构:amd64 / arm64 均可支持(OrbStack、VMware虚拟机均可正常运行) 硬件资源:测试环境≥2核4G;生产环境≥4核8G,推荐SSD存储提升镜像读写性能 3. Harbor 离线安装流程 离线包稳定性高于在线安装,内网、离线集群优先选用。本文部署以v2.14.4版本为例。 ...