GitLab: gitlab-shell timeouts та /metrics Connection refused

21 Березня 2023
 

 Запустились ми в production, і вилізла дуже неприємна бага – при git операціях clone/pull/push запит іноді зависав на 1-2 хвилини. Виглядало це як якась “плавуюча” бага, тобто 5 раз могло склонити нормально, а потім раз зависає. Проблеми gitlab-shell timeouts Наприклад – раз нормально: [simterm] $ time git clone [email protected]:example/platform/tables-api.git Cloning into ‘tables-api’… … real 0m1.380s… Читати далі »

GitLab: моніторинг – Prometheus, метрики, та Grafana dashboard

11 Березня 2023
 

 Отже, продовжуємо нашу подорож з міграцією GitLab до себе в Kubernetes. Див. попередні частини: GitLab: компоненти, архітектура, інфраструктура та запуск з Helm-чарту в Minikube GitLab: Helm-чарт values, залежності та деплой у Kubernetes з AWS S3 GitLab: міграція даних з GitLab cloud та процес backup-restore у self-hosted версії в Kubernetes В цілому – все працює, і… Читати далі »

GitLab: міграція даних з GitLab cloud та процес backup-restore у self-hosted версії в Kubernetes

1 Березня 2023
 

 Продовжуємо рухатись до запуску нашого self-hosted GitLab в production. Див. попередні частини – GitLab: компоненти, архітектура, інфраструктура та запуск з Helm-чарту в Minikube та GitLab: Helm-чарт values, залежності та деплой у Kubernetes з AWS S3. Міграція даних Ще дуже хотілося написати пост про міграцію даних з GitLab Cloud до self-hosted, але немає часу, та й… Читати далі »

Kubernetes: збільшення Persistent Volume з PersistentVolumeClaim та volumeClaimTemplates

21 Лютого 2023
 

 GitLab для зберігання репозиторіїв по дефолту створює диск розміром 50 GB, чого для Production явно буде мало. Persistent Volume resize опція доступна як general availability з версії Kubernetes 1.24, див. Kubernetes 1.24: Volume Expansion Now A Stable Feature, а в Beta – з версії 1.11, див. Resizing Persistent Volumes using Kubernetes. Доступно для дисків AWS… Читати далі »

Prometheus: створення Custom Prometheus Exporter на Python

18 Лютого 2023
 

 У Прометеуса є багато готових до використання експортерів, але інколи може з’явитися потреба у зборі своїх власних метрик. Для цього Прометеус надає клієнтські бібліотеки, які можемо використати для генерації метрик з потрібними лейблами. Експортер можна включити прямо в код вашого додатку, або можна запускати окремим сервісом, який буде звертатися до якогось вашого сервісу і отримувати… Читати далі »

GitLab: Helm-чарт values, залежності та деплой у Kubernetes з AWS S3

4 Лютого 2023
 

  Продовжуємо зайомство з GitLab та його деплоєм у Kubernetes. Перша частина –  GitLab: компоненти, архітектура, інфраструктура та запуск із Helm-чарту в Minikube, тепер давайте готуватися деплоїти в AWS Elastic Kubernetes Service. Що робитимемо і де: деплоїмо в AWS з Helm-чарту, для початку якийсь “test env” Kubernetes – AWS EKS object store – AWS S3 PostgreSQL… Читати далі »

GitLab: компоненти, архітектура, інфраструктура та запуск з Helm-чарту в Minikube

2 Лютого 2023
 

  Оскільки GitLab нещодавно змінив політику надання Free-доступу, і тепер по Free підписці буде доступно лише 5 користувачів, то вирішили ми переїжджати на self-hosted версію. Взагалі з ліцензією у них цікаво: ціна залежить від кількості користувачів, купити можна щонайменше на рік, і після покупки зменшити кількість користувачів у ліцензії не можна (але можна збільшити). GitLab… Читати далі »

Kubernetes: моніторинг вартості кластеру – Kubernetes Resource Report та Kubecost

23 Січня 2023
 

  Дуже правильне діло – моніторити, наскільки ефективно використовується кластер, особливо, якщо ресурси деплояться розробниками, які не сильно вникають у requests, і встановлюють завищені значення “про запас”. Запас, звичайно, потрібен, але й просто так реквестити ресурси ідеї погана. Наприклад, у вас є WorkerNode з 4 vCPU (4000 milicpu) та 16 ГБ оперативної пам’яті, і ви… Читати далі »

Kustomize: робота з маніфестами Kubernetes – огляд, приклади

15 Січня 2023
 

 Kustomize – система управління конфігураціями (configuration management tool) для Kubernetes, що дозволяє використовувати загальні набори маніфестів, які можуть бути змінені для кожного конкретного оточення/кластера, і може бути альтернативою шаблонам Helm (або доповнювати його). Загальна концепція Kustomize – “where, what, and how” – “де, що і як”: “де” – це наш базовий маніфест, наприклад deployment.yaml “що”… Читати далі »

BASH: використання циклів FOR, WHILE, UNTIL – приклади

15 Січня 2023
 

 Переклад поста 2013 року з деякими правками, але все ще актуальний для вивчення BASH. Короткий опис різниці у типах циклів: for – виконуватиме дію доти, доки є об’єкти для виконання (наприклад – читання потоку з stdin, файлу або функції); while – виконує дію доти, доки умова є істинною; until – виконуватиметься до того часу, поки умова стане true, тобто, поки вона false. Цикл FOR… Читати далі »