Kubernetes vodič za početnike: Kako učinkovito upravljati kontejneriziranim aplikacijama
Kubernetes vodič za početnike: Kako učinkovito upravljati kontejneriziranim aplikacijama
Kubernetes je postao trenutno najpopularnija platforma za orkestraciju kontejnera, koja nudi rješenje za automatizirano implementiranje, skaliranje i upravljanje kontejneriziranim aplikacijama. Ovaj članak će pružiti praktičan vodič za početnike i srednje programere, pomažući vam da brzo ovladate osnovnim konceptima i praktičnim operacijama Kubernetes-a.
Što je Kubernetes?
Kubernetes (obično skraćeno kao K8s) je otvorena platforma za automatizaciju implementacije, skaliranja i upravljanja kontejneriziranim aplikacijama. Razvijen je od strane Google-a i doniran Cloud Native Computing Foundation (CNCF). Glavni cilj Kubernetes-a je pojednostaviti upravljanje životnim ciklusom aplikacija i osigurati visoku dostupnost sustava i automatizirano upravljanje.
Ključne komponente Kubernetes-a
1. Pod
Pod je najmanja jedinica implementacije u Kubernetes-u, koja može sadržavati jedan ili više kontejnera. Svaki Pod dijeli mrežu i pohranu, što ga čini pogodnim za pokretanje usluga koje su usko povezane.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment se koristi za upravljanje životnim ciklusom Pod-a, osiguravajući da određeni broj Pod-ova bude u aktivnom stanju, a također omogućava kontrolu verzija i ažuriranja.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx
3. Service
Service pruža stabilan pristup, omogućujući drugim Pod-ovima ili vanjskim korisnicima pristup aktivnim Pod-ovima.
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Prednosti Kubernetes-a
- Automatizirano upravljanje: Kubernetes može automatski implementirati, skalirati i upravljati kontejnerskim aplikacijama, smanjujući ručne operacije i smanjujući vjerojatnost grešaka.
- Visoka dostupnost: Kroz ReplicaSets, Kubernetes osigurava da postoji dovoljan broj instanci Pod-a u radu; ako neka instanca ne uspije, sustav će automatski ponovno pokrenuti ili zamijeniti tu instancu.
- Uravnoteženje opterećenja: Kubernetes ima ugrađenu funkcionalnost uravnoteženja opterećenja, koja može rasporediti promet za usluge, osiguravajući učinkovitu upotrebu resursa.
Kako brzo započeti s Kubernetes-om
1. Priprema okruženja
Prvo, trebate postaviti Kubernetes okruženje. To se može učiniti na više načina, kao što je korištenje Minikube za lokalno testiranje ili postavljanje klastera na pružateljima usluga u oblaku (kao što su Google Kubernetes Engine, AWS EKS, Azure AKS).
Instalacija Kubernetes-a pomoću Minikube-a
- Instalirajte Minikube i kubectl
# Instalirajte Minikube (za detaljne upute pogledajte službenu dokumentaciju Minikube-a)
brew install minikube
# Instalirajte kubectl
brew install kubectl
- Pokrenite Minikube
minikube start
2. Implementacija prve aplikacije
Uzmimo Nginx kao primjer, možemo implementirati Nginx definirajući Deployment i Service.
# Kreirajte deployment.yaml datoteku
cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
EOF
# Primijenite deployment
kubectl apply -f deployment.yaml
# Kreirajte service.yaml datoteku
cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
EOF
# Primijenite service
kubectl apply -f service.yaml
3. Pristup aplikaciji
Svaki put kada kreirate NodePort tip usluge, Kubernetes će mu dodijeliti port. Možete dobiti adresu za pristup koristeći sljedeću naredbu:
minikube service nginx-service --url
Koristite preglednik za pristup URL-u koji se ispisuje, i vidjet ćete Nginx-ovu stranicu dobrodošlice.
Uobičajene greške i debagiranje
Tijekom korištenja Kubernetes-a, mogli biste naići na neke uobičajene probleme, kao što je stanje Pod-a CrashLoopBackOff. Ovo nije greška, već sigurnosni mehanizam; Kubernetes neće beskonačno ponovno pokretati Pod nakon što se sruši, već će povećati kašnjenje između svakog ponovnog pokretanja kako bi izbjegao kaos u sustavu.
Možete koristiti sljedeću naredbu za pregled logova Pod-a, što može pomoći u debagiranju:
kubectl logs
Zaključak
Kubernetes je moćan alat za upravljanje kontejnerima; ovladavanjem njegovim osnovnim konceptima i uobičajenim naredbama, moći ćete učinkovitije upravljati i implementirati aplikacije u oblaku. Kako se tehnologije oblaka i kontejnera šire, učenje Kubernetes-a otvorit će nove prilike za vaš profesionalni razvoj. Nadamo se da će vam ovaj vodič pomoći i poslužiti kao referenca na vašem putu u učenju Kubernetes-a.





