Следуя руководству, нашел Вот Я видел, что мне нужно autoscaling / v2beta2 для использования настраиваемых показателей для Horizontal Pod Autoscaler, но не знаю, как его включить.
Детали окружающей среды:
Что я пробовал:
Используя "kubectl api-versions", я проверил, какие группы API я включил для автомасштабирования и получил только следующее: autoscaling / v1 autoscaling / v2beta1
Я нашел следующее документация в котором говорится: «Определенные ресурсы и группы API включены по умолчанию. Их можно включить или отключить, установив --runtime-config на apiserver. --runtime-config принимает значения, разделенные запятыми». Взглянув на документация по командам kube-apiserver , Я мог бы найти способ использовать эту команду для gcloud
О ваших версиях API: это нормально, с autoscaling / v2beta1 вы даже можете автомасштабировать на основе внешних метрик (например, Stackdriver).
По поводу вашего вопроса: я не понимаю, что вы имеете в виду, говоря «Я не могу включить это». На той же странице, которую вы связали, вы можете найти 80% необходимого вам манифеста:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
В этом манифесте говорится: «иметь от 1 до 10 реплик, в зависимости от масштаба использования ЦП, больше, чем описано в scaleTargetRef». Вы также можете добавить на основе памяти, и это будет работать по принципу «ИЛИ» (если один из двух показателей превысит пороговое значение, произойдет масштабирование). Наконец, вы можете добавить показатель type: External
это будет ваш источник Stackdriver (например, количество HTTP-запросов, количество сообщений в очереди ...). Обычно это рекомендуется, поскольку масштабирование на основе ЦП неэффективно.
Когда у вас есть манифест, просто попросите kubectl apply -f hpa.yaml, и вы его включите.
Вот почему я говорю, что не полностью понимаю ваш вопрос, вы хотите сказать, что не смогли найти надлежащий манифест? (тот, который я написал здесь, тоже не "правильный")
Я не смог найти источник (это была статья о HPA с внешними метриками), но вот манифест для моего HPA:
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
namespace: myapp
spec:
minReplicas: 3
maxReplicas: 15
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: myapp
metrics:
- type: Resource
resource:
name: memory
targetAverageUtilization: 60
- type: External
external:
metricName: loadbalancing.googleapis.com|https|request_count
metricSelector:
matchLabels:
resource.labels.url_map_name: k8s-um-myapp-myapp-ingress--64658eaf6b9dce0
targetAverageValue: 100
Я масштабируюсь в зависимости от ОЗУ и запросов.
HTH