Uvod
Kubernetes je postao standard za implementaciju velikih aplikacija. Pomaže razvojnim programerima da ostvare značajne prednosti i nudi značajke koje nisu dostupne u tradicionalnom hostingu poslužitelja. Kubernetes omogućuje horizontalno skaliranje bez gnjavaže oko infrastrukture. Nadalje, smanjuje troškove nabave i održavanja infrastrukture kako aplikacija raste.
Međutim, upravljanje aplikacijama na Kubernetesu također može biti složeno i zahtijeva napredne vještine. Implementacija aplikacija pomoću Kubernetesa i kontinuirane integracije i kontinuirane isporuke procesa (CI/CD) pomaže u prevladavanju ovog složenog procesa pružanjem apstrakcije. GitOps je jedan od alata koji mogu pomoći u postizanju apstrakcije.
U ovom vodiču, prikazat ćemo kako koristiti Argo CD za kontinuiranu integraciju i isporuku aplikacija na Kubernetesu. Kad god se bilo koja promjena gurne u repozitorij, ona se implementira na ciljni klaster. Argo CD također pruža kontrole verzija, konfiguracije i aplikacijska okruženja integracijom s cijelim životnim ciklusom razvoja softvera. Ako imate upravitelje paketima za Kubernetes kao što je Helm, ili ako imate svoj repozitorij hostiran na BitBucket ili GitLab, Argo CD se također može besprijekorno integrirati sa svim tim platformama.
Preduvjeti
Da biste dovršili ovaj vodič, morate imati:
-
SSH ključeve na svom računalu. Ako nemate par SSH ključeva koji rade na Linuxu/MacOS-u/BSD-u, možete ih izraditi prateći naš vodič SSH Overview – SSH Servers, Clients, and Keys.
-
Također će vam trebati pokrenut Kubernetes klaster. Osim toga, trebali biste imati kubectl pokrenut na vašem računalu. Ako nemate Kubernetes klaster, možete pratiti Kako stvoriti Kubernetes klaster pomoću Kubeadma na Ubuntuu 18.04.
-
Trebali biste imati osnovno razumijevanje koncepta Kubenertesa. Ako se želite dodatno upoznati s Kubernetesom, možete pratiti Upoznavanje s osnovama alata Kubernetes.
Korak 1 – Instalirajte Argo CD
Prije nego što možemo instalirati Argo CD, moramo imati pokrenuto Kubernetes okruženje s kubectl. To možete testirati pokretanjem naredbe u nastavku:
|
1 |
kubectl get nodes |

Trebali biste vidjeti barem jedan Kubernetes čvor koji radi u Ready statusu. Ako nema dostupnog čvora, trebali biste ponovno provjeriti svoju instalaciju Kubenertesa. Zatim ćemo stvoriti zaseban prostor naziva za našu instalaciju Kubenertesa. Nazovimo ga argocd. U ovom prostoru naziva zadržat ćemo uslugu povezanu s Argo CD-om:
|
1 |
kubectl create namespace argocd |
Nakon toga instalirajte Argo CD skripte u gore novostvoreni prostor naziva pokretanjem naredbe u nastavku:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Da biste provjerili status Kubernetes podova, pokrenite naredbu u nastavku:
|
1 |
watch kubectl get pods -n argocd |
Dobit ćete rezultat poput ovog u nastavku:

Ovdje ste uspješno završili instalaciju Argo CD-a. Za izlazak iz sučelja watch, možete pritisnuti Ctrl + C. Za pristup uslugama u ovom Kubernetes klasteru morat ćemo proslijediti portove. Pokazat ćemo vam kako to učiniti u sljedećem koraku.
Korak 2 – Proslijedite portove za pristup Argo CD-u
Kubernetes može implementirati vašu aplikaciju na bilo koji port po svom izboru. Stoga je potrebno proslijediti portove Kubernetes aplikacije kako biste im pristupili s lokalnog računala. Argo CD izlaže uslugu pod nazivom argocd-server koja koristi port 443. Port 443 je zadani port za HTTPS i HTTP usluge. Možete proslijediti Kubernetes portove na port po vašem izboru. U našem primjeru u nastavku, proslijedili smo port na 8080. Za prosljeđivanje portova pokrenite naredbu u nastavku u terminalu:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
Nakon što proslijedite port, on će biti blokiran tako da mu druge usluge ne mogu pristupiti. Za nesmetan pristup, uvijek se preporučuje pokretanje gore navedene naredbe u novom terminalu. Kada završite, možete pritisnuti Ctrl+C kako biste prekinuli postupak prosljeđivanja porta.
Nakon što proslijedite port, možete otići na Argo CD tako da posjetite localhost:8080. Od vas će se tražiti vjerodajnice koje možete dobiti iz naredbenog retka u sljedećem koraku.
Step 3 – Upravljanje Argo CD-om iz naredbenog retka
Moramo instalirati naredbeni redak Argo CD-a za upravljanje instalacijom Argo CD-a. Preporučeni način instalacije Argo CD-a je korištenje upravitelja paketima kao što je Homebrew. Homebrew je popularan alat za upravljanje paketima za instalaciju na macOS-u i Linuxu. Homebrew možete instalirati pomoću naredbe u nastavku:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
Trebali biste imati brew instaliran na vašem računalu. Može se pojaviti upit za lozinku za prijavu. Možete ga pokrenuti pokretanjem naredbe u nastavku:
|
1 |
brew install argocd |
Dobit ćete argocd naredbu nakon gore navedene instalacije. Morat ćemo dohvatiti administratorsku lozinku pomoću kubectl naredbe. Automatski je generirana tijekom instalacije. Ispod je naredba za njezino dobivanje:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Sada kada ste instalirali Argo CD, možete se prijaviti pomoću naredbe argocd login u nastavku:
|
1 |
argocd login localhost:8080 |
Morat ćete se prijaviti za implementaciju aplikacije kada koristite naredbeni redak:

