Сьогодні дані є основою будь-якого бізнесу, і Kubernetes кластери не є винятком. Незалежно від того, чи йдеться про відновлення після катастроф, відповідність вимогам чи спокій душі, наявність надійної стратегії резервного копіювання є критично важливою.
Однак, локальні Kubernetes кластери створюють унікальні проблеми для резервного копіювання.
Velero, потужний інструмент з відкритим кодом, спрощує процес резервного копіювання та відновлення ресурсів Kubernetes. У поєднанні з AWS S3 він пропонує масштабоване, безпечне та економічно ефективне рішення для резервного копіювання.
Цей посібник пояснює процес налаштування Velero для резервного копіювання ваших локальних Kubernetes кластерів на AWS S3.
Що таке Velero і чому його варто використовувати для резервного копіювання Kubernetes?
Velero — це безкоштовний інструмент з відкритим кодом, призначений для резервного копіювання та відновлення ресурсів Kubernetes і постійних томів. Він особливо корисний для:
- Відновлення після катастроф.
- Міграція робочих навантажень між кластерами.
- Реплікація виробничих середовищ для тестування.
Поєднуючи Velero з AWS S3, ви отримуєте перевагу у вигляді хмарного сховища, яке є безпечним, надійним та глобально доступним, що робить його ідеальним вибором для резервного копіювання локальних Kubernetes кластерів.
Передумови
Перед початком переконайтесь, що у вас є:
- Kubernetes кластер: Локальний кластер, готовий до резервного копіювання.
- Обліковий запис AWS: З доступом до S3 та відповідними дозволами IAM.
- AWS CLI: Встановлений і налаштований на вашій локальній машині.
- kubectl: Встановлений і налаштований для вашого кластера.
- Velero CLI: Встановлений на вашій системі.
Покроковий посібник з резервного копіювання Kubernetes кластерів на AWS S3
Крок 1: Налаштування S3 бакету
- Увійдіть в консоль керування AWS.
- Перейдіть до сервісу S3 і створіть бакет.
- Використовуйте унікальне ім'я, наприклад,
k8s-backup-bucket
. - Виберіть відповідний регіон для вашого випадку.
- Прикріпіть політику бакету для надання доступу Velero. Ось приклад політики:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::k8s-backup-bucket/*"
}
]
}
- Увімкніть версіонування для бакету, щоб відслідковувати зміни у ваших резервних копіях.
Крок 2: Встановлення та налаштування Velero
- Завантажте Velero:
wget https://github.com/vmware-tanzu/velero/releases/latest/download/velero-linux-amd64.tar.gz
tar -xvf velero-linux-amd64.tar.gz
sudo mv velero /usr/local/bin/
- Створіть IAM користувача з ключем доступу та прикріпіть політику для доступу до S3.
ЗбережітьAWS_ACCESS_KEY_ID
таAWS_SECRET_ACCESS_KEY
для наступного кроку. - Налаштуйте Velero для роботи з AWS:
velero install \
--provider aws \
--plugins velero/velero-plugin-for-aws:v1.5.0 \
--bucket k8s-backup-bucket \
--secret-file ./credentials-velero \
--backup-location-config region=us-east-1 \
--snapshot-location-config region=us-east-1
- Створіть файл
credentials-velero
з таким вмістом:
[default]
aws_access_key_id=YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key=YOUR_AWS_SECRET_ACCESS_KEY
Крок 3: Розгортання Velero на Kubernetes кластері
- Встановіть Velero на Kubernetes кластер:
kubectl apply -f https://github.com/vmware-tanzu/velero/releases/download/v1.8.0/velero-v1.8.0.yaml
- Перевірте, чи працює Velero:
kubectl get pods -n velero
Крок 4: Виконання резервного копіювання
- Створіть резервну копію конкретного простору імен:
velero backup create my-backup --include-namespaces default
- Перевірте статус резервної копії:
velero backup describe my-backup
- Перевірте S3, щоб переконатися, що резервна копія була завантажена.
Крок 5: Перевірка та відновлення резервних копій
- Перегляньте існуючі резервні копії:
velero backup get
- Відновіть резервну копію:
velero restore create --from-backup my-backup
- Переконайтеся, що ресурси були відновлені за допомогою
kubectl
.
Кращі практики для захисту та керування резервними копіями
- Шифрування резервних копій: Використовуйте AWS KMS для шифрування вашого S3 бакету.
- Політики життєвого циклу: Налаштуйте політики для переміщення старих резервних копій до більш дешевих класів зберігання або видалення їх після певного періоду.
- Автоматизація: Плануйте регулярні резервні копії за допомогою функції розкладу Velero.
velero schedule create daily-backup --schedule "0 2 * * *"
Висновок
Резервне копіювання локальних Kubernetes кластерів в AWS S3 за допомогою Velero — це простий процес, який забезпечує безпеку та відновлення ваших даних. Завдяки Velero ви можете безперешкодно керувати своїми резервними копіями та відновлювати їх за потреби. Дотримуючись кращих практик, таких як шифрування та управління життєвим циклом, ви можете ще більше зміцнити свою стратегію резервного копіювання для надійнішого плану відновлення після катастроф.
Почніть впроваджувати це рішення сьогодні, щоб захистити ваші Kubernetes кластери та забезпечити безперервність бізнесу!
Перекладено з: How to Easily Back Up On-Prem Kubernetes Clusters to AWS S3 Using Velero