Nginx — Regular Expression Tester

  Для быстрого тестирования регулярных выражений Nginx'а, можно воспользоваться готовым докер образом. Для этого нужно клонировать репозиторий NGINX-Demos:   Переходим в директорию "nginx-regex-tester":   И запускаем контейнер с помощью "docker-compose":   И открываем следующую страницу: http://localhost/regextester.php  

AWS — EKS Fargate — Fluentd CloudWatch

На момент написания статьи EKS Fargate не поддерживал драйверлог для записи в CloudWatch. Единственный вариант - использовать Sidecar Создадим ConfigMap, в котором укажем имя EKS кластера, регион и namespace:   Далее создадим сервис аккаунт и ConfigMap с файлом конфигурации для Fluentd. Для этого скопируем текст ниже и сохраним его как файл "fluentd.yaml"   И применим … Продолжить читать "AWS — EKS Fargate — Fluentd CloudWatch"

Kubernetes — Одна роль для нескольких пространств имен

    Цель: Есть 2 пространства имен, это "kube-system" и "default". Нужно запускать крон задачу в пространстве "kube-system", которая будет очищать выполненные джобы и поды в пространстве "default". Для этого создадим сервис аккаунт в пространстве "kube-system", роль с необходимыми правами в пространстве "default", и для созданного аккаунта привязываем созданную роль. cross-namespace-role.yaml

FIX ERROR — EKS: cloudwatch — 0/1 nodes are available: 1 Insufficient pods.

После установки CloudWatch Agent'а в EKS кластер, его поды повисают в состоянии "Pending"   Смотрим дескрайб пода   Решение: Решение было найдено тут. В данном EKS кластере для системных подов выделена отдельная NodeGroup'а с типом истансов: t3.micro и для запуска еще и CloudWatch Agent'a просто не хватает ресурсов.   После изменения типа инстанса в большую … Продолжить читать "FIX ERROR — EKS: cloudwatch — 0/1 nodes are available: 1 Insufficient pods."

FIX ERROR — fdisk: DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors

При попытке создать раздел утилитой "fdisk" размером 2 и более терабайта появляется следующее сообщение: The size of this disk is 2 TiB (2199023255552 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).   Решение: Поставить на новый диск лейбл … Продолжить читать "FIX ERROR — fdisk: DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors"

Jenkins — Active Choice: GitHub — Commit

  Для параметризованной сборки с выбором тега образа, понадобится плагин Active Choices Переходим в настройки Jenkins'а   Раздел "Управление плагинами"   Переходим к вкладке "Доступные" и в поиске указываем "Active Choices" Устанавливаем его. Так же необходим плагин Amazon Web Services SDK Создаем "New Item" - "Pipeline", указываем, что это будет параметризованной сборка, и добавляем параметр … Продолжить читать "Jenkins — Active Choice: GitHub — Commit"

AWS Cli — Lambda: Обновить значение одной переменной

Ключ "--environment" утилиты AWS Cli заменяет все переменные, на те которые вы укажете в качестве аргумента. Чтобы изменить значение только одной переменной не стирая другие, или не перечисляя их все, можно воспользоваться следующим BASH скриптом:   aws_lambda_update_env.sh:   Для работы этого скрипта нужна утилита jq   Скрипт вычитывает все текущие переменные, подменяет значение переменной "ECR_TAG" … Продолжить читать "AWS Cli — Lambda: Обновить значение одной переменной"

FIX ERROR — Jenkins: dial unix /var/run/docker.sock: connect: permission denied

После того, как установили Docker на Jenkins сервер и запустили его, при попытке выполнить сборку получаем следующую ошибку:   Решение: Добавляем пользователя "jenkins" в группу "docker":   После этого пользователь "jenkins" сможет выполнять работу с Docker'ом, если подключиться по SSH, но при Jenkins сборке будет по прежнему та же ошибка, чтобы от нее избавится, необходимо … Продолжить читать "FIX ERROR — Jenkins: dial unix /var/run/docker.sock: connect: permission denied"

AWS — Lambda: kubectl

Пример того, как можно создавать сущности в Kubernetes, используя AWS Lambda. Функция будет на Python3, так что воспользуемся Kubernetes Python Client Больше примеров по использованию можно найти тут. Так как AWS Lambda не поддерживает данный пакет, упакуем в нашу функцию модули "kubernetes" и "boto3". "boto3" понадобится для обращения в AWS SSM, где будет хранится kubeconfig … Продолжить читать "AWS — Lambda: kubectl"

FIX ERROR — AWS Lambda Python: «main() takes 0 positional arguments but 2 were given»

При попытке выполнить Lambda Python функцию возникает следующая ошибка: { "errorMessage": "main() takes 0 positional arguments but 2 were given", "errorType": "TypeError", "stackTrace": [ " File \"/var/runtime/bootstrap.py\", line 131, in handle_event_request\n response = request_handler(event, lambda_context)\n" ] }   Решение: Из сообщения видим, что мы в качестве хендлера используем функцию "main", которая не имеет входящих аргументов. … Продолжить читать "FIX ERROR — AWS Lambda Python: «main() takes 0 positional arguments but 2 were given»"