Архив за год: 2020

Prometheus: Alertmanager Web UI и Silence алертов

30 декабря 2020

Частота отправки активных алертов из Alertmanager определяется параметром repeat_interval в файле /etc/alertmanager/config.yml. У нас этот интервал задан в 15 минут, в результате чего в Slack каждые 15 минут приходят уведомления обо всех активных алертах в системе. Но некоторые алерты это такие себе «known issue», когда о проблеме мы знаем, девелоперы её взяли в работу для… Читать далее »

ArgoCD: CIOps vs GitOps и деплой приложения из TravisCI

28 ноября 2020

Штош, пришло время подумать о том, как мы будем деплоить наши приложения. Сейчас у нас используются Github-репозитории с кодом и Helm-шаблонами, и Jenkins. Билд в Jenkins в большинстве проектов запускается вручную, после чего: Jenkins-джоба клонирует репозиторий с кодом и манифестами, билдит Docker-образ пушит его в Docker Hub вызывает helm upgrade —install, которому через —set передаёт… Читать далее »

Ansible: модуль community.kubernetes и установка Helm-чарта с ExternalDNS

24 ноября 2020

В посте Kubernetes: обновление DNS в Route53 при создании Ingress выполнили ручную установку ExternalDNS, и посмотрели, как он работает — пора добавить автоматизацию его установки на кластера. В роли Configuration Management Tool у нас используется Ansible, для которого существует модуль community.kubernetes — используем его. Вообще, есть много модулей для работы с Helm, например — helm… Читать далее »

ArgoCD: деплой Helm-чарта и работа с Helm Secrets через AWS KMS

21 ноября 2020

В предыдущем посте ArgoCD: обзор, запуск, настройка SSL, деплой приложения потрогали ArgoCD, запустили тестовый инстанс, и задеплоили приложение из его готовых примеров. Но наша цель — деплоить наши Helm-чарты, а потому посмотрим, как это можно сделать. Самое интересное ожидаемо коснулось работы с Helm secrets. Пришлось покостылить, но в результате всё заработало так, как и ожидалось.… Читать далее »

ArgoCD: обзор, запуск, настройка SSL, деплой приложения

19 ноября 2020

ArgoCD помогает деплоить приложения в Kubernetes, используя GitOps подход, т.е. когда приложения, конфиги, манифесты и тому подобные данных хранятся в Git-репозитории. Поддерживает работу с «голыми» манифестами Kubernetes, kustomize, ksonnet, jsonnet и то, чем пользуемся мы — Helm-шаблонами. ArgoCD запускает свой контроллер в Kubernetes-кластере, и отслеживает изменения в Git-репозиториях, синхронизируя приложения в кластере с их манифестами… Читать далее »

Kubernetes: ServiceAccounts, JWT-токены, аутентификация и RBAC-авторизация

17 ноября 2020

Для аутентицикации и авторизации в Kubernetes имеются такие понятия как User Accounts и Service Accounts. User Accounts — профили обычных пользователей, используемые для доступа к клатеру снаружи кластера, тогда как Service Accounts используются для аутентификации сервисов внутри кластера. ServiceAccounts предназначены для предоставления идентификатора, используя который Kubernetes Pod, а точнее контейнер(ы) в нём, могут быть аутенифицированы… Читать далее »

Android: DroidCam — камера телефона на компьютере и «кухонные хитрости»

15 ноября 2020

Что делать, что бы на кухне постоянно не заливало плиту, когда что-то варишь, а живёшь сам? Сидеть возле плиты, и наблюдать? Так себе приключение. Пршло в голову использовать камеру телефона/планшета, и транслировать на компьютер в комнате. Был уверен, что есть для этого софт, и не ошибся — гуглим «android share camera with pc«, находим обзор… Читать далее »

Kubernetes: обновление DNS в Route53 при создании Ingress

14 ноября 2020

Задача: при создании Ingress ресурса — создавать запись на DNS, которая будет привязана к URL создаваемого Ingress, потому что сейчас это приходится делать руками для каждого нового Application Load Balancer, который создаётся из Ingress через ALB Ingress controller. Для решения — используем ExternalDNS, который будет ходить в наш AWS Route53, и добавлять записи. Документация на… Читать далее »

Kubernetes: Ingress, ошибка 502, readinessProbe и livenessProbe

11 ноября 2020

Имеется приложение на Go, API-бекенд. Периодически начинает возвращать 502 ошибку, хотя сам под работает и в статусе Running. Что бы рассмотреть, как и почему Ingress и Service могут возвращать 502, и как работают readinessProbe и livenessProbe в Kubernetes Deployment — напишем простой веб-сервер на Go, в котором опишем два ендпоинта — один будет возвращать нормальный… Читать далее »

Linux: настройка LEMP — NGINX, PHP, MySQL, SSL, мониторинг, логи, и миграция RTFM

5 ноября 2020

Собрался наконец-то перенести RTFM на Debian 10, решил делать без автоматизации — будем поднимать стандартный LEMP для хостинга WordPress руками. Что-то похожее последний раз писалось в 2016 — Debian: установка LEMP — NGINX + PHP-FPM + MariaDB, в этот раз получился более полный обзор процесса. Также, когда-то делал автоматизацию для настройки сервера под RTFM, но последний… Читать далее »