自动扩缩容 API7 Gateway (K8s)
自动扩缩容(Autoscaling)是一种自动调整网关可用资源的机制,可确保在不同的流量负载下保持一致的性能。
本文档将指导你设置 CPU 和内存请求、为 API7 Gateway 创建水平 Pod 自动扩缩容(HPA),并通过简单的负载测试验证扩缩容行为,使你的部署能够动态响应工作负载的变化。
以下说明假设 API7 Gateway 已安装在 Kubernetes 集群中。
部署 Metrics Server
水平 Pod 自动扩缩容(HPA)需要来自集群的 CPU 和内存指标。Kubernetes Metrics Server 从 kubelet 收集这些指标,并通过 Kubernetes API 暴露它们。
要部署 Metrics Server,请运行:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
修补 Metrics Server 部署以允许与 kubelet 建立不安全的 TLS 连接(这在某些集群配置中可能是必需的):
kubectl patch deployment metrics-server \
-n kube-system \
--type='json' \
-p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--kubelet-insecure-tls"}]'
要验证 Metrics Server 是否正常运行,你可以检查当前命名空间中 Pod 的 CPU 和内存使用情况:
kubectl top pods
假设网关 Pod 正在当前命名空间中运行,你应该会看到它的 CPU 和内存指标:
NAME CPU(cores) MEMORY(bytes)
api7-ee-3-gateway-7998bf6dc6-2kh7q 16m 291Mi
这证实了正在收集指标并可供 HPA 使用。