Ресурстарды пайдалануды шектеу
Kubernetes жұмыс жүктемесіне (workload) жататын кез келген ресурс жұмыс барысында белгілі бір контейнерлер санын жасайды және іске қосады. Бұл контейнерлерде кластердің worker-түйіндерінің есептеу ресурстары көлеміне қойылатын талаптар болады. Kubernetes жоспарлағышы (scheduler) оны ең қолайлы worker-түйіндерге орналастыру үшін жұмыс жүктемесінің есептеу ресурстарына қойылатын талаптарын ескереді.
Кластерде іске қосылатын кез келген жұмыс жүктемесі үшін ресурстарды тұтынуды шектеу керек. Сонда жұмыс жүктемесінің контейнерлері worker-түйіннің барлық қолжетімді ресурстарын тауысып тастай алмайды (мысалы, жадтың ағып кетуі болса).
Cloud Containers сервисінің Kubernetes кластерлерінде алдын ала бапталған лимиттер бар болса да, ресурстарды қолмен шектеу жақсы тәжірибе болып саналады. Мысалы, алдын ала орнатылған шектеулер ресурсты көп қажет ететін жұмыс жүктемесіне сәйкес келмеуі мүмкін. Сондай-ақ ресурстарды (CPU және RAM) автоматты түрде баптау үшін Vertical Pod Autoscaler аддонын пайдалана аласыз. Ол қажетті жүктемеге байланысты подтың есептеу ресурстары мен лимиттеріне қойылатын талаптарды анықтауға көмектеседі.
Kubernetes-тегі контейнер үшін мыналарды орнатуға болады:
-
resources.requests: қалаулы есептеу ресурстары.Егер worker-түйін қосымша ресурстар бөлуге дайын болса, контейнер сұралғаннан көбірек есептеу ресурстарын пайдалана алады. Контейнерге бөлінетін ресурстардың төменгі шегі әрқашан
resources.requestsішінде көрсетілген мәндермен шектеледі.Мысалы, контейнер үшін
memoryқалаулы жедел жад көлемі256M(256 МБ) болып орнатылсын. Егер бұл контейнер 8 ГБ жедел жады бар түйінде орналасқан подта болса, онда түйінде бос жад бар болса, контейнер көбірек жедел жадты пайдалануға тырыса алады. -
resources.limits: есептеу ресурстарына қойылатын шектеу.Контейнерге осы параметрде көрсетілгеннен артық есептеу ресурстарын пайдалануға рұқсат етілмейді.
requests және limits параметрлерімен келесі есептеу ресурстарын шектеуге болады:
-
cpu: vCPU саны.Бүтін ядролармен де (мысалы, 3 vCPU үшін —
resources.requests.cpu: 3), сондай-ақmжұрнағын пайдаланып бір ядроның жүзден бір үлестерімен де беріледі (мысалы, 0,25 vCPU үшін —resources.requests.cpu: 250m). -
memory: жедел жад көлемі.Көлем байтпен беріледі, бірақ ыңғайлы болу үшін мыналарды пайдалануға болады:
- Ондық жұрнақтар:
k,M,G,T,P,E. Мысалы,1k1000 байтқа тең болады. - Екілік дәрежеге сәйкес келетін жұрнақтар:
Ki,Mi,Gi,Ti,Pi,Ei. Мысалы,1Ki1024 байтқа тең болады.
- Ондық жұрнақтар: