回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图使用python中的<a href="https://github.com/kubernetes-client" rel="nofollow noreferrer">kubernetes-client</a>在kubernetes中创建一个水平pod自动缩放器。为此,我使用了属于<a href="https://github.com/kubernetes-client/python/tree/master/kubernetes" rel="nofollow noreferrer">AutoscalingV2beta2Api</a>的<a href="https://github.com/kubernetes-client/python/blob/master/kubernetes/docs/AutoscalingV2beta2Api.md#create_namespaced_horizontal_pod_autoscaler" rel="nofollow noreferrer">create_namespaced_horizontal_pod_autoscaler</a>()函数</p>
<p>我的代码如下:</p>
<pre><code>my_metrics = []
my_metrics.append(client.V2beta2MetricSpec(type='Pods', pods= client.V2beta2PodsMetricSource(metric=client.V2beta2MetricIdentifier(name='cpu'), target=client.V2beta2MetricTarget(average_utilization='50',type='Utilization'))))
body = client.V2beta2HorizontalPodAutoscaler(
api_version='autoscaling/v2beta2',
kind='HorizontalPodAutoscaler',
metadata=client.V1ObjectMeta(name='php-apache'),
spec= client.V2beta2HorizontalPodAutoscalerSpec(
max_replicas=10,
min_replicas=1,
metrics = my_metrics,
scale_target_ref = client.V2beta2CrossVersionObjectReference(kind='Object',name='php-apache')
))
v2 = client.AutoscalingV2beta2Api()
ret = v2.create_namespaced_horizontal_pod_autoscaler(namespace='default', body=body, pretty=True)
</code></pre>
<p>我得到的答复是:</p>
<pre><code>HTTP response body: {
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "HorizontalPodAutoscaler in version \"v2beta2\" cannot be handled as a HorizontalPodAutoscaler: v2beta2.HorizontalPodAutoscaler.Spec: v2beta2.HorizontalPodAutoscalerSpec.Metrics: []v2beta2.MetricSpec: v2beta2.MetricSpec.Pods: v2beta2.PodsMetricSource.Target: v2beta2.MetricTarget.AverageUtilization: readUint32: unexpected character: \ufffd, error found in #10 byte of ...|zation\": \"50\", \"type|..., bigger context ...|\"name\": \"cpu\"}, \"target\": {\"averageUtilization\": \"50\", \"type\": \"Utilization\"}}, \"type\": \"Pods\"}], \"m|...",
"reason": "BadRequest",
"code": 400
}
</code></pre>
<p>我只想使用kubernetes客户端调用等效的:</p>
<pre><code>kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
</code></pre>
<p>任何可行的例子都是非常受欢迎的</p>