Архів теґу: Kubernetes

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

AWS: VPC Flow Logs, NAT Gateways, та Kubernetes Pods – детальний обзор

1 Травня 2024
 

 Маємо відносно великі витрати на AWS NAT Gateway Processed Bytes, і стало цікаво що ж саме процеситься через нього. Здавалося б, все просто – включи собі VPC Flow Logs, да подивись, що до чого. Але як діло стосується AWS Elasitc Kubernetes Service та NAT Gateways, то все трохи цікавіше. Отже, про що будемо говорити: що… Читати далі »

Grafana: AWS EC2 resources та Kubernetes Pods requests

19 Квітня 2024
 

 У Kubecost і подібних рішень є дуже корисна сторінка, де відображається статистика по Kubernetes Pods – скільки CPU/Memory вони використовують, скільки реквестів, лімітів, і які для них рекомендовані значення. Додатково, щоб мати уяву про ефективність роботи Karpenter, я хочу мати дашборду в Grafana, яка буде відображати статистку по всім WorkerNode Kubernetes кластеру – ресурси CPU/Memory… Читати далі »

AWS: VPC Prefix та максимальна кількість подів на Kubernetes WorkerNodes

28 Лютого 2024
 

 Кожна WorkerNode в Kubernetes може мати обмежену кількість подів, і цей ліміт визначається трьома параметрами: CPU: загальна кількість requests.cpu не може бути більше, ніж є CPU на Node Memory: загальна кількість requests.memory не може бути більше, ніж є Memory на Node IP: загальна кількість подів не може бути більшою, ніж є IP-адрес у ноди І… Читати далі »

Karpenter: моніторинг та Grafana dashboard для Kubernetes WorkerNodes

1 Лютого 2024
 

 Маємо AWS EKS з Karpenter, який займається автоскелінгом EC2 – див. AWS: знайомство з Karpenter для автоскейлінгу в EKS, та встановлення з Helm-чарту. В цілому проблем з ним поки не маємо, але в будь-якому разі потрібен його моніторинг, для чого Karpeneter “з коробки” надає метрики, які можемо використати в Grafana та Prometheus/VictoriaMetrics алертах. Тож що… Читати далі »

AWS: EKS Pod Identities – заміна IRSA? Спрощуємо менеджмент IAM доступів

15 Грудня 2023
 

 Ще з дуже цікавих новинок останнього re:Invent – це EKS Pod Identities: нова можливість керувати доступами подів до ресурсів AWS. The current state: IAM Roles for Service Accounts До цього ми використовували модель IAM Roles for Service Accounts, IRSA, де для того, щоб якомусь поду дати доступ до, наприклад, S3, ми створювали IAM Role з… Читати далі »

Kubernetes: забезпечення High Availability для Pods

20 Листопада 2023
 

 Що маємо: є у нас Kubernetes cluster, на якому скейлінгом WorkerNodes займається Karpenter, який для NodePool має  параметр disruption.consolidationPolicy=WhenUnderutilized, тобто він буде намагитись “ущільніти” розміщеня подів на нодах так, щоб максимально ефективно використати ресурси CPU та Memory. В цілому все працює, але це призводить до того, що досить часто перестворюються WorkerNodes, а це викликає “переселення”… Читати далі »

Grafana Loki: збираємо логи AWS LoadBalancer з S3 за допомогою Promtail Lambda

15 Листопада 2023
 

 Зараз ми вміємо збирати логи API Gateway та CloudWatch Logs, див. Loki: збір логів з CloudWatch Logs з використанням Lambda Promtail. Але в процесі міграції в Kubernetes у нас з’явились Application Load Balancers, які вміють писати логи тільки в S3, і нам треба навчитись збирати логи і звідти. Формат логу AWS ALB див. у Access… Читати далі »

Kubernetes: Liveness та Readiness Probes – Best practices

13 Листопада 2023
 

 Кілька корисних порад по використанню Liveness та Readiness Probes в Kubernetes – різниця між ними, та як правильно налаштовувати ці перевірки. Якщо зовсім коротко, то: livenessProbe: використовується Kubernetes, щоб знати, коли потрібно виконати restart поду readinessProbe: використовується Kubernetes, щоб знати, коли контейнер готовий приймати трафік, тобто – коли відповідний Kubernetes Service може додавати цей под… Читати далі »

VictoriaMetrics: Exporter в CronJob та пуш метрік без Pushgatway

7 Листопада 2023
 

 В пості Prometheus: запуск Pushgateway у Kubernetes з Helm та Terraform писав про те, як для Prometheus додати Pushgateway, який дозволяє використовувати Push-модель замість Pull, тобто – експортер може відправити метрики прямо в базу замість того, щоб чекати, коли до нього прийде сам Prometheus або VMAgent. У VictoriaMetrics з цим набагато простіше, бо ніякого Pushgateway… Читати далі »