Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

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

11 ноября 2020
 

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

Jenkins: деплой Redis и Helm subchart values

29 октября 2020
 

 Задача — содать Jenkins джобу, которая будет деплоить Redis на Dev/Stage/Prod кластера. В посте Redis: Master-Slave репликация и запуск в Kubernetes сделали это вручную, посмотрели что и как вообще запускается и работает — теперь надо автоматизировать. Главный вопрос — как вообще деплоить и передавать параметры? Хочется использовать уже готовый чарт, но в тоже время —… Читать далее »

Helm: пошаговое создание чарта и деплоймента из Jenkins

14 мая 2020
 

 Продолжаем трогать Kubernetes и Helm. Сам Хельм в общих чертах рассмотрели в посте Helm: Kubernetes package manager — обзор, начало работы — теперь надо прикрутить его в Jenkins. И не просто прикрутить его вызов — а создать чарт, потому что сейчас приложение деплоится через «голые» манифест-файлы Kubernetes, в котором sed проставляет теги Докер-образа и значения переменных… Читать далее »

Linux: создание coredump памяти процесса, systemd-coredump и Debian

10 марта 2020
 

 Возникла необходимость получить дамп РНР-процесса на Debian 9. Рассмотрим механизм ядра, позволящий создать дамп, и настройку создания дампов в Linux. Ниже будем говорить о создании дампа памяти процесса в Linux, а не дампа ядра при kernel panic — там он иной, см. Kdump на Arch Wiki. Linux Core Dump Ядро создаёт дамп памяти процесса, если… Читать далее »

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… Читать далее »

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 … Значение… Читать далее »

Debian: php7.3-curl : Depends: libcurl3 (>= 7.44.0) but it is not installable

23 января 2020
 

 Имеется джоба в Jenkins, которая запускает контейнер, и выполняет сборку PHP-приложения на Yii. Во время сборки PHP-приложения — билд падает с ошибкой: … Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been… Читать далее »

PHP: кеширование PHP-скриптов — настройка и тюнинг OpCache

25 декабря 2019
 

 OpCache увеличивает производительность PHP сохраняя уже скомпилированные скрипты PHP в общей памяти, таким образом уменьшая работу для PHP-FPM, которому приходится меньше выполнять загрузку, чтение и обработку PHP при поступлении новых запросов. Workflow обработки новых запросов выглядит так: Исходный код проекта — тут>>>. Enable OpCache Редактируем php.ini файл, в данном примере это будет /etc/php/7.3/fpm/php.ini. Добавляем в… Читать далее »

Chromium: Linux, keyrings && Secret Service, шифрование и хранение паролей

9 декабря 2019
 

 Одним из поводов настолько углубиться в keyrings (см. What is: Linux keyring, gnome-keyring, Secret Service, и D-Bus) был факт того, что Chromium, внезапно, при отсутствии keyring в Linux будет хранить пароли в «открытом виде». Собственно, давайте попробуем найти — как и где Chromium хранит пароли, и, самое важное — шифрует ли он их? Chromium и… Читать далее »

Jenkins: деплой Docker Compose из Ansible и ECR авторизация

26 сентября 2019
 

 В продолжение поста AWS: создание Elastic Container Registry и деплой из Jenkins, в котором создали джобу для билда Docker-образов и их пуша в AWS ECR — теперь надо создать джобу в Jenkins для деплоя и запуска одного Docker-контейнера. Запускать будем через Docker Compose, в котором Ansible будет задавать требуемую версию из параметров Jenkins-джобы. Для того, что… Читать далее »