Možda ćete primiti sigurnosno upozorenje. Ako je tako, pritisnite y za nastavak. Mnogi korisnici možda žele promijeniti lozinku nakon prijave. Ako je tako, pokrenite naredbu argocd account update-password kako biste promijenili lozinku. Sada imamo potpuno funkcionalnu konfiguraciju Argo CD-a.
Na kraju, implementirat ćemo aplikaciju na Kubernetes klasteru pomoću instaliranog Argo CD-a.
Step 4 – Korištenje više klastera
Prije nego što nastavite s postavljanjem svoje aplikacije, potrebno je znati ciljno računalo na koje je želite implementirati. U mnogim scenarijima, Argo CD i implementirana aplikacija mogu se izvoditi na istom klasteru. To je zadano ponašanje Argo CD-a, ali to nije ograničenje. Ako želite implementirati aplikaciju na druga ciljna računala, najprije pokrenite kubectl config na svom računalu:
|
1 |
kubectl config get-contexts -o name |
Pretpostavimo da dobijete dva klastera: test-deploy-cluster i test-target-cluster. Ako se sada test-deploy-cluster nalazi tamo gdje je vaš Argo CD, a želite izvršiti implementaciju na test-target-cluster, tada pokrenite naredbu u nastavku:
|
1 |
argocd cluster add target-k8s |
Gore navedena naredba dodat će pojedinosti o dodatnom klasteru u Argo CD. Također će omogućiti implementaciju usluga na ciljnom klasteru Argo CD-a.
Step 5 – Implementacija primjera aplikacije
Napokon je vrijeme za implementaciju aplikacija na Kubernetes klasteru. Koristit ćemo primjere aplikacija koje nudi Argo CD. Također ćemo koristiti helm-guestbook koji je izgrađen pomoću Helm grafikona.
Za instalaciju aplikacije koristit ćemo naredbu argo app create . Navest ćemo Git repozitorij, helm-guestbook te proslijediti vaše zadano odredište i prostor naziva (namespace):
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
Status novoizgrađene aplikacije možete provjeriti pokretanjem argocd app get:
|
1 |
argocd app get helm-guestbook |
Nemojte se iznenaditi ako vidite OutOfSync status. Do sada smo preuzeli Helm grafikon i stvorili ulaznu točku za njega za Argo CD. Međutim, na strani Kubernetesa nema dodijeljenih resursa za njega. Kako biste sinkronizirali ovu aplikaciju, pokrenite naredbu u nastavku:
|
1 |
argocd app sync helm-guestbook |

Kada radite s GitOps-om, uvijek je potrebno sinkronizirati aplikaciju s izvornim repozitorijem. Stoga, kad god se dogodi promjena u repozitoriju, Argo CD implementira aplikaciju.
Implementirali smo aplikaciju pomoću naredbenog retka Argo CD-a. Isti rezultat možete postići pomoću web sučelja Argo CD-a. Web sučelje je vrlo korisno ako želite provjeriti status i rad aplikacije. Da biste otvorili web sučelje, otvorite localhost:8080:

Kako biste provjerili instalaciju, otvorit ćemo aplikaciju u pregledniku. Naš helm-guestbook radi na portu 80. Ako imate bilo koju drugu aplikaciju koja koristi port 80, možete proslijediti port kako druge aplikacije ne bi bile prekinute:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Na kraju, otvorite URL localhost:9090 u svom web pregledniku kako biste vidjeli da vaša aplikacija radi:

Sada, ako programer pošalje bilo kakav kod u udaljeni Github repozitorij, ArgoCD će ga uhvatiti i primijeniti. Vaše ArgoCD implementacije bit će u skladu s tim ažurirane, osiguravajući neprekidnu dostupnost.
Zaključak
U ovom vodiču pokazali smo vam kako instalirati i implementirati aplikacije na Kubernetesu pomoću Argo CD-a. Važno je osigurati da se vaše implementacije na Kubernetesu mogu održavati. GitOps bi vam mogao puno pomoći u tom pogledu.
Kubernetes je sada standard za implementacije u oblaku. Cloudsigma ima sjajne vodiče o Kubernetesu koje možete pogledati u nastavku:
- Kubernetes DNS usluga: Vodič za početnike
- Postavljanje WordPressa s MySQL-om na Kubernetesu pomoću Helma
- Instalacija Jenkinsa na Kubernetes
- Istraživanje CloudSigma PaaS-a: Kako pristupiti Kubernetes aplikaciji putem javnog IP-a
Ugodno računanje!
Komentari
Još nema komentara. Budite prvi.