Архив за месяц: Февраль 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 Создаём тестовый кластер: [simterm] $ eksctl create cluster –profile arseniy –region us-east-2 –name eks-dev-1 …… Читать далее »

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 Клонируем репозиторий: [simterm] $ git clone https://github.com/appleboy/gorush $ cd gorush/k8s/ [/simterm] Создаём пространство имён gorush и confgiMap,… Читать далее »