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:
| Podatak | Vrednost | Gde ga nalazite |
|---|---|---|
| Server (endpoint) | s3.hostarena.rs (port 443, HTTPS) | Isti za sve korisnike |
| Region | garage | Obavezno ovako, ne us-east-1 |
| Bucket | npr. vas-bucket | HostArena korisnički panel, kod S3 usluge |
| Access Key | npr. VAS_ACCESS_KEY | HostArena korisnički panel, kod S3 usluge |
| Secret Key | npr. VAS_SECRET_KEY | HostArena 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
- Napravite fajl
credentials-velerosa ključevima:[default] aws_access_key_id=VAS_ACCESS_KEY aws_secret_access_key=VAS_SECRET_KEY - Instalirajte Velero u klaster. Umesto
vX.Y.Zupiš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 - Posle instalacije obrišite fajl
credentials-velerosa 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 getU 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 probaU 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 168h0m0sOvo 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 probaPaž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.
