5.8 KiB
5.8 KiB
K8s 优化快速开始指南
5分钟快速了解并开始执行优化
🎯 当前最需要的优化
⚡ P0 - 立即执行(第 1 周)
修复 HPA - 恢复自动扩缩容
问题: 所有 6 个 HPA 显示 <unknown>,无法自动扩缩容
一键修复:
# 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% 资源浪费
一键部署:
# 安装 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 分钟
一键部署:
# 安装 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. 零信任网络架构
收益: 大幅提升安全性
一键部署:
# 应用默认拒绝策略
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% 自动化合规
一键部署:
# 安装 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(最快)
# 只需 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: 执行完整优化(推荐)
# 查看完整路线图
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 周)
- ✅ 修复 HPA(必须)
标准方案(4 周)
- ✅ 修复 HPA
- ✅ 部署 VPA
- ✅ 部署 Velero
完整方案(6 周)
- ✅ 修复 HPA
- ✅ 部署 VPA
- ✅ 部署 Velero
- ✅ 零信任网络
- ✅ 部署 Kyverno
- ✅ 部署 Thanos
🔗 相关文档
- 完整路线图: K8S-OPTIMIZATION-ROADMAP-2025.md
- 企业级实施报告: ENTERPRISE-K8S-IMPLEMENTATION-REPORT.md
- 优化执行报告: OPTIMIZATION-EXECUTION-REPORT.md
❓ 常见问题
Q1: HPA 一直显示 <unknown> 怎么办?
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 状态: 📋 准备就绪