суббота, 8 сентября 2018 г.

Автоскейлинг нод в Kubernetes

В этой заметке мы устанавливали кластер Kubernetes в AWS с помощью kops.
А в данной заметке я опишу настройки автоскейлинга нод в Kubernetes.

Для того чтобы автоскейлинг работал, необходимо его установить в кластер в неймспейс kube-system.

Перед непосредственной установкой, убедитесь что на всех нодах, которые вы хотите скейлить есть соответствующие лейблы:
kops get ig
kops edit ig nodes
...
spec:
  cloudLabels:
    k8s.io/cluster-autoscaler/enabled: ""
    kubernetes.io/cluster/k8s-dev.domain.org: ""

Эта команда будет создавать ноды с соответствующими лейблами, поэтому важно повесить лейблы также и на существующие ноды.

Подготовим файл конфигурации для автоскейлера:
cat << EOF > values.yml
autoDiscovery:
  clusterName: k8s-dev.domain.org
awsRegion: eu-west-1
cloudProvider: aws
extraArgs:
  balance-similar-node-groups: true
  expander: random
  skip-nodes-with-system-pods=false: false
rbac:
  create: true
  pspEnabled: true
scale-down-delay: 5m
v: 2
EOF

Установка автоскейлера:
helm install stable/cluster-autoscaler --name autoscaler -f values.yml

На этом в принципе все, можно позапускать в кластере каких-нибудь нагрузочных тестов, чтобы убедиться в работоспособности скейлинга.

Комментариев нет: