Изменения в config-autoscaler configmap автоматически отменяются через несколько минут после применения изменений.

Я пытаюсь настроить автомасштабирование для кластера Google Kubernetes Engine с включенным облачным аддоном. Когда я редактирую карту конфигурации, изменения принимаются сервером API. Однако через несколько минут конфигурационная карта вернется к исходной версии. Есть ли способ настроить автомасштабирование при использовании надстройки облачного кластера?

Действия по воспроизведению:

  1. Отредактируйте конфигурационную карту
kubectl edit cm config-autoscaler -n knative-serving

# ...

configmap/config-autoscaler configured
  1. Проверяем результаты:
kubectl get -n knative-serving configmap config-autoscaler -o json | jq '.data'

#=>

{
  "container-concurrency-target-default": "1",
  "container-concurrency-target-percentage": "0.5",
  "enable-scale-to-zero": "false",
  "max-scale-up-rate": "1000",
  "panic-threshold-percentage": "200.0",
  "panic-window-percentage": "10.0",
  "scale-to-zero-grace-period": "90s",
  "stable-window": "600s",
  "target-burst-capacity": "-1",
  "tick-interval": "2s"
}

  1. Подождите несколько минут и проверьте еще раз:
kubectl get -n knative-serving configmap config-autoscaler -o json | jq '.data'

#=>

{
  "_example": "################################\n#                              #\n#    EXAMPLE CONFIGURATION     #\n#                              #\n################################\n# This block is not actually functional configuration,\n# but serves to illustrate the available configuration\n# options and document them in a way that is accessible\n# to users that `kubectl edit` this config map.\n#\n# These sample configuration options may be copied out of\n# this example block and unindented to be in the data block\n# to actually change the configuration.\n# The Revision ContainerConcurrency field specifies the maximum number\n# of requests the Container can handle at once. Container concurrency\n# target percentage is how much of that maximum to use in a stable\n# state. E.g. if a Revision specifies ContainerConcurrency of 10, then\n# the Autoscaler will try to maintain 7 concurrent connections per pod\n# on average. A value of 0.7 is chosen because the Autoscaler panics\n# when concurrency exceeds 2x the desired set point. So we will panic\n# before we reach the limit.\ncontainer-concurrency-target-percentage: \"1.0\"\n# The container concurrency target default is what the Autoscaler will\n# try to maintain when the Revision specifies unlimited concurrency.\n# Even when specifying unlimited concurrency, the autoscaler will\n# horizontally scale the application based on this target concurrency.\n#\n# A value of 100 is chosen because it's enough to allow vertical pod\n# autoscaling to tune resource requests. E.g. maintaining 1 concurrent\n# \"hello world\" request doesn't consume enough resources to allow VPA\n# to achieve efficient resource usage (VPA CPU minimum is 300m).\ncontainer-concurrency-target-default: \"100\"\n# When operating in a stable mode, the autoscaler operates on the\n# average concurrency over the stable window.\nstable-window: \"60s\"\n# When observed average concurrency during the panic window reaches\n# panic-threshold-percentage the target concurrency, the autoscaler\n# enters panic mode. When operating in panic mode, the autoscaler\n# scales on the average concurrency over the panic window which is\n# panic-window-percentage of the stable-window.\npanic-window-percentage: \"10.0\"\n# Absolute panic window duration.\n# Deprecated in favor of panic-window-percentage.\n# Existing revisions will continue to scale based on panic-window\n# but new revisions will default to panic-window-percentage.\npanic-window: \"6s\"\n# The percentage of the container concurrency target at which to\n# enter panic mode when reached within the panic window.\npanic-threshold-percentage: \"200.0\"\n# Max scale up rate limits the rate at which the autoscaler will\n# increase pod count. It is the maximum ratio of desired pods versus\n# observed pods.\nmax-scale-up-rate: \"10\"\n# Scale to zero feature flag\nenable-scale-to-zero: \"true\"\n# Tick interval is the time between autoscaling calculations.\ntick-interval: \"2s\"\n# Dynamic parameters (take effect when config map is updated):\n# Scale to zero grace period is the time an inactive revision is left\n# running before it is scaled to zero (min: 30s).\nscale-to-zero-grace-period: \"30s\"\n"
}

Есть ли что-то, чего мне не хватает, или невозможно отредактировать конфигурационную карту, которая управляет автоматическим масштабированием Knative? Если нет, то каковы мои альтернативы?




Ответы (1)


Вы не можете вносить изменения в эту confgiMap, так как согласователь GKE отменит внесенные вами изменения.

Любой ресурс с addonmanager.kunernetes.io/mode: reconcile будет иметь любые внесенные изменения, которые будут возвращены как часть управляемых компонентов GKE.

person Patrick W    schedule 01.09.2019
comment
Означает ли это, что при удалении метки ресурса изменения не будут отменены или они все равно будут согласованы автоматически? - person Faun; 13.09.2019
comment
Кроме того, есть ли общедоступная документация по этой функции? - person Faun; 13.09.2019
comment
аддон согласования просто вернет его обратно. Что касается дополнения согласования, код можно найти на github < / а> - person Patrick W; 13.09.2019