Velero bekap Kubernetes klastera na HostArena S3

Velero bekap Kubernetes klastera na HostArena S3

Velero je besplatan alat za bekap i oporavak Kubernetes klastera. Čuva opise resursa (deploymente, servise, konfiguracije i drugo) u S3 kompatibilnom skladištu, odakle ih možete vratiti u isti ili novi klaster. Uz HostArena S3 storage bekap klastera je van klastera, na serverima u Srbiji.

Šta vam je potrebno

  • Pristup klasteru preko kubectl (administratorska prava).
  • Instaliran Velero CLI na računaru sa kog upravljate klasterom.
  • Podaci HostArena S3 usluge:
PodatakVrednostGde ga nalazite
Server (endpoint)s3.hostarena.rs (port 443, HTTPS)Isti za sve korisnike
RegiongarageObavezno ovako, ne us-east-1
Bucketnpr. vas-bucketHostArena korisnički panel, kod S3 usluge
Access Keynpr. VAS_ACCESS_KEYHostArena korisnički panel, kod S3 usluge
Secret Keynpr. VAS_SECRET_KEYHostArena korisnički panel, kod S3 usluge

Preporuka je da za Velero koristite poseban bucket ili bar posebnu fasciklu (prefix), da se bekapi ne mešaju sa drugim fajlovima.

Podešavanje

  1. Napravite fajl credentials-velero sa ključevima:
    [default]
    aws_access_key_id=VAS_ACCESS_KEY
    aws_secret_access_key=VAS_SECRET_KEY
  2. Instalirajte Velero u klaster. Umesto vX.Y.Z upišite verziju AWS plugina koja odgovara vašoj verziji Velero-a (tabela kompatibilnosti je u zvaničnoj dokumentaciji Velero-a):
    velero install 
      --provider aws 
      --plugins velero/velero-plugin-for-aws:vX.Y.Z 
      --bucket vas-bucket 
      --prefix velero 
      --secret-file ./credentials-velero 
      --use-volume-snapshots=false 
      --backup-location-config region=garage,s3ForcePathStyle="true",s3Url=https://s3.hostarena.rs
  3. Posle instalacije obrišite fajl credentials-velero sa računara ili ga sačuvajte na bezbednom mestu – ključevi su već upisani u klaster kao Kubernetes secret.

Važno: region=garage je obavezan, a s3ForcePathStyle="true" preporučujemo jer je najpouzdaniji način adresiranja. U s3Url ne stavljajte naziv bucketa.

Provera da radi

velero backup-location get

U koloni faze treba da piše Available. Zatim napravite probni bekap i proverite ga:

velero backup create proba --include-namespaces default
velero backup describe proba
velero backup logs proba

U bucketu, u fascikli velero/backups/proba, treba da se pojave fajlovi bekapa.

Diskovi (Persistent Volumes)

Pažnja: sa ovim podešavanjem Velero čuva samo opise resursa, ne i podatke na diskovima (PV) – na primer sadržaj baza ili otpremljenih fajlova. Za bekap sadržaja diskova potrebno je dodatno podešavanje (bekap na nivou fajlova preko Velero node agenta ili snimci diskova koje podržava vaš provajder). Pogledajte zvaničnu dokumentaciju Velero-a pre nego što se oslonite na bekap podataka. Za baze je najsigurnije redovno praviti i dump.

Zakazani bekapi

velero schedule create dnevni 
  --schedule="0 2 * * *" 
  --ttl 168h0m0s

Ovo pravi bekap svakog dana u 02:00 (vreme po UTC) i čuva svaki bekap 7 dana. Listu bekapa vidite komandom velero backup get.

Vraćanje

velero restore create --from-backup proba
velero restore describe <naziv-restore-a>

Pojedinačan namespace vraćate dodavanjem --include-namespaces naziv.

Pažnja: pre vraćanja proverite da je kubectl povezan na pravi klaster. Velero podrazumevano preskače resurse koji već postoje, pa da biste vratili staro stanje obično prvo morate obrisati postojeći namespace – a to briše trenutne podatke. Radite to samo kada ste sigurni da je bekap ispravan.

Brisanje bekapa

velero backup delete proba

Pažnja: ova komanda trajno briše bekap i iz klastera i iz bucketa. Ne može se poništiti.

Najčešći problemi

Lokacija bekapa je Unavailable

Pogledajte detalje komandom kubectl logs deployment/velero -n velero. Najčešće je pogrešan s3Url, naziv bucketa ili region.

AuthorizationHeaderMalformed

Region nije garage. Ispravite region=garage u lokaciji bekapa (velero backup-location set ili ponovna instalacija).

InvalidAccessKeyId ili SignatureDoesNotMatch

Ključevi u secret-u nisu ispravni. Ispravite fajl credentials-velero i ažurirajte secret cloud-credentials u namespace-u velero.

Ne može da se poveže

Čvorovi klastera moraju imati izlaz na internet preko porta 443.

Ako i dalje ne ide, otvorite tiket u korisničkom panelu i pošaljite tačan tekst greške.

Zaključak

Velero vam omogućava da brzo vratite Kubernetes resurse posle greške ili prebacite aplikacije u novi klaster. Za kontejnere van Kubernetes-a pogledajte Docker aplikacije i HostArena S3, a za bekap servera Restic.

Tags: , , ,