Kubernetes pradžios vadovas: kaip efektyviai valdyti konteinerizuotas programas
Kubernetes pradžios vadovas: kaip efektyviai valdyti konteinerizuotas programas
Kubernetes tapo populiariausia konteinerių orkestravimo platforma, siūlančia automatizuotą sprendimą konteinerizuotų programų diegimui, plėtrai ir valdymui. Šis straipsnis suteiks pradedantiesiems ir vidutinio lygio kūrėjams praktišką pradžios vadovą, padedantį greitai įsisavinti Kubernetes pagrindines sąvokas ir praktinį naudojimą.
Kas yra Kubernetes?
Kubernetes (dažnai sutrumpinamas kaip K8s) yra atvirojo kodo platforma, skirta automatizuoti konteinerizuotų programų diegimą, plėtrą ir valdymą. Ją sukūrė Google ir perdavė Cloud Native Computing Foundation (CNCF). Pagrindinis Kubernetes tikslas yra supaprastinti programų gyvavimo ciklo valdymą ir užtikrinti sistemos aukštą prieinamumą bei automatizuotą valdymą.
Kubernetes pagrindiniai komponentai
1. Pod
Pod yra mažiausias diegimo vienetas Kubernetes, galintis apimti vieną ar daugiau konteinerių. Kiekvienas Pod dalijasi tinklu ir saugykla, todėl tinka vykdyti glaudžiai susijusias paslaugas.
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app-container
image: nginx
2. Deployment
Deployment naudojamas valdyti Pod gyvavimo ciklą, užtikrinant, kad nurodytas Pod skaičius būtų veikimo būsenoje, ir leidžia atlikti versijų valdymą bei atnaujinimus.
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 suteikia stabilų prieigos tašką, leidžiantį kitiems Pod arba išoriniams vartotojams pasiekti veikiančius Pod.
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 80
Kubernetes privalumai
- Automatizuotas valdymas: Kubernetes gali automatiškai diegti, plėsti ir valdyti konteinerių programas, sumažindamas rankinių operacijų skaičių ir sumažindamas klaidų tikimybę.
- Aukšta prieinamumas: Naudodamas ReplicaSets, Kubernetes užtikrina, kad pakankamai Pod egzempliorių būtų veikimo būsenoje, o jei kuris nors egzempliorius žlunga, sistema automatiškai jį perkrauna arba pakeičia.
- Krovinių balansavimas: Kubernetes turi įmontuotą krovinių balansavimo funkciją, galinčią paskirstyti srautą paslaugoms, užtikrinant efektyvų išteklių naudojimą.
Kaip greitai pradėti naudotis Kubernetes
1. Aplinkos paruošimas
Pirmiausia turite sukurti Kubernetes aplinką. Tai galima padaryti įvairiais būdais, pavyzdžiui, naudojant Minikube vietiniams testams arba sukuriant klasterį debesų paslaugų teikėjų (pvz., Google Kubernetes Engine, AWS EKS, Azure AKS) platformose.
Naudojant Minikube įdiekite Kubernetes
- Įdiekite Minikube ir kubectl
# Įdiekite Minikube (konkrečias diegimo instrukcijas rasite Minikube oficialiame dokumente)
brew install minikube
# Įdiekite kubectl
brew install kubectl
- Paleiskite Minikube
minikube start
2. Pirmosios programos diegimas
Pavyzdžiui, naudojant Nginx, galime diegti Nginx apibrėždami Deployment ir Service.
# Sukurkite deployment.yaml failą
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
# Taikykite deployment
kubectl apply -f deployment.yaml
# Sukurkite service.yaml failą
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
# Taikykite service
kubectl apply -f service.yaml
3. Pasiekite programą
Kiekvieną kartą, kai sukuriate NodePort tipo Service, Kubernetes jam priskiria prievadą. Galite gauti prieigos adresą naudodami šią komandą:
minikube service nginx-service --url
Naudokite naršyklę, kad pasiektumėte atspausdintą URL, ir pamatysite Nginx sveikinimo puslapį.
Dažniausios klaidos ir derinimas
Naudodami Kubernetes galite susidurti su kai kuriomis dažnomis problemomis, pavyzdžiui, kai Pod būsena yra CrashLoopBackOff. Tai nėra klaida, o saugos mechanizmas, Kubernetes po Pod žlugimo neperkrauna jo be galo, o tarp kiekvieno perkrovimo didina delsą, kad išvengtų sistemos chaoso.
Galite naudoti šią komandą, kad peržiūrėtumėte Pod žurnalus, padedančius derinti:
kubectl logs
Išvada
Kubernetes yra galingas konteinerių valdymo įrankis, perpratus jo pagrindines sąvokas ir dažniausiai naudojamas komandas, galėsite efektyviau valdyti ir diegti debesų programas. Augant debesų kompiuterijai ir konteinerių technologijoms, Kubernetes mokymasis atvers naujas galimybes jūsų karjeros plėtrai. Tikimės, kad šis vadovas padės jums mokantis Kubernetes.





