Files
school-dev-k8s/practice/10.programming-languages-in-kubernetes
Marsel Ibraev f44beb51a9 Add basic info
2021-09-24 11:51:02 +03:00
..
2021-09-24 11:51:02 +03:00

Особенности ЯП в Kubernetes

Java

1. Проверяем как видны лимиты на память в поде

Для этого выполним команду:

kubectl run --image centos test -- free -h

Проверим логи, для чего выполним команду:

kubectl logs test

Результат будет примерно следующим:

              total        used        free      shared  buff/cache   available
Mem:          3.9Gi       1.8Gi       303Mi       3.0Mi       1.7Gi       1.8Gi
Swap:            0B          0B          0B

Обратите внимание, что в поде видна вся память, доступная на ноде. Что логично, ведь мы не указывали никаких лимитов при создании пода.

Теперь попробуем запустить тот же под с лимитами по памяти. Сначала удаляем старый под:

kubectl delete po test

После завершения предыдущей операции создаем новый, указывая лимит в 128Mi памяти:

kubectl run --limits="memory=128Mi" --image centos test -- free -h

Проверим логи, для чего выполним команду:

kubectl logs test

И обнаружим результат эквивалентный предыдущему:

              total        used        free      shared  buff/cache   available
Mem:          3.9Gi       1.8Gi       303Mi       3.0Mi       1.7Gi       1.8Gi
Swap:            0B          0B          0B

Тоже самое касается и CPU. Можно проверить с помощью указания лимита на поде --limit="cpu=100m" и выполнения команды lscpu

Удалим за собой тестовый под:

kubectl delete po test

Интерпретируемые языки

1. Тестим автоопределение CPU

Запускаем под с Nginx. Для этого выполним команду:

kubectl run --image nginx:1.15 --limits="cpu=100m" test

Заходим в контейнер:

kubectl exec -t -i test bash

Внутри контейнера ставим утилиту ps:

apt-get update -y && apt-get install -y procps

Проверяем конфигурацию Nginx:

cat /etc/nginx/nginx.conf

По умолчанию выставлен worker_processes 1

Видим что запущен один воркер:

ps aux | grep nginx

Правим конфиг Nginx на автоопределение воркеров:

sed -i 's/worker_processes  1;/worker_processes  auto;/g' /etc/nginx/nginx.conf

Релоадим Nginx:

nginx -s reload

Проверяем количество запущенных воркеров:

ps aux | grep nginx

Обратите внимание, что несмотря на выставленный лимит для пода в 100m CPU, Nginx запустил воркеров по количеству ядер на хосте

Удалим за собой под:

kubectl delete po test