Архів теґу: Kubernetes

AWS: VPC Flow Logs – логи до S3 та Grafana dashboard з Loki

16 Листопада 2024
 

 В продовження теми AWS: VPC Flow Logs, NAT Gateways, та Kubernetes Pods – детальний обзор. Там ми розбирали роботу з VPC Flow Logs в цілому, і дізнались, як ми можемо отримувати інформацію про трафік з/до Kubernetes Pods. Але при використанні Flow Logs з CloudWatch Logs є одна проблема – це вартість. Наприклад, коли ми включаємо… Читати далі »

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

24 Вересня 2024
 

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

Karpenter: використання Disruption budgets

17 Вересня 2024
 

 Disruption budgets з’явились в версії 0.36, і виглядає як дуже цікавий інструмент для того, аби обмежити Karpenter в перестворенні WorkerNodes. Наприклад в моєму випадку ми не хочемо, аби EC2 вбивались в робочі часи по США, бо там у нас клієнти, а тому зараз маємо consolidationPolicy=whenEmpty, аби запобігти “зайвому” видаленню серверів та Pods на них. Натомість… Читати далі »

VictoriaLogs: знайомство, запуск в Kubernetes, LogsQL та Grafana

5 Вересня 2024
 

 VictoriaLogs – відносно нова система для збору та аналізу логів, схожа на Grafana Loki, але – як і VictoriaMetrics в порівнянні з “ванільним” Prometheus – менш вибаглива до ресурсів CPU/Memory. Особисто я користуюсь Grafana Loki років 5, але до неї іноді буває дуже багато питань – і по документації, і по загальній складності системи, бо… Читати далі »

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 Access Entries та EKS Pod Identities

15 Липня 2024
 

 Отже, маємо кластер AWS Elastic Kubernetes Service з Authentication mode EKS API and ConfigMap, який ми включили під час апгрейду Terraform-модуля з версії 19.21 на 20.0. Перед тим, як переключати EKS Authentication mode повністю на API – нам потрібно з aws-auth ConfgiMap перенести всіх юзерів і ролі в Access Entries EKS-кластера. І ідея зараз така,… Читати далі »

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: Kubernetes та Access Management API – нова схема авторизації в EKS

4 Липня 2024
 

 Ще одна крута фіча, яку Амазон показав ще на минулому re:Invent в листопаді 2023 – це зміни в тому, як AWS Elastic Kubernetes Service виконує аутентифікацію та авторизацію юзерів. При чому це стосується не тільки саме користувачів кластеру, а і WorkerNodes. Тобто, не дуже-то нова схема – але в мене ось тільки зараз дійшли руки… Читати далі »

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