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

Бекапим все свои репозитории локально с GitHub

Идем в настройки и генерируем токен с правами repo: https://github.com/settings/tokens

Запускаем бекап на локальную машину всех своих репозиториев:
export GITHUB_AT=yourtokenfromgithub
export USERNAME=Amet13
curl -s https://$GITHUB_AT:@api.github.com/users/$USERNAME/repos?per_page=200 | \

jq .[].ssh_url | \
xargs -n 1 git clone

На случай пожара, так сказать.

суббота, 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

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

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

Установка Kubernetes с помощью kops в AWS

В этой заметке я опишу, как быстро с нуля поднять рабочий кластер k8s в облаке амазона.
Если у вас много денег, можете использовать EKS (который еще недоступен во многих регионах), в качестве альтернативы я использую именно связку AWS+kops.

Ставим необходимые пакеты для работы с кубером (моя локальная ОС Mac OS X)
brew update
brew install awscli kubectl kops kubernetes-helm