вторник, 15 января 2019 г.

Аутентификация в Kubernetes с помощью GitHub OAuth и Dex

Описал в статье как мы настраивали аутентификацию для кубера.
На хабре: https://habr.com/ru/post/436238/
На медиуме (англ): https://medium.com/preply-engineering/k8s-auth-a81f59d4dff6

Пока мы все это настраивали, много раз выстрелили себе в ноги. Однако таки удалось добить ее, сейчас успешно используем это на паре-тройке куберовских кластеров.
И да, подписывайтесь на телеграм-канал моего коллеги Юры: https://t.me/catops именно он добил эту аутентификацию, пока я мучался с ней тонну времени.
Он вместе с Максимом практически ежедневно выкладывает ссылки на годное чтиво, о том что связано с DevOps и смежными IT-темами.

суббота, 15 декабря 2018 г.

Создание read-only пользователя в PostgreSQL

Источник: https://gist.github.com/oinopion/4a207726edba8b99fd0be31cb28124d0

Сохраню себе для копипасты.

-- Create a group
CREATE ROLE readaccess;

-- Grant access to existing tables
GRANT USAGE ON SCHEMA public TO readaccess;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readaccess;

-- Grant access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readaccess;

-- Create a final user with password
CREATE USER user WITH PASSWORD 'secret';
GRANT readaccess TO user;

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

Видео докладов с конференции DevOps Stage 2018

В середине октября прошла двухдневная конференция в Киеве DevOps Stage.
Доклады были разбиты на три категории:


Само собой все доклады мне посетить не удалось, но могу выделить для себя те, которые понравились больше всего.

Yevhen Volchenko | KUBERNETES ATTACK SURFACES AND WAYS TO SECURE THEM
Практические советы о том как защитить Kubernetes.
Хорошие пояснения что и почему надо защищать с примерами конфигураций.

Volodymyr Tsap | ON THE ROAD TO 6.9K. HOW TO SUCCEED IN TECHNICAL INTERVIEW
Мем про 6.9к известен в киевской девопс-тусовке (ссылку на статью не оставляю, но гуглится по запросу "DevOps с комплексом бога запросил зарплату в $6.9К").
Доклад интересен прежде всего интересной подачей с кучей лулзов.
В докладе интересно рассказывается про описание работы инженера, с какими технологиями он работает, что должен знать, какие вопросы обычно задают на собеседовании и прочее.

Yurii Rochniak | CI DOESN’T START WITH JENKINS
Юра рассказывает про то как мы пытаемся варить девопс в Preply, какие технологии и тулы используем, как эволюционируем и почему.
Одним из вопросов из зала был, как мы раним Kubernetes на спот-инстансах в AWS, после чего Юра написал полноценную статью, которая отвечает на этот вопрос.

Juliya Tkachova | DEVOPS ON SCALE FROM PHILOSOPHY TO TOOLSET
В этом докладе рассказывается про девопс со множеством примеров факапов.
Причем название доклада полностью описывает его содержание, поэтому интересен как со стороны философии, так и со стороны набора инструментов и технологий.

Был еще один хороший доклад от Mark Smalley, но я его не нашел в тех плейлистах.

суббота, 13 октября 2018 г.

Видео докладов с конференции OSDN 2018

В сети появились записи докладов с конференции на youtube. Конференция проводится уже не первый раз в Киеве, в этом году она была в сентябре.

Рекомендую к просмотру доклады:
— Леннарта Поттеринга — Locking Down Your Systemd Services (Леннарта слушать интересно)

— Максима Богука — Использование статистики в PostgreSQL для оптимизации производительности (узнал для себя много нового про Postgres)

Также мне было интересно послушать доклад Николая Маржана — Amazon RDS Monitoring, так как я использую PostgreSQL в амазоновском RDS.

воскресенье, 7 октября 2018 г.

Долой cat и less, да здравствует bat!

https://github.com/sharkdp/bat

Что умеет:
- подсветка номеров строк и синтаксиса (довольно много различных языков и разметок)
- если содержимое файла влезает в экран, работает как cat, если нет — как less
- поддержка git diff
- поддержка конкатенации файлов, равно как и cat
- при этом все эти штуки можно включать и отключать как удобно

Как привыкаем:
echo alias cat='bat' >> ~/.bash_profile
echo alias less='bat' >> ~/.bash_profile
source ~/.bash_profile
cat README.md


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

пятница, 3 августа 2018 г.

Upgrading PostgreSQL on AWS RDS with minimum or zero downtime

С гордостью представляю публикацию в корпоративном блоге компанию статью по использованию мультимастер репликации в AWS RDS для PostgreSQL.
Ссылка: https://medium.com/preply-engineering/postgres-multimaster-34f2446d5e14
Статья на английском, с картинками, есть немного теории, много практики, а также выводы, когда можно использовать такую репликацию, а когда нет. Рекомендую к прочтению.