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

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

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. Але там ми все робили руками, аби взагалі… Читати далі »

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

22 Червня 2024
 

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

Kubernetes: моніторинг Events з kubectl та Grafana Loki

21 Червня 2024
 

 В Kubernetes окрім метрик та логів з контейнерів ми маємо змогу отримувати інформацію про роботу компонентів за допомогою Kubernetes Events. В евентах зазвичай зберігається інформація про статус подів (створення, Evict, kill, ready або not-ready статус подів), про WorkerNodes (статус серверів), про роботу Kubernetes Scheduler (неможливість запуску поду, тощо). Типи Kubernetes Events В цілому, всі ці… Читати далі »

AWS: Karpenter та SSH для Kubernetes WorkerNodes

19 Червня 2024
 

 Маємо AWS EKS кластер з WorkerNodes/EC2, які створюються за допомогою Karpenter. Процес створення інфраструктури, кластеру та запуск Karpenter описаний у попередніх постах: Terraform: створення EKS, частина 1 – VPC, Subnets та Endpoints Terraform: створення EKS, частина 2 – EKS кластер, WorkerNodes та IAM Terraform: створення EKS, частина 3 – установка Karpenter Чого прям ну дуже… Читати далі »

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

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. В чому ідея з модулем… Читати далі »