Kufijtë e burimeve në Kubernetes
Nëse nyja ka mjaft burim në dispozicion, është e mundur që një kontejner të përdorë më shumë burime. Ne mund të specifikojmë se sa nga çdo burim i nevojitet një Kontainer . Burimet e zakonshme për të specifikuar janë CPU dhe memoria Kur përcaktojmë kërkesën për burim për Kontejnerët në një Pod, planifikuesi vendos se në cilën nyje të vendosë Pod-in. Kur ne specifikojmë një kufi burimi për një kontejner, kubelet kujdeset për kufizimet në mënyrë që kontejneri që funksionon të mos lejohet të përdorë më shumë nga ai kufi që kemi vendosur.
Për shembull, nëse vendosim një kërkesë memorie prej 100 MiB për një kontejner, atëherë kontejneri mund të përpiqet të përdorë më shumë RAM. Por nëse caktojmë një kufi memorie prej 4GiB për atë kontejner, koha e funksionimit parandalon që kontejneri të përdorë më shumë se kufiri i burimit të konfiguruar.
CPU dhe memoria referohen si burime llogaritëse.
Çdo kontejner i një Pod mund të specifikojë një ose më shumë nga sa vijon:
- kufizimet në CPU
- kufizimet në kujtesë
- kufijtë në faqet e mëdha-
- kërkesat për CPU
- kërkesat për memorie
- kërkesat për faqe të mëdha-
Për të ditur më shumë rreth burimeve në Kubernetes, klikoni këtu për të vizituar dokumentacionin zyrtar të Kubernetes.
Në këtë artikull, ne do të shohim një shembull të një kufiri burimi dhe një kërkesë për CPU dhe memorie. Ne gjithashtu do të përdorim Metric Server. Serveri Metrics është një grumbullues i të dhënave të përdorimit të burimeve në grup dhe ai nuk vendoset si parazgjedhje në grup. Ne do të përdorim këtë Server Metrik për të parë konsumin e burimeve sipas grupeve.
Parakushtet
- Klusteri i Kubernetes me të paktën 1 nyje punëtore.
Nëse doni të mësoni të krijoni një grupim Kubernetes, klikoni këtu. Ky udhëzues do t'ju ndihmojë të krijoni një grup Kubernetes me 1 Master dhe 2 Nyje në Instancat AWS Ubuntu 18.04 EC2.
Çfarë do të bëjmë?
- Kufijtë e burimeve
Kufijtë e burimeve
Përpara se të vazhdojmë dhe të krijojmë pods me kërkesat e burimeve të specifikuara, le të instalojmë Serverin Metric.
Klononi depon e Serverit Metric Github duke përdorur komandën e mëposhtme dhe instaloni atë.
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git
cd kubernetes-metrics-server/
Krijo Server Metrik duke përdorur skedarët e objektit.
kubectl create -f .
Prisni pak kohë për të nisur Serverin Metric. Pas ca kohësh, mund të ekzekutoni komandën e mëposhtme për të monitoruar nyjet e grupimeve.
kubectl top node
Tani, krijoni një skedar përkufizimi të pod me përmbajtjen e mëposhtme në të i cili përmban kërkesën dhe kufirin e memories.
vim my-pod-with-memory.yml
apiVersion: v1
kind: Pod
metadata:
name: my-pod-memory-demo
spec:
containers:
- name: my-container-memory-demo
image: polinux/stress
resources:
limits:
memory: "50Mi"
requests:
memory: "20Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "30M", "--vm-hang", "1"]
Ju mund të gjeni pronën \burime\ në të cilën ne kemi specifikuar kufirin e memories si 50 Mi dhe kërkesën e memories si 20 Mi
Kontrolloni podet ekzistuese me hapësirën e emrave të paracaktuar në grup.
kubectl get pods #Get pods from the default namespace
Krijoni një pod duke përdorur përkufizimin e pod të krijuar në hapin e mësipërm.
kubectl create -f my-pod-with-memory.yml #Create a pod
kubectl get pods
Tani, nëse merrni detaje të Pod-it, mund të shihni se Pod po kërkon memorie 20Mi dhe ka një kufi prej 50Mi memorie.
kubectl get pods
kubectl describe pod my-pod-memory-demo #Describe the pod
Përdorimi i pod mund të kontrollohet duke përdorur komandën e mëposhtme.
kubectl top pods #Check resource consumption by the pod
Tani, krijoni një përkufizim pod me kërkesën dhe kufirin e CPU.
vim my-pod-with-cpu.yml
apiVersion: v1
kind: Pod
metadata:
name: my-pod-cpu-demo
spec:
containers:
- name: my-container-cpu-demo image: vish/stress
resources:
limits: cpu: "1"
requests:
cpu: "0.5"
args:
- -cpus
- "2"
Në skedarin e mësipërm, mund të shihni se përkufizimi ka një veti \burim\ me kërkesë për CPU si 0,5 dhe kufi si 1. Gjithashtu vini re se ne po kalojmë 2 CPU si kërkesë që është më shumë se kufiri.
Tani, le të krijojmë një pod me kërkesë CPU dhe kufi duke përdorur komandën e mëposhtme.
kubectl apply -f my-pod-with-cpu.yml #Create a pod
kubectl get pods
Merrni detaje të podit që krijuam.
kubectl get pods
kubectl describe pod my-pod-cpu-demo
Ju mund të shihni se Pod ka kërkuar për 0,5 ose 500 m CPU me një limit prej 1 CPU
Për të kontrolluar përdorimin e CPU-së, përdorni komandën e mëposhtme.
kubectl top pod #Check resource consumption by the pod
Në pamjen e mësipërme mund të shihni se edhe pasi të kaloni 2 CPU në përkufizimin e pod si argument, ai nuk mund të konsumojë më shumë se kufiri, pra 1 CPU. Këtu pod \my-pod-cpu-demo\ mund të konsumojë 999m CPU që është e barabartë me 1 CPU dhe nuk mund të rrisë konsumin e tij.
konkluzioni
Në këtë artikull, ne pamë hapat për të mundësuar monitorimin në grup duke përdorur Serverin Metric. Ne pamë se si një pod mund të kërkojë CPU dhe memorie dhe të konsumojë burime jo përtej kufirit të specifikuar.