Mencadangkan cluster pengguna di AWS

Halaman ini menunjukkan cara mencadangkan penyimpanan data etcd untuk penginstalan GKE di AWS Anda untuk pemulihan dari peristiwa yang dapat merusak data etcd cluster Anda.

Batasan

  • Menggunakan file cadangan untuk memulihkan data etcd adalah upaya terakhir. Sebaiknya jangan memulihkan dari file cadangan kecuali jika cluster benar-benar rusak. Hubungi dukungan Google untuk mendapatkan bantuan dalam memutuskan tindakan terbaik.

  • Prosedur ini tidak mencadangkan data dari workload Anda, termasuk PersistentVolume.

  • Cadangan ini tidak dapat digunakan untuk memulihkan cluster dari versi GKE di AWS yang berbeda.

Mencadangkan cluster pengguna

Pencadangan cluster pengguna adalah snapshot penyimpanan etcd cluster pengguna. Penyimpanan etcd berisi semua objek Kubernetes dan objek kustom yang merepresentasikan status cluster. Snapshot berisi data yang diperlukan untuk membuat ulang workload stateless cluster.

Untuk membuat snapshot penyimpanan data etcd, lakukan langkah-langkah berikut:

  1. Buka shell di instance layanan pengelolaan yang menjalankan etcd untuk cluster Anda.

    1. Temukan alamat IP instance layanan pengelolaan cluster Anda.

      export CLUSTER_ID=$(terraform output cluster_id)
      export MANAGEMENT_IP=$(aws ec2 describe-instances \
        --filters "Name=tag:Name,Values=$CLUSTER_ID-management-0" \
        --query "Reservations[*].Instances[*].PrivateIpAddress" \
        --output text)
      
    2. Gunakan alat ssh untuk membuka koneksi ke instance layanan pengelolaan.

      Koneksi langsung

      ssh -i ~/.ssh/anthos-gke ubuntu@$MANAGEMENT_IP
      

      Bastion host

      export BASTION_DNS=$(terraform output bastion_dns_name)
      ssh -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS ubuntu@$MANAGEMENT_IP
      
  2. Buat direktori untuk menyimpan data cadangan etcd.

    mkdir ./etcd-backups
    
  3. Gunakan alat command line ps untuk menemukan ID proses etcd pada instance tersebut.

    ps -e | grep etcd
    

    Output akan menampilkan detail proses etcd Anda. Elemen pertama adalah ID proses etcd. Pada langkah-langkah berikut, ganti ETCD_PID dengan ID proses ini.

  4. Buat skrip dalam sistem file penampung etcd untuk mengambil snapshot. Skrip ini menjalankan etcdctl untuk terhubung ke daemon etcd dan melakukan snapshot untuk mencadangkan database etcd.

    cat << EOT > /tmp/etcdbackup.sh
    # Extract a snapshot of the anthos-gke etcd state database
    
    export ETCDCTL_API=3
    
    etcdctl \
     --endpoints=https://127.0.0.1:2379 \
     --cacert=/secrets/server-ca.crt \
     --cert=/secrets/server.crt \
     --key=/secrets/server.key \
     snapshot save /tmp/snapshot.db
    EOT
    
    chmod a+x /tmp/etcdbackup.sh
    sudo mv /tmp/etcdbackup.sh /proc/ETCD_PID/root/tmp/etcdbackup.sh
    
  5. Gunakan perintah nsenter untuk menjalankan skrip dalam container etcd guna membuat snapshot.

    sudo nsenter --all --target ETCD_PID /tmp/etcdbackup.sh
    
  6. Salin file snapshot dari container etcd.

    sudo cp /proc/ETCD_PID/root/tmp/snapshot.db ./etcd-backups
    
  7. Salin semua file di direktori /secrets pada penampung etcd ke direktori cadangan Anda. File ini berisi sertifikat yang mengenkripsi dan memvalidasi komunikasi antara etcd dan proses lain dalam cluster. Bersama-sama, file snapshot dan file sertifikat adalah cadangan penuh status cluster etcd Anda.

    sudo cp -r /proc/ETCD_PID/root/secrets ./etcd-backups
    
  8. Gunakan alat tar untuk menggabungkan file etc-backup ke dalam file tar yang mudah digunakan.

    tar -cvf etcd-backup.tar etcd-backup
    
  9. Keluar ke komputer lokal Anda dan gunakan alat scp untuk menyalin file etcd-backup.tar dari instance layanan pengelolaan. Contoh ini menggunakan variabel lingkungan BASTION_DNS dan MANAGEMENT_IP yang ditentukan sebelumnya.

    scp -i ~/.ssh/anthos-gke -J ubuntu@$BASTION_DNS \
     ubuntu@$MANAGEMENT_IP:~/etcd-backup/backup.tar
    

Untuk Informasi Selengkapnya