Архів категорії: Проблеми та рішення

Python: знайомство з Celery та його моніторинг

15 Квітня 2025
 

 Якщо дуже просто, то Celery – це щось, за допомогою чого ми можемо виконувати задачі поза нашим основним сервісом. Наприклад, є Backend API, який має якийсь ендпоінт, на який мобілочки відправляють інформацію про те, що юзер створив новий whatever в застосунку. Задача бекенда – додати whatever в базі даних. Можна це виконати прямо в інстансі… Читати далі »

Nexus: налаштування Docker proxy repository та ContainerD в Kubernetes

5 Березня 2025
 

 Про запуск Nexus писав в пості Nexus: запуск в Kubernetes та налаштування PyPi caching repository, тепер до PyPi хочеться додати кешування Docker images, тим більш Docker Hub з 1-го квітня 2025 вводить нові ліміти – див. Docker Hub usage and limits (дяка @Anatolii). Робити будемо як завжди – спочатку вручну локально на робочій машині, подивимось,… Читати далі »

Arch Linux: підключення розділів LVM та запуск mkinitcpio

4 Березня 2025
 

 Не часто, але іноді виникає потреба завантажити систему з usb, і перезібрати initramfs-linux.img. Цей пост – скоріш просто невеликий нотаток для себе як, що, і куди маунтити на робочому ноуті, аби запустити mkinitcpio, бо в мене є розділи LVM, є окремі розділи на диску під /boot та swap. iwctl та WiFi  Отже, завантажуємось з флешки,… Читати далі »

PostgreSQL: AWS RDS Performance and monitoring

7 Лютого 2025
 

 Мігруємо наш Backend API з DynamoDB на AWS RDS PostgreSQL, і кілька раз RDS падав. Власне, враховуючи те, що ми задля економії взяли db.t3.small з двома vCPU і двома гігабайтами пам’яті – то доволі очікувано, але стало цікаво чому ж саме все падало. Через кілька днів почав цю тему дебажити, і хоча причини поки не… Читати далі »

GitHub Actions: запуск Actions Runner Controller в Kubernetes

24 Вересня 2024
 

 Ми користуємось GitHub Actions для деплоїв, і врешті-решт прийшли до того, що хочеться запускати Runners на своїх серверах в Kubernetes, бо: self-hosted GitHub Runners дешевші – фактично, платимо тільки за сервери, на яких запускаються джоби нам потрібно запускати SQL migrations на AWS RDS в приватних сабнетах перформанс – ми можемо використовувати будь-який тип AWS EC2… Читати далі »

AWS: Kubernetes та External Secrets Operator для AWS Secrets Manager

21 Серпня 2024
 

 Маємо на проекті новий EKS кластер 1.30, на якому хочемо повністю відмовитись від старого IRSA з OIDC і почати користуватись EKS Pod Identities – див. AWS: EKS Pod Identities – заміна IRSA? Спрощуємо менеджмент IAM доступів. І все наче працює чудово, але коли почав деплоїти наш Backend API – поди не стартують, і висять в… Читати далі »

Terraform: EKS та Karpenter – upgrade версії модуля з 19.21 на 20.0

10 Липня 2024
 

 Наче звична задача – оновити версію модулю Terraform, але в terraform-aws-modules/eks версії 20.0 були досить великі зміни з breaking changes. Зміни стосуються аутентифікації та авторизації в AWS IAM та AWS EKS, які розбирав в пості AWS: Kubernetes та Access Management API – нова схема авторизації в EKS. Але там ми все робили руками, аби взагалі… Читати далі »

AWS: RDS з IAM database authentication, EKS Pod Identities та Terraform

27 Червня 2024
 

 Готуємось мігрувати базу даних нашого Backend API з DynamoDB до AWS RDS з PostgreSQL, і нарешті вирішив спробувати що ж таке AWS RDS IAM database authentication, який з’явився здається ще десь у 2021. IAM database authentication, як, в принципі, можна здогадатись з назви, дозволяє нам виконувати аутентифікацію в RDS за допомогою AWS IAM, а не… Читати далі »

Kubernetes: контейнери та “загублений” SIGTERM

22 Червня 2024
 

 Маємо API-сервіс в Kubernetes, який періодично видає 502, 503, 504 помилки. Почав його дебажити, і виявив дивну штуку – в логах не було повідомлень про отриманий SIGTERM, а тому спочатку пішов розбиратись з Kubernetes – чому він його не відправляє? The Issue Отже, як це виглядає. Маємо Kubernetes Pod: $ kk get pod NAME READY… Читати далі »

Helm: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress

24 Травня 2024
 

 Іноді під час деплою Helm-чартів може з’являтись помилка “UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress“: Виникати може через те, що попередній деплой не відбувся через помилки в чарті, або втрачений зв’язок між білд-машиною та Kubernets-кластером. Перевіряємо статус релізу з ls –all: $ helm -n dev-backend-api-ns ls –all NAME NAMESPACE REVISION UPDATED STATUS CHART APP… Читати далі »