У меня настроен региональный кластер в google kubernetes engine (GKE) .Группа узлов - это один vm в каждом регионе (всего 3) .У меня есть развертывание с 3 минимальными репликами , управляемыми HPA.Группа узлов настроена на автоматическое масштабирование (автоматическое масштабирование кластера или CA).Сценарий проблемы:
Обновление образа развертывания.Kubernetes автоматически создает новые модули и CA определяет, что нужен новый узел.Теперь у меня 4. Старые модули удаляются после запуска всех новых модулей, что означает, что у меня точно такой же запрос ЦП, как и предыдущей минутой.Но после 10-минутного максимального времени сокращения у меня все еще есть 4 узла.
Запросы ЦП для узлов теперь:
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
358m (38%) 138m (14%) 516896Ki (19%) 609056Ki (22%)
--
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
800m (85%) 0 (0%) 200Mi (7%) 300Mi (11%)
--
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
510m (54%) 100m (10%) 410Mi (15%) 770Mi (29%)
--
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
823m (87%) 158m (16%) 484Mi (18%) 894Mi (33%)
Узел 38% работает:
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits
--------- ---- ------------ ---------- --------------- -------------
kube-system event-exporter-v0.1.9-5c8fb98cdb-8v48h 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system fluentd-gcp-v2.0.17-q29t2 100m (10%) 0 (0%) 200Mi (7%) 300Mi (11%)
kube-system heapster-v1.5.2-585f569d7f-886xx 138m (14%) 138m (14%) 301856Ki (11%) 301856Ki (11%)
kube-system kube-dns-autoscaler-69c5cbdcdd-rk7sd 20m (2%) 0 (0%) 10Mi (0%) 0 (0%)
kube-system kube-proxy-gke-production-cluster-default-pool-0fd62aac-7kls 100m (10%) 0 (0%) 0 (0%) 0 (0%)
Я подозреваю, что это не уменьшит масштаб, потому что heapster или kube-dns-autoscaler.Но в модуле 85% содержится:
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits
--------- ---- ------------ ---------- --------------- -------------
kube-system fluentd-gcp-v2.0.17-s25bk 100m (10%) 0 (0%) 200Mi (7%) 300Mi (11%)
kube-system kube-proxy-gke-production-cluster-default-pool-7ffeacff-mh6p 100m (10%) 0 (0%) 0 (0%) 0 (0%)
my-deploy my-deploy-54fc6b67cf-7nklb 300m (31%) 0 (0%) 0 (0%) 0 (0%)
my-deploy my-deploy-54fc6b67cf-zl7mr 300m (31%) 0 (0%) 0 (0%) 0 (0%)
Подушки fluentd и kube-proxy присутствуют на каждом узле, поэтому я предполагаю, что они не нужны без узла.Это означает, что мое развертывание может быть перенесено на другие узлы, так как запрос имеет только 300 м (31%, поскольку только 94% процессорного узла узла может быть выделено).
Поэтому я решил, что я проверю журналы.Но если я запускаю kubectl get pods --all-namespaces
, то в GKE для CA нет видимых модулей.И если я использую команду kubectl get configmap cluster-autoscaler-status -n kube-system -o yaml
, она только скажет мне, собирается ли она масштабироваться, а не почему или почему нет.Другой вариант - посмотреть на /var/log/cluster-autoscaler.log
в главном узле.Я SSH: редактировал во всех 4 узлах и нашел только файл gcp-cluster-autoscaler.log.pos
, который говорит: /var/log/cluster-autoscaler.log 0000000000000000 0000000000000000
, то есть файл должен быть прямо там, но пуст.Последний вариант, согласно FAQ , заключается в проверке событий для модулей, но, насколько я могу судить, они пусты.
Кто-нибудь знает, почему он не уменьшает или, по крайней мере, где найтижурналы?