Топтағы түйіндерді резервтеу
Кластерде ресурстар таусылған кезде автоматты масштабтау агенті (Cluster Autoscaler) жаңа торап жасап, оны кластерге қосады. Бұл 4–7 минутты алады, осы уақыт ішінде қолданбаңыз трафикке шамадан тыс жүктелуі мүмкін.
Масштабтау уақытын қысқарту үшін ресурстарды алдын ала бөлуді (overprovisioning) баптаңыз. Бұл жоғары басымдықтағы тапсырмаларды күту кезінде тораптарда ресурстарды резервтеуге мүмкіндік береді.
Төменде кластер конфигурациясына ресурстарды алдын ала бөлу баптауын қалай қосуға болатыны көрсетіледі. Бұл мысалда баптау бөлек файлда сипатталып, kubectl көмегімен қолданылады.
-
Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.
-
Егер бұл әлі жасалмаса,
kubectlутилитасын орнатып, баптаңыз. -
kubectlкөмегімен кластерге қосылыңыз. -
Масштабталатын түйіннің CPU және RAM деректерін дайындаңыз:
-
Кластерге қосылу сессиясы ашылған терминалда мына пәрменді орындаңыз:
kubectl get nodes -o wideЖауапта кластер түйіндерінің тізімі қайтарылады. worker-түйіннің атауын сақтап қойыңыз.
-
worker-түйіннің толық сипаттамасын алыңыз. Пәрменді орындаңыз:
kubectl describe node <ИМЯ_WORKER-УЗЛА>Жауапта түйіннің толық сипаттамасы қайтарылады.
Allocatableпараметріненcpuжәнеmemoryмәндерін табыңыз. Осы мәндерді сақтап қойыңыз. Бұл мысалдаcpu: 940mжәнеmemory: 1454740Kiмәндері қолданылады.
-
-
Компьютеріңізде
placeholder.yamlфайлын жасаңыз. -
Оған төмендегі мазмұнды қосып, сақтаңыз:
apiVersion: scheduling.k8s.io/v1kind: PriorityClassmetadata:name: overprovisioningvalue: -10globalDefault: falsedescription: "Priority class used by overprovisioning."---apiVersion: apps/v1kind: Deploymentmetadata:name: overprovisioningnamespace: defaultspec:replicas: 1selector:matchLabels:run: overprovisioningtemplate:metadata:labels:run: overprovisioningspec:priorityClassName: overprovisioningterminationGracePeriodSeconds: 0containers:- name: reserve-resourcesimage: registry.k8s.io/pause:3.9resources:requests:cpu: 940mmemory: 1454740Kilimits:cpu: 940mmemory: 1454740KiМұнда:
PriorityClass: подтардың басымдығын анықтайды.value: -10қосылатын подқа төмен басымдық тағайындайды. Жоғарырақ басымдықтағы подтар қолжетімді болған кезде, олар түйіндерге орналастырылып, төмен басымдықтағы подтарды ығыстырады.Deployment: резервтік ресурстар жасайтын подтардың жайылуын қамтамасыз етеді.cpu: осы параметрдеrequestsжәнеlimitsблоктары үшін бұрын алынған worker-түйін үлгісінің бірдей CPU мәндерін көрсетіңіз. Бұл мысалда940m.memory: осы параметрдеrequestsжәнеlimitsблоктары үшін бұрын алынған worker-түйін үлгісінің бірдей RAM мәндерін көрсетіңіз. Бұл мысалда1454740Ki.
-
Терминалды ашып,
placeholder.yamlфайлын сақтаған директорияға өтіңіз. -
Пәрменді орындаңыз:
kubectl apply -f placeholder.yamlЕгер пәрмен сәтті орындалса, жауапта
PriorityClassжәнеDeploymentжасалғаны туралы растау қайтарылады.
- VK Cloud жеке кабинетіне өтіңіз.
- Қажетті кластер орналасқан жобаны таңдаңыз.
- Контейнерлер → Kubernetes кластерлері бөліміне өтіңіз.
- Қажетті кластердің атауын басыңыз.
- Кластер ресурстары қойындысына өтіңіз.
- Подтар тізімін ашып, тізімде
overprovisioningподыRunningкүйімен қосылғанына көз жеткізіңіз.
Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер сіз кластерді тестілеу мақсатында жасап, ол енді қажет болмаса:
- тоқтатыңыз оны кейінірек пайдалану үшін;
- жойыңыз оны біржола.