Kubernetes Úvodný sprievodca: Ako efektívne spravovať kontajnerizované aplikácie
Kubernetes Úvodný sprievodca: Ako efektívne spravovať kontajnerizované aplikácie
Kubernetes sa stal aktuálne najpopulárnejšou platformou na orchestráciu kontajnerov, poskytuje riešenie na automatizované nasadzovanie, škálovanie a správu kontajnerizovaných aplikácií. Tento článok poskytne praktického sprievodcu pre začiatočníkov a stredne pokročilých vývojárov, ktorý vám pomôže rýchlo ovládnuť základné pojmy a praktické operácie Kubernetes.
Čo je Kubernetes?
Kubernetes (zvyčajne skrátené ako K8s) je open-source platforma na automatizáciu nasadzovania, škálovania a správy kontajnerizovaných aplikácií. Vyvinul ho Google a daroval ho Cloud Native Computing Foundation (CNCF). Hlavným cieľom Kubernetes je zjednodušiť správu životného cyklu aplikácií a zabezpečiť vysokú dostupnosť a automatizovanú správu systému.
Hlavné komponenty Kubernetes
1. Pod
Pod je najmenšou jednotkou nasadenia v Kubernetes, môže obsahovať jeden alebo viac kontajnerov. Každý Pod zdieľa sieť a úložisko, je vhodný na spúšťanie úzko prepojených služieb.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment slúži na správu životného cyklu Pod, zabezpečuje, aby bol v prevádzke určený počet Pod a umožňuje verzionovanie a aktualizácie.
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 poskytuje stabilný prístupový bod, ktorý umožňuje iným Podom alebo externým používateľom pristupovať k bežiacim Podom.
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Výhody Kubernetes
- Automatizovaná správa: Kubernetes dokáže automaticky nasadzovať, škálovať a spravovať kontajnerové aplikácie, čím znižuje manuálne operácie a znižuje pravdepodobnosť chýb.
- Vysoká dostupnosť: Prostredníctvom ReplicaSets Kubernetes zabezpečuje, že je dostatočný počet inštancií Pod v prevádzke, ak niektorá inštancia zlyhá, systém ju automaticky reštartuje alebo nahradí.
- Vyváženie záťaže: Kubernetes má zabudovanú funkciu vyváženia záťaže, ktorá môže prerozdeliť prenos pre služby a zabezpečiť efektívne využitie zdrojov.
Ako rýchlo začať s Kubernetes
1. Príprava prostredia
Najprv potrebujete nastaviť prostredie Kubernetes. To sa dá dosiahnuť rôznymi spôsobmi, napríklad pomocou Minikube na miestne testovanie alebo vytvorením klastru na cloudových poskytovateľoch (ako Google Kubernetes Engine, AWS EKS, Azure AKS).
Inštalácia Kubernetes pomocou Minikube
- Inštalácia Minikube a kubectl
# Inštalácia Minikube (konkrétny spôsob inštalácie nájdete v oficiálnej dokumentácii Minikube)
brew install minikube
# Inštalácia kubectl
brew install kubectl
- Spustenie Minikube
minikube start
2. Nasadenie prvej aplikácie
Ako príklad použijeme Nginx, môžeme ho nasadiť definovaním Deployment a Service pre Nginx.
# Vytvorenie súboru deployment.yaml
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
# Aplikovanie deploymentu
kubectl apply -f deployment.yaml
# Vytvorenie súboru service.yaml
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
# Aplikovanie služby
kubectl apply -f service.yaml
3. Prístup k aplikácii
Kedykoľvek vytvoríte službu typu NodePort, Kubernetes jej priradí port. Môžete získať prístupovú adresu pomocou nasledujúceho príkazu:
minikube service nginx-service --url
Použite prehliadač na prístup k vytlačenej URL adrese, aby ste videli uvítaciu stránku Nginx.
Bežné chyby a ladenie
Počas používania Kubernetes sa môžete stretnúť s niektorými bežnými problémami, ako je stav Pod CrashLoopBackOff. To nie je chyba, ale bezpečnostný mechanizmus, Kubernetes nebude nekonečne reštartovať Pod po jeho zlyhaní, ale medzi každým reštartom zvýši oneskorenie, aby sa predišlo chaosu v systéme.
Môžete použiť nasledujúci príkaz na zobrazenie logov Pod, čo pomôže pri ladení:
kubectl logs
Záver
Kubernetes je mocný nástroj na správu kontajnerov, ovládaním jeho základných pojmov a bežných príkazov budete schopní efektívnejšie spravovať a nasadzovať cloudové aplikácie. S rastúcou popularitou cloud computingu a kontajnerových technológií, učenie sa Kubernetes otvorí nové príležitosti pre váš profesionálny rozvoj. Dúfame, že tento sprievodca vám poskytne pomoc a referenciu na vašej ceste učenia sa Kubernetes.





