使用 Cloud Monitoring 指标自动扩缩部署
Autoscaling Deployments with Cloud Monitoring metrics
我正在尝试根据 CloudSQL 实例响应时间自动调整 pods。我们正在使用 cloudsql-proxy 进行安全连接。
部署了自定义指标适配器。
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: application_name
spec:
minReplicas: 1
maxReplicas: 5
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: application_name
minReplicas: 1
maxReplicas: 5
metrics:
- type: Pods
pods:
metric:
name: custom-metric-stackdriver-adapter
target:
type: AverageValue
averageValue: 20
我部署了应用程序并为此创建了 HPA,但我看到了错误。
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetPodsMetric the HPA was unable to compute the replica count: unable to get metric custom-metric: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/custom-metric: googleapi: Error 404: Could not find descriptor for metric 'custom.googleapis.com/custom-metric'., notFound
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedGetPodsMetric 4m22s (x10852 over 47h) horizontal-pod-autoscaler unable to get metric custom-metric: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/custom-metric: googleapi: Error 404: Could not find descriptor for metric 'custom.googleapis.com/custom-metric'., notFound
- 请参考下面的 link 部署 HorizontalPodAutoscaler (HPA) 资源以根据 Cloud Monitoring 指标扩展您的应用程序。
https://cloud.google.com/kubernetes-engine/docs/tutorials/autoscaling-metrics#custom-metric_4
应用程序和 hpa 部署配置文件 (yaml) 中的自定义指标名称似乎不同。应用程序和 hpa 部署配置文件中的指标和应用程序名称应该相同。
在hpa部署yaml文件中,
一个。将 custom-metric-stackdriver-adapter 替换为 custom-metric(或更改
应用程序部署 yaml 中的 custom-metric-stackdriver-adapter 的指标名称
文件)。
b。在 metadata.Also 处的应用程序名称旁边添加“命名空间:默认”
确保您在应用程序部署配置中添加命名空间
文件。
c。删除重复的第 6 行和第 7 行(minReplicas:1,maxReplicas:5)。
d.转到 Cloud Console->Kubernetes 引擎-> 工作负载。删除由应用程序部署 yaml 和 adapter_new_resource_model.yaml 文件创建的工作负载(应用程序名称和自定义指标-stackdriver-adapter)。
e。现在将配置应用于资源模型、应用程序和 hpa(yaml 文件)。
我正在尝试根据 CloudSQL 实例响应时间自动调整 pods。我们正在使用 cloudsql-proxy 进行安全连接。 部署了自定义指标适配器。
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: application_name
spec:
minReplicas: 1
maxReplicas: 5
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: application_name
minReplicas: 1
maxReplicas: 5
metrics:
- type: Pods
pods:
metric:
name: custom-metric-stackdriver-adapter
target:
type: AverageValue
averageValue: 20
我部署了应用程序并为此创建了 HPA,但我看到了错误。
AbleToScale True SucceededGetScale the HPA controller was able to get the target's current scale
ScalingActive False FailedGetPodsMetric the HPA was unable to compute the replica count: unable to get metric custom-metric: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/custom-metric: googleapi: Error 404: Could not find descriptor for metric 'custom.googleapis.com/custom-metric'., notFound
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedGetPodsMetric 4m22s (x10852 over 47h) horizontal-pod-autoscaler unable to get metric custom-metric: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/custom-metric: googleapi: Error 404: Could not find descriptor for metric 'custom.googleapis.com/custom-metric'., notFound
- 请参考下面的 link 部署 HorizontalPodAutoscaler (HPA) 资源以根据 Cloud Monitoring 指标扩展您的应用程序。
https://cloud.google.com/kubernetes-engine/docs/tutorials/autoscaling-metrics#custom-metric_4
应用程序和 hpa 部署配置文件 (yaml) 中的自定义指标名称似乎不同。应用程序和 hpa 部署配置文件中的指标和应用程序名称应该相同。
在hpa部署yaml文件中,
一个。将 custom-metric-stackdriver-adapter 替换为 custom-metric(或更改 应用程序部署 yaml 中的 custom-metric-stackdriver-adapter 的指标名称 文件)。
b。在 metadata.Also 处的应用程序名称旁边添加“命名空间:默认” 确保您在应用程序部署配置中添加命名空间 文件。
c。删除重复的第 6 行和第 7 行(minReplicas:1,maxReplicas:5)。
d.转到 Cloud Console->Kubernetes 引擎-> 工作负载。删除由应用程序部署 yaml 和 adapter_new_resource_model.yaml 文件创建的工作负载(应用程序名称和自定义指标-stackdriver-adapter)。
e。现在将配置应用于资源模型、应用程序和 hpa(yaml 文件)。