Архів категорії: Kubernetes

Kubernetes – це платформа з відкритим вихідним кодом для управління контейнеризованими робочими навантаженнями та супутніми службами. Її основні характеристики – кросплатформенність, розширюваність, успішне використання декларативної конфігурації та автоматизації. Вона має гігантську, швидкопрогресуючу екосистему.

Grafana: AWS EC2 resources та Kubernetes Pods requests

19 Квітня 2024
 

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

Kubernetes: tracing запитів з AWS X-Ray та Grafana data source

2 Березня 2024
 

 Tracing (“трасування”) дозволяє відстежувати запити між компонентами, тобто, наприклад, при використанні AWS і у Kubernetes  ми можемо прослідкувати весь шлях запиту від AWS Load Balancer – до Kubernetes Pod – і до DynamoDB або RDS. Це допомагає нам як відстежувати проблеми з performance – де і які запити виконуються довго – так і мати більше… Читати далі »

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

28 Лютого 2024
 

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

Terraform: створення модулю для збору логів AWS ALB в Grafana Loki

20 Лютого 2024
 

 Приклад створення модулю Terraform для автоматизації збору логів з AWS Load Balancers у Grafana Loki. Як працює сама схема див. у Grafana Loki: збираємо логи AWS LoadBalancer з S3 за допомогою Promtail Lambda – ALB пише логи в S3-бакет, звідки їх забирає Lambda-функція з Promtail і пересилає у Grafana Loki. В чому ідея з модулем… Читати далі »

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