Архив за месяц: Февраль 2020

AWS: CloudFormation — вложенные стеки и Import/Export параметров

28 февраля 2020
 

 Вложенные стеки (Nested Stacks) в CloudFormation — это стеки, которые создаются из другого, «родительского», стека используя AWS::CloudFormation::Stack. Основная идея использования вложенных стеков — избежать необходимости писать новый шаблон для ресурса, который используется в нескольких стеках. Вместо этого — шаблон создаётся один раз, хранится в AWS S3 корзине, и при создании стеков — вы просто ссылаетесь… Читать далее »

Linux: настройка gnome-keyring в роли Freedesktop SecretService

26 февраля 2020
 

 Сейчас у меня KeePass используется как менеджер паролей, хранилище RSA-ключей и в роли Freedesktop SecretService, см. пост KeePass: настройка MFA, хранение паролей браузера, паролей SSH ключей и интеграция Secret Service. Первая проблема применения KeePass в роли SecretService заключается в том, что у меня его база синхронизируется между компьютерами (просто хранится в Dropbox), и он каждый… Читать далее »

Redis: «psync scheduled to be closed ASAP for overcoming of output buffer limits» и client-output-buffer-limit

20 февраля 2020
 

 Имеется Redis-кластер с Sentinel, см. Redis: репликация, часть 2 — Master-Slave репликация, и Redis Sentinel, Redis: fork — Cannot allocate memory, Linux, виртуальная память и vm.overcommit_memory и Redis: основные параметры конфигурации и тюнинг производительности. Система работала отлично долгое время, пока мы не начали использовать кеш намного более активно. Redis info Проверить все ключи в базах можно… Читать далее »

Linux: PHP-FPM, Docker, STDOUT и STDERR — нет логов приложения

17 февраля 2020
 

 Имеется Docker-образ, в который включены NGINX и PHP-FPM, плюс Supervisor для их запуска. В этот же образ включён код PHP-приложения, которое пишет ошибки PHP в /dev/stderr, как задано в php.ini: … [global] error_log=/dev/stderr … Проблема заключается в том, что при выполнении kubectl logs — в выводе этих данных нет. Где проблема? В Docker? Kubernetes? Linux… Читать далее »

Kubernetes: запуск metrics-server в AWS EKS для Kubernetes Pod AutoScaler

15 февраля 2020
 

 Предполагается, что AWS EKS уже создан, и имеет рабочие ноды. Ниже — выполним настройку подключения к кластеру, создадим тестовый деплоймент с HPA — Kubernetes Horizontal Pod AutoScaler, и попробуем получить данные об используемых ресурсах с помощью kubectl top. Kubernetes cluster Создаём тестовый кластер: Переключаемся на него. Kubernetes cluster context Настраиваем kubectl: Проверяем доступные в аккаунте… Читать далее »

Kubernetes: ConfigMaps и Secrets на примере Gorush сервера

14 февраля 2020
 

 Имеется Gorush сервер, запущенный в посте Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer, к которому теперь хочется добавить возможность добавления своего файла настроек — для Staging с одними данными, и для Production — с другими. Используем Kubernetes ConfigMap для хранения содержимого файлов настроек Gorush, которые потом покдлючим внутрь запускаемых подов и их контейнеров,… Читать далее »

PHP: PHP-FPM игнорирует переменные — решения

13 февраля 2020
 

 Имеется PHP приложение, которое для подключения к серверу баз данных использует дефолтные данные из файла /app/.env и переменные окружения. Проблема заключается в том, что приложение не видит переменную $TEST_VAR, хотя в шаблоне Kubernetes пода она задана: … containers: — name: application-dev-web image: bttrm-application:119 … — name: TEST_VAR valueFrom: secretKeyRef: name: bttrm-app-secret key: test_var … Значение… Читать далее »

Kubernetes: ConfigMap и Secrets — auto-reload данных в подах

11 февраля 2020
 

 Имеется ConfigMap для Gorush сервиса (см. Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer). Проблема заключается в том, что при изменении данных в ConfigMap или Secrets — они не будут сразу отображены в подах и их контейнерах. Есть несколько костылей типа монтирования в виде volume, а потом ремаунтить разделы, или каждый раз создавать новый… Читать далее »

Kubernetes: запуск push-сервера Gorush в EKS за AWS LoadBalancer

6 февраля 2020
 

 Gorush — сервер, написанный на Go, для отправки пуш-уведомлений на мобильные. Запускать будем в AWS EKS, в отдельном namespace, при этом сервис должен быть доступен толкьо внутри VPC, поэтому используем AWS Internal Application Load Balancer. Запуск Gorush Namespace Клонируем репозиторий: Создаём пространство имён gorush и confgiMap, который будет использоваться сервисом для получения настроек подключения к… Читать далее »