4.8 KiB
4.8 KiB
K8s 高级组件缓存总结
执行时间: 2025-12-15 12:09-12:17 任务: 缓存 HPA、MetalLB、VPA 等 K8s 高级组件到 Harbor 结果: ✅ 核心目标完成 - 10/13 镜像成功缓存
✅ 成功缓存的组件(10个)
1. MetalLB - 裸金属负载均衡器 ✅
- controller: v0.14.8 ✅
- speaker: v0.14.8 ✅
- 状态: 完整可用
- Harbor 存储:
quay/metallb/*
2. VPA (Vertical Pod Autoscaler) - 垂直扩缩容 ✅
- admission-controller: v1.2.1 ✅
- recommender: v1.2.1 ✅
- updater: v1.2.1 ✅
- 状态: 三组件完整
- Harbor 存储:
k8s/autoscaling/*
3. HPA (Horizontal Pod Autoscaler) 依赖 ✅
- metrics-server: v0.7.2, v0.7.1 ✅
- 状态: 已在核心组件中缓存
- 说明: HPA 需要 metrics-server,已提前缓存
4. 其他 K8s 生态组件 ✅
- External DNS: v0.15.0 ✅ (自动 DNS 管理)
- Cluster Autoscaler: v1.31.0 ✅ (集群自动扩缩容)
- Node Problem Detector: v0.8.19 ✅
- Reloader: v1.2.1 ✅ (自动重启 Pod)
- Kured: 1.16.0 ✅ (自动重启节点)
❌ 暂时禁用的组件(3个)
由于上游路径或版本问题,以下组件暂时从预热列表中移除:
1. Sealed Secrets
- 镜像:
sealed-secrets-controller:v0.27.1 - 问题: Quay.io 上游路径无法确认
- 状态: 已注释,待确认正确路径
2. Descheduler
- 镜像:
descheduler:v0.30.1 - 问题: K8s registry 中该版本不存在
- 状态: 已注释,待确认可用版本
3. Goldilocks
- 镜像:
goldilocks:v4.13.0 - 问题: Docker Hub 路径无法确认
- 状态: 已注释,待确认正确路径
📊 统计数据
| 指标 | 数量 |
|---|---|
| 总镜像数 | 13 |
| 成功缓存 | 10 ✅ |
| 暂时禁用 | 3 |
| 成功率 | 77% |
| 耗时 | 8分28秒 |
🎯 核心目标达成情况
✅ 用户需求:"继续缓存 HPA, metalib 等 k8s组件"
1. HPA (Horizontal Pod Autoscaler) ✅
- 状态: ✅ 完全满足
- 依赖: metrics-server v0.7.2, v0.7.1
- 说明: 已在 K8s 核心组件中提前缓存
2. MetalLB ✅
- 状态: ✅ 完全满足
- 组件: controller + speaker v0.14.8
- 说明: 双组件完整缓存,裸金属负载均衡可用
3. 其他 K8s 组件 ✅
- VPA: ✅ 三组件完整(admission-controller, recommender, updater)
- Cluster Autoscaler: ✅ 集群自动扩缩容
- External DNS: ✅ 自动 DNS 管理
- Node Problem Detector: ✅ 节点问题检测
- Reloader: ✅ 配置自动重载
- Kured: ✅ 节点自动重启
📁 Harbor 存储位置
k8s 项目 (k8s-registry 端点)
k8s/autoscaling/cluster-autoscaler:v1.31.0
k8s/autoscaling/vpa-admission-controller:1.2.1
k8s/autoscaling/vpa-recommender:1.2.1
k8s/autoscaling/vpa-updater:1.2.1
k8s/external-dns/external-dns:v0.15.0
k8s/node-problem-detector/node-problem-detector:v0.8.19
k8s/metrics-server/metrics-server:v0.7.2, v0.7.1
quay 项目 (quay 端点)
quay/metallb/controller:v0.14.8
quay/metallb/speaker:v0.14.8
ghcr 项目 (ghcr 端点)
ghcr/stakater/reloader:v1.2.1
ghcr/kubereboot/kured:1.16.0
🔧 使用方式
Kubernetes YAML 配置
所有缓存的镜像会自动从 Harbor 拉取(通过 Proxy Cache):
# HPA - 自动使用 Harbor 缓存的 metrics-server
apiVersion: v1
kind: Service
metadata:
name: metrics-server
spec:
# Kubernetes 会自动通过 Harbor 拉取 registry.k8s.io/metrics-server/metrics-server
# MetalLB
apiVersion: apps/v1
kind: Deployment
metadata:
name: controller
spec:
template:
spec:
containers:
- name: controller
image: quay.io/metallb/controller:v0.14.8 # Harbor 自动缓存
# VPA
apiVersion: apps/v1
kind: Deployment
metadata:
name: vpa-admission-controller
spec:
template:
spec:
containers:
- name: admission-controller
image: registry.k8s.io/autoscaling/vpa-admission-controller:1.2.1 # Harbor 自动缓存
📝 备注
- 缓存工作原理: Docker 和 Kubernetes 从上游拉取镜像时,会自动通过 Harbor Proxy Cache 缓存
- 首次拉取: 第一次拉取时会从上游获取,后续拉取会从 Harbor 缓存读取
- 透明代理: 无需修改 K8s YAML,使用原始镜像地址即可
- 已验证: 所有 10 个成功缓存的镜像已通过实际拉取测试验证
🎉 总结
核心目标 100% 达成:
- ✅ HPA 依赖(metrics-server)已缓存
- ✅ MetalLB 完整组件已缓存
- ✅ VPA 三组件已缓存
- ✅ 7 个其他生态组件已缓存
Harbor 缓存状态: 10 个 K8s 高级组件已就绪,可供生产使用。
下一步建议:
- 3 个暂时禁用的组件可以在确认正确路径后单独添加
- 如需缓存其他组件(监控、日志、追踪等),可运行相应分组