Міграція постійного сховища в Kubernetes з однієї підписки в іншу

Як перенести Prometheus з постійним обсягом і запитом постійного обсягу (PVC і PV) у Kubernetes кластері, крок за кроком.

Тут я використовую Prometheus як приклад, і найцікавіше те, що я переношу PVC з одного підписки в іншу та з одного регіону в інший (з Центральної Індії до Eastus).

🤔Чому ми мігруємо Prometheus з постійним сховищем?🤔

Prometheus — це критично важливий інструмент моніторингу, який зберігає метрики та дані, необхідні для спостереження за станом системи. За замовчуванням Prometheus використовує еферемне сховище, тобто всі дані втрачаються, якщо под перезапускається або відбувається оновлення. Щоб забезпечити постійність даних та надійність, ми мігрували Prometheus до нового Kubernetes кластера з наступними цілями:

  1. Збереження історичних даних:
    Збереження всіх метрик моніторингу у випадку перезавантаження, оновлення або міграції.

  2. Міграція між кластерами:
    — Перенесення всіх даних Prometheus без втрат між кластерами зручно (з одного регіону в інший).

  3. Використання надійного сховища від Azure:
    — Використання постійного сховища від Azure Disk для збереження даних та можливості їх відновлення.

  4. Простіше оновлення і масштабування:

  5. Розділення даних від життєвого циклу pod Prometheus, що спрощує масштабування, оновлення та відновлення після катастроф.

Ця конфігурація забезпечує високу доступність і надійність Prometheus, підтримуючи довгострокове збереження даних та операційну безперервність.

Вступ

При роботі з Prometheus у Kubernetes використання постійного сховища є критичним для забезпечення стійкості даних під час розгортання та оновлень. У цьому блозі показано, як:

  • Створити Persistent Volume (PV) та Persistent Volume Claim (PVC) в Azure.
  • Налаштувати Prometheus для використання PV.
  • Перемістити дані Prometheus і вирішити типові проблеми, такі як помилки VolumeBinding filter plugin через міграцію CSI.

Крок 1: Створення Azure Disk для постійного сховища

  1. Увійдіть до Azure CLI:
az login
  1. Створіть ресурсну групу:
az group create --name monitoring-rg --location eastus
  1. Створіть керований диск:
az disk create --resource-group monitoring-rg --name prometheus-pvc-disk --size-gb 20 --sku Standard_LRS
  1. Запишіть URI диска: Після створення диска запишіть diskURI з виведеного результату, який ви будете використовувати в манифесті PV.

Крок 2: Оголошення Persistent Volume (PV) та Persistent Volume Claim (PVC)

  1. Створіть манифест PV: Збережіть наступне у файл prometheus-pv.yaml:
apiVersion: v1  
kind: PersistentVolume  
metadata:  
 name: prometheus-pv   
spec:  
 capacity:  
 storage: 20Gi  
 accessModes:  
 - ReadWriteOnce  
 persistentVolumeReclaimPolicy: Retain  
 csi:  
 driver: disk.csi.azure.com  
 volumeHandle: prometheus-pvc-disk  
 volumeAttributes:  
 storageAccount:   
 containerName:   
 diskURI:   
 claimRef:  
 namespace:   
 name: prometheus-pvc 

2. Створіть манифест PVC: Збережіть наступне у файл prometheus-pvc.yaml:

apiVersion: v1  
kind: PersistentVolumeClaim  
metadata:  
 name: prometheus-pvc  
 namespace:   
spec:  
 accessModes:  
 - ReadWriteOnce  
 resources:  
 requests:  
 storage: 20Gi
  1. Застосуйте PV та PVC:
kubectl apply -f prometheus-pv.yaml  
kubectl apply -f prometheus-pvc.yaml
  1. Перевірте прив'язку PV та PVC:
kubectl get pv  
kubectl get pvc -n 

Крок 3: Розгортання Prometheus з Helm

  1. Додайте репозиторій Helm Prometheus:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts  
helm repo update
  1. Отримайте values.yaml з Helm chart і відредагуйте наступне у values.yaml:
server:  
 persistentVolume:  
 existingClaim: prometheus-pvc 

3.
Встановлення або оновлення Prometheus:

helm upgrade --install prometheus prometheus-community/prometheus -f values.yaml -n 
  1. Перевірка статусу розгортання:
kubectl get pods -n 

Крок 4: Усунення поширених проблем

ЗАУВАЖЕННЯ: Проблеми, з якими я стикався під час налаштування цього завдання

  1. Помилка: VolumeBinding filter plugin:
  • Переконайтесь, що PV використовує драйвер disk.csi.azure.com_.
  • Перевірте, чи URI диска в манифесті PV відповідає створеному раніше Azure диску.
  1. Команди для відлагодження:
  • Перевірте події PVC:
kubectl describe pvc  -n 
  • Перевірте події PV:
kubectl describe pv  -n 

Слідуючи цьому покроковому посібнику, ви можете успішно налаштувати Prometheus з постійним сховищем у Kubernetes.

Я намагався пояснити цей процес якомога чіткіше. Сподіваюся, ви дізналися щось корисне з цього посібника. Не соромтесь зв'язатися зі мною через LinkedIn для обговорення або поділитися своїми думками!

Мені буде приємно отримати ваші відгуки, тому не соромтесь залишати коментарі або пропозиції щодо вдосконалення. Бажаю успіхів у навчанні та розгортанні!

ДЯКУЮ ВСІМ ЗА ЧИТАННЯ ЦІЄЇ СТАТТІ !!🤗

Перекладено з: Migrating Persistent Storage in Kubernetes from One subscription to another

Leave a Reply

Your email address will not be published. Required fields are marked *