Posts

journalctl — čitanje sistemskih logova

Kad servis ne startuje, kad sistem puca bez objašnjenja ili kad hoćeš da vidiš šta se dešavalo u tri ujutru — odgovor je u logovima. Na modernim Linux sistemima njima upravlja systemd-journald , a čitaju se komandom journalctl . Za razliku od starih tekstualnih logova, journal je binarni format sa indeksima. To znači da ne možeš da ga otvoriš običnim cat -om, ali zauzvrat dobijaš filtriranje koje sa grep -om ne bi ni pokušao. Prvi pogled # journalctl Ispisuje ceo journal od najstarijeg zapisa, u pageru. Na sistemu koji radi mesecima to su stotine hiljada linija, pa je ovako praktički neupotrebljivo — ali je dobar način da vidiš kako zapis izgleda: Aug 19 11:04:23 web01 systemd[1]: Starting The Apache HTTP Server... Aug 19 11:04:23 web01 httpd[1382]: Server configured, listening on: port 80 Aug 19 11:04:23 web01 systemd[1]: Started The Apache HTTP Server. Svaki red ima vreme, ime računara, ime procesa sa PID-om i poruku. Bez sudo videćeš samo deo zapisa — one koje je proi...

dnf i yum — upravljanje paketima na RHEL sistemima

Menadžer paketa je alat kojim instaliraš, ažuriraš i uklanjaš softver na Linuxu. Umesto da preuzimaš instalacije sa sajtova, sve ide iz repozitorijuma — proverenih skladišta paketa koje održava distribucija. Menadžer sam rešava i zavisnosti : ako paket koji instaliraš zahteva još pet biblioteka, on će ih povući bez pitanja. dnf ili yum? Na RHEL-u, Rocky Linuxu, AlmaLinuxu i CentOS-u koristi se dnf . Stariji sistemi (RHEL 7 i CentOS 7) koriste yum . Na modernim sistemima yum i dalje radi — ali je samo preusmerenje na dnf . Možeš i sam da proveriš: $ which yum /usr/bin/yum $ ls -l /usr/bin/yum lrwxrwxrwx. 1 root root 5 Apr 12 09:31 /usr/bin/yum -> dnf-3 Zato u tekstu koristim dnf . Ako radiš na starijem sistemu, svuda umesto toga otkucaj yum — sintaksa je gotovo identična. Skoro sve komande ispod zahtevaju administratorska prava, pa idu uz sudo . Pronalaženje paketa Pretraga po imenu i opisu $ dnf search htop ========== Name Exactly Matched: htop ========== hto...

Master Node

  Master Node (ili Control Plane) je ključna komponenta u Kubernetes klasteru. On je mozak klastera i upravlja svim operacijama, kao što su raspoređivanje resursa, skaliranje aplikacija, praćenje stanja, i druge administrativne funkcije. 🧠 Šta Master Node radi? Master Node je odgovoran za centralizovano upravljanje celokupnim Kubernetes klasterom. Sastoji se od nekoliko ključnih komponenti koje omogućavaju funkcionisanje i koordinaciju: 1. API Server (kube-apiserver) : API server je glavna tačka interakcije sa Kubernetes klasterom. Svi zahtevi (kao što su komande kubectl ili automatske interakcije sa klasterom) idu kroz API server. API server obrađuje ove zahteve, usmerava ih prema odgovarajućim Kubernetes komponentama, i vraća rezultate korisnicima. 2. Controller Manager (kube-controller-manager) : Kontroler menadžer upravlja kontrolerima koji prate stanje klastera i prate promene u sistemu. Na primer, kada se desi nešto neočekivano, kao što je nestanak...

