基于云原生 API 网关监控指标的水平伸缩
概述
云原生 API 网关 是腾讯云上基于 Kong 托管的网关产品,拥有丰富的七层流量管理功能,也支持将请求转发到 TKE 集群上的服务。
云原生网关提供了丰富的 Prometheus
监控指标,本文将以指定服务的 QPS 指标为例,介绍如何在 TKE 上利用 KEDA
实现基于云原生 API 网关监控指标的水平伸缩。
操作步骤
配置 Prometheus 采集
你可以使用腾讯云 Prometheus,也可以使用自建 Prometheus
来采集云原生 API 网关的监控数据,在 云原生 API 网关-可观测性 页面选择使用的网关实例,并切换到 【Prometheus】页面。
如果使用的腾讯云 Prometheus
服务,可以直接 【关联腾讯云 Prometheus】,如果是自建的 Prometheus,可以在【配置自建 Prometheus】 下查看网关节点的内网地址列表:
将这些 IP 地址复制下来,通过 static_configs
配置到自建 Prometheus
的采集配置中:
- job_name: apigw
honor_timestamps: true
metrics_path: "/metrics"
scheme: http
static_configs:
- targets: ["10.10.12.23:2100", "10.10.12.144:2100"]
云原生 API 网关的 metrics 接口地址是:
节点IP:2100/metrics
如果正常采集,可以查到有 kong_
开头的监控指标:
部署测试应用到 TKE 集群
可以部署一个简单的 nginx
应用到 TKE 集群:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
---
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: ClusterIP
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
配置云原生 API 网关
在 云原生 API 网关-路由管理 页面新建服务来源:
根据自己需求添加容器服务的集群:
然后新建服务:
从【K8S服务】中选择部署了测试应用的集群、命名空间以及服务:
创建好后,点进这个服务,在【路由管理】里点【新建】:
根据需要配置路由:
配置完成后,就可以通过云原生网关访问 TKE 集群中的服务了,可以压测一段时间,看下 Prometheus
中的监控数据是否正常。