Fadak.IR راهکارهای فدک
English Русский العربية فارسی
مقالات مدیریت مطالعات زبان


/ فاوا / دواپس

بکاپ


         🔹 گرفتن بکاپ کامل از Kubernetes
      ✅ ۱. بکاپ‌گیری از etcd
      ✅ ۲. بکاپ از منابع کوبرنتیز
         📌 گرفتن خروجی YAML از تمام منابع
         📌 گرفتن بکاپ از منابع خاص
      ✅ ۳. بازیابی بکاپ منابع
      ✅ ۴. بکاپ از Volumeها و Persistent Storage
         📌 بکاپ از Persistent Volume‌ها (PV و PVC)
      ✅ ۵. استفاده از Velero برای بکاپ کامل
         📌 نصب Velero
      🎯 نتیجه‌گیری

🔹 گرفتن بکاپ کامل از Kubernetes

بکاپ‌گیری در کوبرنتیز شامل دو بخش اصلی است:
1️⃣ بکاپ از etcd (پایگاه داده اصلی که تمام وضعیت کلاستر را ذخیره می‌کند)
2️⃣ بکاپ از منابع Kubernetes (مانند دیپلویمنت‌ها، سرویس‌ها، PVC و غیره)


✅ ۱. بکاپ‌گیری از etcd

etcd قلب کوبرنتیز است و تمامی اطلاعات مربوط به منابع در آن ذخیره می‌شود. اگر کنترل‌پلین (Control Plane) را از دست بدهید، می‌توانید با ریستور کردن etcd کل کلاستر را بازیابی کنید.

🔹 بکاپ etcd در یک کلاستر با kubeadm

ETCDCTL_API=3 etcdctl snapshot save /backup/etcd-snapshot.db \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key

✅ این دستور یک اسنپ‌شات کامل از etcd را در مسیر /backup/etcd-snapshot.db ذخیره می‌کند.

🔹 بازیابی etcd در کلاستر
برای بازیابی etcd، از دستور زیر استفاده کنید:

ETCDCTL_API=3 etcdctl snapshot restore /backup/etcd-snapshot.db \
  --data-dir /var/lib/etcd

سپس سرویس kube-apiserver را ری‌استارت کنید:

sudo systemctl restart kubelet

✅ ۲. بکاپ از منابع کوبرنتیز

📌 گرفتن خروجی YAML از تمام منابع

برای گرفتن بکاپ از تمامی منابع (دیپلویمنت، سرویس، PV، PVC و ...) در یک namespace:

kubectl get all -n default -o yaml > backup-all.yaml

✅ این فایل حاوی تعریف تمام منابع در namespace پیش‌فرض است.

🔹 برای گرفتن بکاپ از همه namespaceها:

kubectl get all --all-namespaces -o yaml > full-cluster-backup.yaml

📌 گرفتن بکاپ از منابع خاص

🔹 بکاپ از پادها

kubectl get pods -o yaml > pods-backup.yaml

🔹 بکاپ از سرویس‌ها

kubectl get svc -o yaml > services-backup.yaml

🔹 بکاپ از PVC‌ها

kubectl get pvc -o yaml > pvc-backup.yaml

🔹 بکاپ از Secretها (بدون تغییر Base64)

kubectl get secrets -o yaml | sed -e 's/  data:/  stringData:/g' > secrets-backup.yaml

✅ ۳. بازیابی بکاپ منابع

برای بازیابی، کافی است از دستور kubectl apply -f استفاده کنید:

kubectl apply -f backup-all.yaml

یا برای بازیابی یک فایل خاص:

kubectl apply -f services-backup.yaml

✅ ۴. بکاپ از Volumeها و Persistent Storage

📌 بکاپ از Persistent Volume‌ها (PV و PVC)

اگر از NFS، Ceph، یا یک Storage Class استفاده می‌کنید، باید داده‌ها را از مسیر mount شده کپی کنید.
مثلاً برای بکاپ از PV در hostPath:

tar -czvf pv-backup.tar.gz /var/lib/kubelet/pods

🔹 برای PVCها در NFS یا Ceph کافی است از rsync یا tar استفاده کنید:

rsync -avz /mnt/nfs-share/ /backup/nfs-backup/

✅ ۵. استفاده از Velero برای بکاپ کامل

🔹 اگر می‌خواهید یک ابزار خودکار برای بکاپ داشته باشید، Velero بهترین گزینه است.

📌 نصب Velero

velero install --provider aws --bucket my-backup-bucket --backup-location-config region=us-east-1

🔹 بکاپ کل کلاستر

velero backup create full-backup --include-namespaces=*

🔹 بازیابی بکاپ

velero restore create --from-backup full-backup

🎯 نتیجه‌گیری

✅ اگر etcd را بکاپ بگیرید، کل وضعیت کلاستر قابل بازیابی است.
✅ گرفتن بکاپ از منابع کوبرنتیز (kubectl get all) برای بازیابی سریع کانفیگ‌ها مفید است.
✅ برای بکاپ از داده‌های PVC، باید به استوریج زیرساختی (NFS، Ceph، ...) دسترسی داشته باشید.
✅ استفاده از Velero بکاپ‌گیری را ساده و خودکار می‌کند.


مقالات
سیاست
رسانه‎های دیجیتال
علوم انسانی
مدیریت
روش تحقیق‌وتحلیل
متفرقه
درباره فدک
مدیریت
مجله مدیریت معاصر
آیات مدیریتی
عکس نوشته‌ها
عکس نوشته
بانک پژوهشگران مدیریتی
عناوین مقالات مدیریتی
منابع درسی (حوزه و دانشگاه)
مطالعات
رصدخانه شخصیت‌ها
رصدخانه - فرهنگی
رصدخانه - دانشگاهی
رصدخانه - رسانه
رصدخانه- رویدادهای علمی
زبان
لغت نامه
تست زبان روسی
ضرب المثل روسی
ضرب المثل انگلیسی
جملات چهار زبانه
logo-samandehi
درباره ما | ارتباط با ما | سیاست حفظ حریم خصوصی | مقررات | خط مشی کوکی‌ها |
نسخه پیش آلفا 2000-2022 CMS Fadak. ||| Version : 5.2 ||| By: Fadak Solutions نسخه قدیم