Бұлтты технологиялар мен масштабталатын қолданбаларды пайдалану дәуірінде деректердің бүтіндігін қамтамасыз ету маңызды міндет болып табылады. Docker контейнерлерімен жұмыс істегенде Kubernetes құралдарымен резервтік көшіру мен қалпына келтіру қажеттілігі туындайды, себебі бұл жүйенің бұзылуы кезінде деректердің жоғалуын азайтуға көмектеседі.
Осы мақалада біз Kubernetes көмегімен Docker контейнерлерінің резервтік көшіруі мен қалпына келтіруін ұйымдастыруды қарастырамыз, ең танымал құралдар мен әдістерді сипаттаймыз, сондай-ақ әртүрлі сценарийлер үшін код мысалдарын келтіреміз.
Неліктен Kubernetes жүйесінде резервтік көшіру қажет?
Контейнерленген қолданбаларда деректер әдетте Persistent Volumes (PV) және Persistent Volume Claims (PVC) — бұл объектілер Kubernetes жүйесінде ұзақ мерзімді сақтау үшін қолданылады. Контейнерлер деректерді ұзақ мерзімді сақтау үшін арнайы жасалмаған, сондықтан контейнер жойылған немесе қайта іске қосылған жағдайда барлық деректер жоғалады. Осы себепті деректерді қорғау үшін оларды резервтік көшіру жүйесі қажет.
Резервтік көшіру мыналарды қамтуы керек:
- Контейнерлердегі деректер — контейнер файлдық жүйесі, дерекқорлар және басқа деректер.
- Kubernetes конфигурациялары — ConfigMap, Secrets, Deployments және басқа объектілер.
- Kubernetes кластерінің күйі — кластердегі барлық объектілердің күйі, соның ішінде подтар, қызметтер, томдар.
Резервтік көшіру мен деректерді қалпына келтіру стратегиялары
Kubernetes жүйесінде резервтік көшіру мен қалпына келтіруді тиімді ұйымдастыру үшін бірнеше тәсілді қарастырамыз.
1. Контейнер ішіндегі деректерді резервтік көшіру
Kubernetes контейнерлері әдетте деректерді ұзақ мерзімді сақтау үшін Persistent Volumes пайдаланады. Бұл томдар контейнерлерге қосылып, деректерді сақтау үшін қолданылады. Осы деректерді қорғау үшін оларды тұрақты түрде резервтік көшіру қажет.
Резервтік көшіру үшін құралдар қолдану
Velero
Velero — Kubernetes жүйесінде деректерді резервтік көшіру мен қалпына келтіруге арналған ең танымал құралдардың бірі. Бұл құрал деректердің суретін жасауға, сондай-ақ ресурстардың конфигурацияларын резервтеуге және қалпына келтіруге мүмкіндік береді. Velero бұлтты сақтау жүйелерімен интеграцияланады, мысалы AWS, Google Cloud және басқалар.
Velero мүмкіндіктері:
- Persistent Volumes резервтік көшіру және қалпына келтіру.
- Kubernetes ресурстарының резервтік көшіруі (мысалы, Deployment, Pods, Secrets, ConfigMap және т.б.).
- Бұлтты сақтау жүйелерімен интеграция.
Velero көмегімен резервтік көшіруді жасау мысалы:
Алдымен Velero құралын Kubernetes кластеріне орнату керек. Мысалы, мына команданы пайдаланып орнатуға болады:
velero install --provider <cloud-provider> --bucket <backup-bucket> --secret-file <path-to-secret-file> --use-volume-snapshots=false --backup-location-config region=<region>
Velero орнатылып, конфигурацияланғаннан кейін, сіз резервтік көшіруді жасау үшін келесі команданы пайдалана аласыз:
velero backup create my-backup --include-namespaces=my-namespace --wait
Бұл команда көрсетілген кеңістіктегі барлық объектілерді резервтік көшіреді.
Velero көмегімен деректерді қалпына келтіру:
Резервтік көшіруден қалпына келтіру үшін мына команданы орындаңыз:
velero restore create --from-backup my-backup
Kubectl көмегімен резервтік көшіру
Кейбір қарапайым жағдайларда резервтік көшіруді kubectl
командасымен орындауға болады. Мысалы, контейнердің ішіндегі файлдарды резервтік көшіру үшін kubectl cp
командасын қолдануға болады:
kubectl cp my-pod:/path/to/data /local/path
Алайда бұл әдіс тек шағын және қарапайым жағдайларға қолайлы және күрделі сценарийлер үшін ұсынылмайды.
Дерекқорлардың резервтік көшіруі
Дерекқор контейнерлерін резервтік көшіру үшін дерекқормен жұмыс істеу үшін стандартты құралдарды пайдалануға болады. Мысалы, PostgreSQL үшін дерекқорды резервтік көшіру үшін pg_dump
құралын, ал MySQL үшін mysqldump
құралын қолдануға болады.
PostgreSQL дерекқорын резервтік көшіру мысалы:
kubectl run pg-dump --rm -i --tty --image=postgres:alpine --restart=Never -- \
pg_dump -h <db-host> -U <db-user> -d <db-name> > /backup/db-backup.sql
Бұл команда Kubernetes жүйесінде жұмыс істейтін PostgreSQL дерекқорынан резервтік көшіру жасайды және оны жергілікті файлға сақтайды.
2. Kubernetes конфигурациялары мен метадеректерін резервтік көшіру
Kubernetes жүйесі көптеген объектілерді басқарады, мысалы, ConfigMap, Secrets, Deployments, Services және т.б. Осы объектілердің резервтік көшіруі кластердің толық күйін қалпына келтіруге көмектеседі.
Kubernetes объектілерін резервтік көшіру
kubectl get
командасын пайдаланып объектілерді YAML файлына экспорттауға болады:
kubectl get configmap -n my-namespace -o yaml > configmap-backup.yaml
kubectl get secret -n my-namespace -o yaml > secret-backup.yaml
kubectl get deployment -n my-namespace -o yaml > deployment-backup.yaml
Бұл файлдар кейін Kubernetes жүйесіне объектілерді қалпына келтіру үшін пайдаланылуы мүмкін.
Kubernetes объектілерін қалпына келтіру
Резервтік көшіруден кейін объектілерді қалпына келтіру үшін kubectl apply
командасын пайдаланыңыз:
kubectl apply -f configmap-backup.yaml
kubectl apply -f secret-backup.yaml
kubectl apply -f deployment-backup.yaml
3. Kubernetes кластерінің күйін резервтік көшіру
Kubernetes etcd деп аталатын бөлек таратылған хранилище пайдаланады, бұл кластердің барлық деректерін сақтайды. Кластердің күйін қорғау үшін etcd-тің резервтік көшірмесін жасау қажет. Бұл әдіс контейнерлердің ғана емес, сондай-ақ барлық конфигурациялар мен қолданбалардың күйін қалпына келтіруге мүмкіндік береді.
etcd арқылы резервтік көшіру жасау
etcd деректерінің резервтік көшірмесін жасау үшін мына команданы пайдаланыңыз:
ETCDCTL_API=3 etcdctl snapshot save /tmp/etcd-backup.db
Бұл команда etcd деректерінің суретін etcd-backup.db
файлына сақтайды.
etcd деректерін қалпына келтіру
Резервтік көшірмеден қалпына келтіру үшін мына команданы орындаңыз:
ETCDCTL_API=3 etcdctl snapshot restore /tmp/etcd-backup.db
Осыдан кейін Kubernetes кластерін қайта іске қосу керек.
Резервтік көшіруден деректерді қалпына келтіру
Velero көмегімен деректерді қалпына келтіру
Резервтік көшіруден деректерді қалпына келтіру үшін мына команданы пайдаланыңыз:
velero restore create --from-backup my-backup
Бұл команда Kubernetes объектілерін, соның ішінде Persistent Volumes, ConfigMaps, Secrets және басқа ресурстарды қалпына келтіреді.
Контейнерлер мен деректерді қалпына келтіру
Егер резервтік көшіру kubectl cp
немесе басқа құралмен жасалған болса, деректерді қалпына келтіру үшін:
kubectl cp /local/path my-pod:/path/to/data
Бұл әдіс шағын көлемдегі деректерді қалпына келтіруге арналған.
Қорытынды
Docker контейнерлерінің резервтік көшіруі және қалпына келтіруі Kubernetes жүйесінде маңызды аспект болып табылады. Kubernetes көптеген құралдар ұсынады, соның ішінде Velero, стандартты kubectl
командалары, және бұлтты сақтау жүйелерімен интеграция. Сонымен қатар дерекқорлар мен басқа маңызды компоненттерді қорғау үшін арнайы құралдарды пайдалану ұсынылады.
Күрделі қолданбалар мен деректер үшін Velero немесе Kasten K10 сияқты кешенді шешімдер ұсынылады. Бұл құралдар деректердің сақтық көшірмелерін жасауға, барлық ресурстарды қорғауға және қажет болған жағдайда оларды қалпына келтіруге мүмкіндік береді.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Ubuntu 24 жүйесінде Docker контейнерлерін орнату және баптау
- Docker контейнерлерін Kubernetes құралдарымен резервтік көшіру және қалпына келтіру
- NFS-дискіні Docker контейнеріне қосу: Тәжірибелік терең зерттеу
- Bacula на oVirt: Орнату, баптау және тиімді пайдалану
- Zabbix на oVirt: Орнату, баптау және тиімді пайдалану
- Prometheus + Grafana на oVirt: Орнату және тиімді пайдалану
- oVirt Backup: Орнату, баптау және тиімді пайдалану
- oVirt жүйесінде Docker контейнерлері — терең шолу
- Kubernetes-ті oVirt-те орнату және баптау — терең шолу
- oVirt жүйесінде ManageIQ орнату және баптау: Толық нұсқаулық