Šta je Node u Kubernetesu?

  Node je fizički ili virtuelni računar na kojem se pokreću Podovi u Kubernetes klasteru. Node-ovi predstavljaju radnu jedinicu klastera i svaki Node u klasteru pokreće Kubernetes komponente koje omogućavaju pokretanje i upravljanje aplikacijama. Ukratko: Node = računar koji pokreće Podove u klasteru. 🔧 Šta Node radi? Svaki Node ima nekoliko ključnih komponenti: Kubelet – Agent koji pokreće na svakom Node-u i brine se da su Podovi pokrenuti prema specifikacijama. Kube Proxy – Odgovoran za mrežno rutiranje unutar klastera. Container Runtime – Softver koji omogućava pokretanje kontejnera (npr. Docker, containerd). 🧠 Ključne karakteristike Node-a: Svaki Node može da pokreće više Podova . Node-ovi mogu biti "master" ili "worker" : Master Node (ili Control Plane) upravlja celokupnim klasterom, raspoređuje resurse, prati stanje. Worker Node (obično više) pokreće Podove koji čine aplikacije. 📋 Prikaz Node-a: Možeš da prover...

Šta je Deployment? Šta je StatefulSet?

  Deployment je Kubernetes objekat koji upravlja stateless aplikacijama , tj. aplikacijama koje ne zavise od svog identiteta i ne čuvaju stanje lokalno . Ukratko: Deployment = automatsko skaliranje i obnavljanje "običnih", zamjenjivih Podova. 🔧 Šta radi Deployment: Pokreće željeni broj identičnih Podova Osigurava da uvek ima tačno toliko aktivnih replika Automatski pravi rolling update (postepeno ažuriranje verzije) Vraća prethodnu verziju ako nešto krene po zlu 📄 Primer YAML fajla: apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.21 ports: - containerPort: 80 Ovo pravi 3 identična Nginx Poda koji mogu da se zamene bilo kad. 🧱 Šta je StatefulSet ? StatefulSet je tip kontrolera za st...

Šta su Volume u Kubernetesu?

  Volume u Kubernetesu je mehanizam za čuvanje podataka koje kontejneri mogu da koriste , nezavisno od životnog veka kontejnera . Ukratko: Volume omogućava deljenje i/ili očuvanje podataka između kontejnera ili između restarta. ❗Zašto je to važno? Kada kontejner umre, sve što je bilo u njegovom fajl sistemu nestaje . Volume omogućava: trajno skladištenje podataka deljenje fajlova između kontejnera u istom Podu učitavanje konfiguracija i tajni (ConfigMap, Secret) spajanje sa eksternim skladištima (npr. NFS, AWS EBS, GlusterFS, itd.) 🧩 Kako se koristi? Volume se definiše na nivou Pod-a i povezuje sa kontejnerima pomoću volumeMounts . 📄 Primer: apiVersion: v1 kind: Pod metadata: name: pod-sa-volumom spec: containers: - name: app image: nginx volumeMounts: - name: moj-vol mountPath: /usr/share/nginx/html volumes: - name: moj-vol emptyDir: {} U ovom primeru: Volume moj-vol je tipa empty...

Šta je Secret u Kubernetesu?

  Secret je Kubernetes objekat za čuvanje poverljivih podataka , kao što su: lozinke API tokeni SSH ključevi TLS sertifikati Ukratko: Secret = bezbedan način za čuvanje osetljivih informacija u klasteru. 🧠 Zašto se koristi? Da ne hardcoduješ poverljive podatke u YAML fajlove, slike (image-e), ili promenljive okruženja. Kubernetes može da upravlja tim podacima sigurnije nego sa običnim ConfigMap-ovima: Sekreti se čuvaju u base64 kodiranju Mogu se šifrovati na disku (ako je tako podešeno) Imaju stroža pravila pristupa (RBAC) 📄 Primer Secret fajla: apiVersion: v1 kind: Secret metadata: name: moj-secret type: Opaque data: username: dXNlcm5hbWU= # base64("username") password: cGFzc3dvcmQ= # base64("password") Možeš napraviti Secret i komandno: kubectl create secret generic moj-secret \ --from-literal=username=username \ --from-literal=password=password 🧩 Kako se koristi u Podu? 1....