Gunakan Pusat Cadangan untuk melakukan pencadangan dan pemulihan aplikasi di kluster ACK lintas wilayah guna pemulihan bencana.
Sebelum memulai
Tinjau batasan berikut sebelum melanjutkan.
| Constraint | Detail |
|---|---|
| Storage type | Hanya mendukung aplikasi dan volume pada disk Alibaba Cloud. Jenis penyimpanan lain tidak dapat dimigrasikan dengan data volume yang utuh. |
| Stateful apps with non-Alibaba Cloud storage | Kosongkan Backup Volume untuk aplikasi-aplikasi ini. Jika tidak, pemulihan lintas wilayah akan gagal. |
| Destination cluster version | Kluster tujuan harus menjalankan Kubernetes 1.18 atau versi yang lebih baru untuk memulihkan data disk cloud dari snapshot Elastic Compute Service (ECS). |
| Destination cluster storage plugin | Kluster tujuan harus menggunakan plugin penyimpanan Container Storage Interface (CSI). Kluster yang menggunakan FlexVolume, atau keduanya CSI dan FlexVolume melalui csi-compatible-controller, tidak didukung. |
| Resources being deleted | Sumber daya yang sedang dihapus selama proses backup akan dikecualikan. |
| Backup repository immutability | Repositori backup bersifat immutable setelah dibuat dan hanya dapat dihapus. Membuat ulang repositori dengan nama yang sama tidak akan berfungsi di kluster yang pernah menggunakan repositori aslinya. |
| ACK dedicated and registered clusters | Untuk kluster Kubernetes yang dikelola sendiri di ECS, verifikasi izin snapshot disk ECS sebelum menggunakan pemulihan volume lintas wilayah. Lihat Instal komponen layanan backup migrate-controller dan konfigurasikan izin. |
Prasyarat
Pastikan Anda telah memiliki:
-
Kluster tujuan yang menjalankan Kubernetes 1.18 atau versi yang lebih baru (Buat kluster ACK yang dikelola, Buat kluster khusus ACK (tidak lagi tersedia untuk pembuatan baru), atau Buat kluster terdaftar dan hubungkan ke kluster pusat data).
-
Kluster tujuan yang menggunakan plugin penyimpanan CSI.
-
Komponen sistem yang telah diinstal di kluster tujuan sebelum memulihkan:
-
Add-on ACR passwordless: Berikan izin dan konfigurasikan
acr-configuration. -
Add-on ALB Ingress: Konfigurasikan
ALBConfigdan pengaturan lainnya.
-
-
Add-on
migrate-controllertelah diinstal dan izin dikonfigurasi di kedua kluster. Lihat Instal komponen layanan backup migrate-controller dan konfigurasikan izin. -
Snapshot disk cloud ECS telah diaktifkan. Lihat Aktifkan snapshot disk cloud ECS. Layanan snapshot gratis untuk diaktifkan. Snapshot dikenai biaya pay-as-you-go berdasarkan ukuran dan retensi. Lihat Penagihan snapshot.
Persiapan
Contoh ini menggunakan konfigurasi berikut:
-
Kluster backup: Kluster ACK Pro Cluster_BJ di wilayah China (Beijing)
-
Kluster pemulihan: Kluster ACK Pro Cluster_SZ di wilayah China (Shenzhen)
-
Repositori backup: Terkait dengan bucket OSS di wilayah China (Beijing)
Langkah 1: Di wilayah China (Beijing), buat bucket OSS dengan nama yang diawali cnfs-oss-***.
Jika bucket OSS yang memenuhi syarat sudah ada di wilayah ini, lewati langkah ini.
Langkah 2: Buat aplikasi Nginx stateful di namespace default Cluster_BJ.
cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
labels:
app: nginx
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "alicloud-disk-topology-alltype"
resources:
requests:
storage: 20Gi
EOF
Langkah 1: Buat repositori backup
Pusat Cadangan menyimpan data backup di OSS. Buat repositori jika belum tersedia.
-
Jaringan antara repositori backup dan bucket OSS-nya dikonfigurasi secara otomatis, yang memengaruhi kecepatan unggah dan unduh backup.
-
Wilayah yang sama (kluster dan bucket OSS): Menggunakan PrivateLink.
-
Wilayah berbeda (kluster dan bucket OSS, seperti dalam skenario lintas wilayah): Menggunakan koneksi jaringan publik. Aktifkan akses jaringan publik sebelum melanjutkan. Lihat Aktifkan akses jaringan publik untuk kluster.
-
-
Repositori backup bersifat immutable setelah dibuat dan hanya dapat dihapus. Membuat ulang repositori dengan nama yang sama tidak akan berfungsi di kluster yang pernah menggunakan repositori aslinya.
Lihat Buat repositori backup.
Langkah 2: Backup aplikasi di Cluster_BJ
Migrasi lintas wilayah hanya mendukung aplikasi tanpa status dan aplikasi stateful yang menggunakan disk Alibaba Cloud secara eksklusif. Untuk aplikasi stateful lainnya, kosongkan Backup Volume untuk mencegah kegagalan pemulihan.
Langkah 3: Pulihkan aplikasi di Cluster_SZ
Lihat Pulihkan aplikasi dan volume.
Langkah 4: Verifikasi migrasi
Konfirmasi bahwa aplikasi Nginx berjalan dengan benar di Cluster_SZ.
Menggunakan kubectl:
kubectl get pods -n default
kubectl get pvc -n default
Konfirmasi status Pod adalah Running dan PersistentVolumeClaim (PVC) berstatus Bound.
Menggunakan konsol:
-
Masuk ke Container Service Management Console. Di panel navigasi kiri, klik Clusters.
-
Di halaman manajemen Cluster_SZ, di panel navigasi kiri, pilih Workloads > StatefulSets.
-
Di kolom Actions untuk aplikasi Nginx, klik Details, lalu klik tab Pods. Konfirmasi status aplikasi adalah Running.
Langkah selanjutnya
-
Untuk migrasi antar kluster dengan plugin penyimpanan atau versi Kubernetes yang berbeda, lihat Gunakan Pusat Cadangan untuk migrasi aplikasi dari kluster Kubernetes versi sebelumnya.
-
Untuk migrasi aplikasi menggunakan command line, lihat Gunakan kubectl untuk backup dan pulihkan aplikasi kluster.