使用 ConfigMap 为 NetScaler CPX 配置自定义指标
您可以使用 ConfigMap 将自定义指标配置文件(JSON 格式)提供给 Kubernetes 中的 NetScaler CPX™ 实例。这允许您添加自定义指标架构文件,而无需覆盖包含 CPX 的默认指标配置文件(schema.json 和 reference_schema.json)。
在启动期间,NetScaler CPX 实例会将默认指标配置文件放置在 /var/metrics_conf 目录中。如果您在 /cpx/custom_metrics_conf 处挂载 ConfigMap,CPX 将验证每个 JSON 文件,并将有效文件复制到 /var/metrics_conf 中,与默认文件并存。
注意:
- 自定义 JSON 文件必须包含有效的 JSON。无效文件在启动期间将被跳过,并且错误将记录在
boot.log中。 - 默认文件(
schema.json、reference_schema.json)始终优先放置。 - 与默认文件同名的自定义文件将覆盖默认文件。
配置自定义指标
您可以通过创建 ConfigMap 并部署已挂载 ConfigMap 的 NetScaler CPX 实例来配置 NetScaler CPX 的自定义指标。
使用 CLI 进行配置
创建您希望提供给 NetScaler CPX 实例的自定义指标配置文件(JSON 格式)。以下是一个示例自定义配置文件:
{
"counter": "http_requests_total",
"label": "method",
"description": "Total HTTP requests by method"
}
<!--NeedCopy-->
使用 kubectl create configmap 命令从文件创建 ConfigMap。例如,要基于配置文件 custom_schema.json 创建名为 custom-metrics-conf 的 ConfigMap:
kubectl create configmap custom-metrics-conf --from-file=custom_schema.json=./custom_schema.json
<!--NeedCopy-->
使用 kubectl get configmap 命令查看已创建的 ConfigMap。
kubectl get configmap custom-metrics-conf -o yaml
<!--NeedCopy-->
以下示例显示了示例输出:
apiVersion: v1
data:
custom_schema.json: |
{
"counter": "http_requests_total",
"label": "method",
"description": "Total HTTP requests by method"
}
kind: ConfigMap
metadata:
creationTimestamp: 2026-05-14T06:26:50Z
name: custom-metrics-conf
namespace: default
resourceVersion: "8865149"
uid: c1c7cb5b-ea05-11e7-914a-926745c10b02
<!--NeedCopy-->
使用 YAML 文件进行配置
在用于部署 NetScaler CPX 实例的 YAML 文件中指定创建的 ConfigMap custom-metrics-conf。以下示例配置展示了如何在部署 YAML 中包含 ConfigMap:
apiVersion: v1
kind: Pod
metadata:
name: cpx-1
labels:
app: cpx-daemon
annotations:
NETSCALER_AS_APP: "True"
spec:
containers:
- name: cpx
image: "quay.io/netscaler/netscaler-cpx:14.1-72.56"
securityContext:
privileged: true
volumeMounts:
- name: config-volume
mountPath: /cpx/bootup_conf
- name: custom-metrics-volume
mountPath: /cpx/custom_metrics_conf
env:
- name: "EULA"
value: "yes"
imagePullPolicy: IfNotPresent
volumes:
- name: config-volume
configMap:
name: cpx-config
- name: custom-metrics-volume
configMap:
name: custom-metrics-conf
<!--NeedCopy-->
部署 NetScaler CPX 实例。实例部署并启动后,默认指标配置文件 (schema.json 和 reference_schema.json) 将放置在 /var/metrics_conf 中。从挂载在 /cpx/custom_metrics_conf 的 ConfigMap 中的自定义 JSON 文件将被验证并复制到 /var/metrics_conf 中。