mirror of
https://github.com/slurm-personal/school-dev-k8s.git
synced 2026-06-27 13:50:24 +00:00
Change some practice
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# Особенности ЯП в Kubernetes
|
||||
|
||||
## Java
|
||||
|
||||
### 1. Проверяем как видны лимиты на память в поде
|
||||
|
||||
Для этого выполним команду:
|
||||
|
||||
```bash
|
||||
kubectl run --image centos test -- free -h
|
||||
```
|
||||
|
||||
Проверим логи, для чего выполним команду:
|
||||
|
||||
```bash
|
||||
kubectl logs test
|
||||
```
|
||||
|
||||
Результат будет примерно следующим:
|
||||
|
||||
```bash
|
||||
total used free shared buff/cache available
|
||||
Mem: 3.9Gi 1.8Gi 303Mi 3.0Mi 1.7Gi 1.8Gi
|
||||
Swap: 0B 0B 0B
|
||||
```
|
||||
|
||||
Обратите внимание, что в поде видна вся память, доступная на ноде.
|
||||
Что логично, ведь мы не указывали никаких лимитов при создании пода.
|
||||
|
||||
Теперь попробуем запустить тот же под с лимитами по памяти.
|
||||
Сначала удаляем старый под:
|
||||
|
||||
```bash
|
||||
kubectl delete po test
|
||||
```
|
||||
|
||||
После завершения предыдущей операции создаем новый, указывая лимит в 128Mi памяти:
|
||||
|
||||
```bash
|
||||
kubectl run --limits="memory=128Mi" --image centos test -- free -h
|
||||
```
|
||||
|
||||
Проверим логи, для чего выполним команду:
|
||||
|
||||
```bash
|
||||
kubectl logs test
|
||||
```
|
||||
|
||||
И обнаружим результат эквивалентный предыдущему:
|
||||
|
||||
```bash
|
||||
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`
|
||||
|
||||
Удалим за собой тестовый под:
|
||||
|
||||
```bash
|
||||
kubectl delete po test
|
||||
```
|
||||
|
||||
## Интерпретируемые языки
|
||||
|
||||
### 1. Тестим автоопределение CPU
|
||||
|
||||
Запускаем под с Nginx. Для этого выполним команду:
|
||||
|
||||
```bash
|
||||
kubectl run --image nginx:1.15 --limits="cpu=100m" test
|
||||
```
|
||||
|
||||
Заходим в контейнер:
|
||||
|
||||
```bash
|
||||
kubectl exec -t -i test bash
|
||||
```
|
||||
|
||||
Внутри контейнера ставим утилиту ps:
|
||||
|
||||
```bash
|
||||
apt-get update -y && apt-get install -y procps
|
||||
```
|
||||
|
||||
Проверяем конфигурацию Nginx:
|
||||
|
||||
```bash
|
||||
cat /etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
По умолчанию выставлен worker_processes 1
|
||||
|
||||
Видим что запущен один воркер:
|
||||
|
||||
```bash
|
||||
ps aux | grep nginx
|
||||
```
|
||||
|
||||
Правим конфиг Nginx на автоопределение воркеров:
|
||||
|
||||
```bash
|
||||
sed -i 's/worker_processes 1;/worker_processes auto;/g' /etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
Релоадим Nginx:
|
||||
|
||||
```bash
|
||||
nginx -s reload
|
||||
```
|
||||
|
||||
Проверяем количество запущенных воркеров:
|
||||
|
||||
```bash
|
||||
ps aux | grep nginx
|
||||
```
|
||||
|
||||
Обратите внимание, что несмотря на выставленный лимит для пода
|
||||
в 100m CPU, Nginx запустил воркеров по количеству ядер на хосте
|
||||
|
||||
Удалим за собой под:
|
||||
|
||||
```bash
|
||||
kubectl delete po test
|
||||
```
|
||||
Reference in New Issue
Block a user