# K8s 优化快速开始指南 > 5分钟快速了解并开始执行优化 --- ## 🎯 当前最需要的优化 ### ⚡ P0 - 立即执行(第 1 周) #### 修复 HPA - 恢复自动扩缩容 **问题**: 所有 6 个 HPA 显示 ``,无法自动扩缩容 **一键修复**: ```bash # 1. 修复 metrics-server (OrbStack 环境) kubectl patch deployment metrics-server -n kube-system --type='json' -p='[ {"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"} ]' # 2. 等待 Pod 重启 sleep 60 # 3. 验证 kubectl top nodes kubectl get hpa --all-namespaces ``` **预计时间**: 10 分钟 **风险**: 低 --- ### ⭐ P1 - 高优先级(第 2-3 周) #### 1. 部署 VPA - 自动优化资源配置 **收益**: 减少 50-70% 资源浪费 **一键部署**: ```bash # 安装 VPA cd /tmp git clone https://github.com/kubernetes/autoscaler.git cd autoscaler/vertical-pod-autoscaler ./hack/vpa-up.sh # 验证 kubectl get deployment -n kube-system | grep vpa ``` **预计时间**: 1 小时 **风险**: 中(可能导致 Pod 重启) --- #### 2. 部署 Velero - 集群完整备份 **收益**: 从手动恢复数小时 → 自动恢复 15 分钟 **一键部署**: ```bash # 安装 Velero CLI brew install velero # 部署 Velero velero install \ --provider aws \ --plugins velero/velero-plugin-for-aws:v1.11.0 \ --bucket velero-backups \ --secret-file /tmp/credentials-velero \ --use-volume-snapshots=false \ --backup-location-config \ region=minio,s3ForcePathStyle="true",s3Url=http://minio.infra.svc.cluster.local:9000 # 创建定期备份 velero schedule create daily-backup \ --schedule="0 2 * * *" \ --ttl 168h ``` **预计时间**: 1.5 小时 **风险**: 低 --- ### ⭐⭐ P2 - 中优先级(第 3-4 周) #### 3. 零信任网络架构 **收益**: 大幅提升安全性 **一键部署**: ```bash # 应用默认拒绝策略 for ns in data monitoring logging argocd; do kubectl apply -f /tmp/default-deny-all.yaml -n $ns done # 添加白名单策略(DNS、Prometheus、Loki 等) # 详见完整路线图 ``` **预计时间**: 3 小时 **风险**: 高(需要仔细测试) --- #### 4. 部署 Kyverno - 策略自动化 **收益**: 策略即代码,100% 自动化合规 **一键部署**: ```bash # 安装 Kyverno helm install kyverno kyverno/kyverno \ --namespace kyverno \ --create-namespace # 应用策略(强制 resource requests、禁止 latest 标签等) kubectl apply -f /tmp/kyverno-policies.yaml ``` **预计时间**: 2 小时 **风险**: 中 --- ## 📊 优化路线图 | 阶段 | 时间 | 核心优化 | 预期收益 | |------|------|----------|----------| | **第 1 周** | 1.5h | 修复 HPA | ✅ 自动扩缩容恢复工作 | | **第 2 周** | 1.5h | 部署 VPA | ✅ 减少 50-70% 资源浪费 | | **第 2-3 周** | 2.5h | 部署 Velero | ✅ 集群自动备份和恢复 | | **第 3-4 周** | 3h | 零信任网络 | ✅ 大幅提升安全性 | | **第 4 周** | 2.5h | 部署 Kyverno | ✅ 策略自动化 | | **第 5 周** | 2h | 部署 Thanos | ✅ 长期监控数据存储 | **总工作量**: 约 13 小时 **执行周期**: 4-6 周 --- ## 🚀 立即开始 ### 选项 1: 立即修复 HPA(最快) ```bash # 只需 10 分钟 cd /Users/brunogao/work/codes/tools/macos/k8s kubectl patch deployment metrics-server -n kube-system --type='json' -p='[ {"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"} ]' sleep 60 kubectl get hpa --all-namespaces ``` ### 选项 2: 执行完整优化(推荐) ```bash # 查看完整路线图 cd /Users/brunogao/work/codes/tools/macos/k8s cat K8S-OPTIMIZATION-ROADMAP-2025.md # 按阶段执行 # Phase 1: 修复 HPA (第 1 周) # Phase 2: 部署 VPA (第 2 周) # Phase 3: 部署 Velero (第 2-3 周) # ... ``` --- ## 📋 执行清单 ### Phase 1: 修复 HPA(必须) - [ ] 修复 metrics-server 配置 - [ ] 验证 HPA 工作 - [ ] 测试自动扩缩容 ### Phase 2: 部署 VPA(推荐) - [ ] 安装 VPA 组件 - [ ] 创建 VPA 资源 - [ ] 验证自动优化 ### Phase 3: 部署 Velero(推荐) - [ ] 安装 Velero - [ ] 创建备份计划 - [ ] 测试恢复流程 ### Phase 4: 零信任网络(可选) - [ ] 应用默认拒绝策略 - [ ] 创建白名单策略 - [ ] 验证网络隔离 ### Phase 5: 部署 Kyverno(可选) - [ ] 安装 Kyverno - [ ] 创建策略 - [ ] 验证策略执行 ### Phase 6: 部署 Thanos(可选) - [ ] 安装 Thanos - [ ] 配置 Prometheus 远程写入 - [ ] 验证长期存储 --- ## 💡 建议执行顺序 ### 最小化方案(1 周) 1. ✅ 修复 HPA(必须) ### 标准方案(4 周) 1. ✅ 修复 HPA 2. ✅ 部署 VPA 3. ✅ 部署 Velero ### 完整方案(6 周) 1. ✅ 修复 HPA 2. ✅ 部署 VPA 3. ✅ 部署 Velero 4. ✅ 零信任网络 5. ✅ 部署 Kyverno 6. ✅ 部署 Thanos --- ## 🔗 相关文档 - **完整路线图**: [K8S-OPTIMIZATION-ROADMAP-2025.md](./K8S-OPTIMIZATION-ROADMAP-2025.md) - **企业级实施报告**: [ENTERPRISE-K8S-IMPLEMENTATION-REPORT.md](./ENTERPRISE-K8S-IMPLEMENTATION-REPORT.md) - **优化执行报告**: [OPTIMIZATION-EXECUTION-REPORT.md](./OPTIMIZATION-EXECUTION-REPORT.md) --- ## ❓ 常见问题 ### Q1: HPA 一直显示 `` 怎么办? A: 按照 Phase 1 修复 metrics-server,添加 `--kubelet-insecure-tls` 参数。 ### Q2: VPA 会导致 Pod 频繁重启吗? A: 对于关键服务使用 `Initial` 模式(仅在创建时设置),对于无状态服务使用 `Auto` 模式。 ### Q3: Network Policies 会影响现有服务吗? A: 会!务必先测试,逐步应用白名单策略。 ### Q4: 需要多少存储空间? A: Velero 备份需要约 10-20GB(取决于集群规模),Thanos 需要约 50GB(30天数据)。 --- **创建时间**: 2025-12-31 **适用环境**: OrbStack + MacBook Pro **状态**: 📋 准备就绪