Files
ljwx-k8s/QUICK-START-OPTIMIZATION.md
2026-02-20 22:50:45 +08:00

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 周)

  1. ✅ 修复 HPA(必须)

标准方案(4 周)

  1. ✅ 修复 HPA
  2. ✅ 部署 VPA
  3. ✅ 部署 Velero

完整方案(6 周)

  1. ✅ 修复 HPA
  2. ✅ 部署 VPA
  3. ✅ 部署 Velero
  4. ✅ 零信任网络
  5. ✅ 部署 Kyverno
  6. ✅ 部署 Thanos

🔗 相关文档


❓ 常见问题

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 状态: 📋 准备就绪