diff --git a/interview.md b/interview.md
index d297299..c00153f 100644
--- a/interview.md
+++ b/interview.md
@@ -7,11 +7,10 @@
**Что такое kvm(не гипервизор)? Как можно его использовать?**
-
- Ответ
-
-- Ответ
+Ответ
+
+
KVM (или kvm over ip) — устройство, позволяющее передавать видеосигнал и ввод с мыши/клавиатуры по сети с использованием IP-протокола от вашего сервера. При помощи KVM вы можете перезагрузить сервер, получить доступ в BIOS сервера и к другим функциям, которые невозможно выполнить на сервере через терминал. То есть он обособлен от операционной системы.
@@ -27,8 +26,10 @@
---
**Что такое IPMI? Какие подсистемы он в себя включает?**
+
+Ответ
+
-- Ответ
IPMI (Intelligent Platform Management Interface) – это интерфейс для удаленного мониторинга и управления физическим состоянием сервера.
@@ -64,12 +65,14 @@
[https://selectel.ru/blog/ipmi-obzor-texnologii/](https://selectel.ru/blog/ipmi-obzor-texnologii/)
-
+
---
**Какие преимущества предоставляет IPMI в сравнении с kvm?**
+
+Ответ
+
-- Ответ
Недостатки модуля IP-KVM в сравнении с IPMI
@@ -87,13 +90,16 @@
сейчас в наличии нет свободного оборудования);
- отсутствие возможности управлять питанием, монтировать образы и контролировать состояние датчиков сервера.
+
---
# Просмотр информации о железной составляющей сервера
**Модели процессора, количестве физических и логических ядер, поддерживаемых инструкциях, режиме работы?**
+
+Ответ
+
-- Ответ
- Модель процессора `proc/cpuinfo`
```python
@@ -148,7 +154,7 @@
```
- Видим, что на данной системе находится 12 физических ядер (6+6). Соответственно, нормальный показатель LA должен быть менее 12. Однако, на процессорах Intel используется технология [Hyper-Threading](http://www.intel.ru/content/www/ru/ru/architecture-and-technology/hyper-threading/hyper-threading-technology.html), которая делит одно физическое ядро на два логических.
+ Видим, что на данной системе находится 12 физических ядер (6+6). Соответственно, нормальный показатель LA должен быть менее 12. Однако, на процессорах Intel используется технология [Hyper-Threading](http://www.intel.ru/content/www/ru/ru/architecture-and-technology/hyper-threading/hyper-threading-technology.html), которая делит одно физическое ядро на два логических.
```
dmidecode -t processor | grep "Thread Count:"
@@ -250,17 +256,23 @@
```
+
+
---
**Типы и характеристиках устройств хранения данных?**
-
-- Ответа пока нет
+
+Ответа пока нет
+
+
---
-Т**екущих значениях датчиков напряжения, температуры, оборотов вентиляторов?**
+**Текущих значениях датчиков напряжения, температуры, оборотов вентиляторов?**
+
+Ответ, нужно дополнить
+
-- Ответ, нужно дополнить
Температура и всякие такие штуки можно смотреть в `sensors`
@@ -330,13 +342,16 @@
PWS Revision | 1.1
Current Sharing Control | Active - Active (80)
```
-
+
+
---
**Типе используемого сетевого адаптера и состоянии его интерфейсов?**
-
-- Ответ дополнить
+
+Ответ дополнить
+
+
```bash
storage13 : ~ [0] # lspci | grep net
@@ -406,8 +421,10 @@
---
**Подключённых USB и PCI устройствах?**
-
-- Ответ
+
+Ответ
+
+
PC
@@ -470,8 +487,10 @@
---
Что такое **POSIX**
-
-- Ответ
+
+Ответ
+
+
Это интерфейс портативных операционных систем.
@@ -486,8 +505,10 @@
**Что такое уровни выполнения**
-
-- Ответ
+
+Ответ
+
+
В Linux существует такое понятие как уровень выполнения (run level). Уровень выполнения обозначается числами от 0 до 6.
@@ -497,18 +518,18 @@
init (или telinit). Для этого программе в качестве аргумента передается
число, соответствующее уровню выполнения.
- - **0** — выполняются действия по выключению системы.
- - **1** — однопользовательский режим (single user mode).
+ - **0** — выполняются действия по выключению системы.
+ - **1** — однопользовательский режим (single user mode).
Предназначен для различных административных действий по восстановлению
системы. По своему смыслу аналогичен Safe Mode Windows, но полностью его не повторяет. На этом уровне выполнения система полностью
сконфигурирована, но не запущен ни один сервис, а из пользователей может работать только один root.
- - **2** — не используется, но сконфигурирован как уровень выполнения 3. В RedHat и SuSE Linux сконфигурирован как уровень
+ - **2** — не используется, но сконфигурирован как уровень выполнения 3. В RedHat и SuSE Linux сконфигурирован как уровень
выполнения 3, но без поддержки сетевых файловых систем. В Debian
используется как многопользовательский режим.
- - **3** — многопользовательский режим (multiuser mode). Нормальный режим работы сервера.
- - **4** — В Slackware Linux используется для графического входа в систему. В RedHat и SuSE Linux не сконфигурирован.
- - **5** — В RedHat и SuSE Linux используется для графического входа в систему. В Slackware Linux не сконфигурирован.
- - **6** — выполняются действия по перезагрузке системы.
+ - **3** — многопользовательский режим (multiuser mode). Нормальный режим работы сервера.
+ - **4** — В Slackware Linux используется для графического входа в систему. В RedHat и SuSE Linux не сконфигурирован.
+ - **5** — В RedHat и SuSE Linux используется для графического входа в систему. В Slackware Linux не сконфигурирован.
+ - **6** — выполняются действия по перезагрузке системы.
---
@@ -589,8 +610,10 @@
---
**Зачем нужна система инициализации? Какие системы инициализации используются в современных дистрибутивах? (2 - 5 штук) (init)**
-
-- Ответ
+
+Ответ
+
+
В операционной системе Linux и других системах семейства Unix после завершения загрузки ядра начинается инициализация Linux системы, сервисов и других компонентов. За это отвечает процесс инициализации, он запускается ядром сразу после завершения загрузки, имеет PID 1, и будет выполняться пока будет работать система.
@@ -616,8 +639,10 @@
**Что такое systemd и init ? В чем основное преимущество первого над вторым ?**
-
-- Ответ
+
+Ответ
+
+
В чём конкретно преимущества для меня:
@@ -634,8 +659,10 @@
**Как понять используется ли в системе systemd?**
-
-- Ответ
+
+Ответ
+
+
`/run/systemd/` говорит о наличии systemd в системе.
@@ -682,8 +709,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
**Как работает система разграничения доступа к
файлам в linux? Какие возможности она предоставляет?**
-
-- Ответ
+
+Ответ
+
+
[https://webistore.ru/administrirovaniye-unix/prava-dostupa-k-fajlam-i-direktoriyam-v-linux-chast-1/](https://webistore.ru/administrirovaniye-unix/prava-dostupa-k-fajlam-i-direktoriyam-v-linux-chast-1/)
@@ -699,18 +728,22 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Как посмотреть нагрузку на диски?**
-
-- Ответ
+
+Ответ
+
+
- Установить утилиту `sysstat`, проверить нагрузку на диски `iostat -xtc`.
+ Установить утилиту `sysstat`, проверить нагрузку на диски `iostat -xtc`.
1.
---
-**В чем разница между объявлением переменной `export VAR="VALUE"` и `VAR="VALUE"` в bash?**
-
-- Ответ
+**В чем разница между объявлением переменной `export VAR="VALUE"` и `VAR="VALUE"` в bash?**
+
+Ответ
+
+
При объявлении переменной через **export** - переменная будет доступна в любых других процессах.
@@ -719,18 +752,22 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
-**Что значит `$@` в bash?**
-
-- Ответ
+**Что значит `$@` в bash?**
+
+Ответ
+
+
- `$@` - все параметры переданные скрипту.
+ `$@` - все параметры переданные скрипту.
---
**Как выполнить фильтрацию вывода команды, чтобы на экран были выведены только ошибки (STDERR), истрорируя STDOUT?**
-
-- Ответ
+
+Ответ
+
+
```bash
cmd 2>&1 >/dev/null | grep pattern
@@ -740,10 +777,12 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Как посмотреть описание дискриптора? Как посмотреть время последней модификации файла?**
-
-- Ответ
+
+Ответ
+
+
- Посмотреть полную информацию по дискриптору возможно командой `stat `.
+ Посмотреть полную информацию по дискриптору возможно командой `stat `.
Время модификации:
@@ -753,8 +792,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Как работает sudo? Для чего она используется?**
-
-- Ответ
+
+Ответ
+
+
Команда sudo означает подменить пользователя и выполнить. Расшифровывается именно так - **s**ubstitute **u**ser and **do**
@@ -786,8 +827,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
**Что такое userspace, kernelspace? Чем они
отличаются?**
-
-- Ответ
+
+Ответ
+
+
Под **пользовательским** пространством понимается весь код операционной системы, который находится вне ядра.
@@ -802,7 +845,7 @@ Change: 2022-06-09 17:19:41.581240179 +0000
[https://habr.com/ru/company/otus/blog/565832/](https://habr.com/ru/company/otus/blog/565832/)
- Краткое определние
- - **Пользовательское пространство** представляющее собой набор местоположений, в которых выполняются обычные пользовательские процессы (т. е. все, кроме ядра). Роль ядра состоит в том, чтобы управлять приложениями, работающими в этом пространстве, от взаимодействия друг с другом и с машиной.
+ - **Пользовательское пространство** представляющее собой набор местоположений, в которых выполняются обычные пользовательские процессы (т. е. все, кроме ядра). Роль ядра состоит в том, чтобы управлять приложениями, работающими в этом пространстве, от взаимодействия друг с другом и с машиной.
- **Пространство ядра** , то есть место, где хранится и выполняется код ядра.
Пользовательское пространство имеет доступ к ограниченной памяти, ядро имеет всю память.
@@ -814,8 +857,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
**Что такое системные вызовы? Зачем они нужны и как они работают?
Какие системные вызовы знаешь (5-10)**
-
-- Ответ
+
+Ответ
+
+
**Системный вызов** — это то, посредством чего код приложения, выполняющегося в пользовательском режиме, запрашивает службу, предоставляемую кодом, который выполняется в режиме ядра.
@@ -882,8 +927,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Где можно найти информацию о конкретном системном вызове?**
-
-- Ответ
+
+Ответ
+
+
`man 2 `
@@ -897,8 +944,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Что делает команда kill?**
-
-- Ответ
+
+Ответ
+
+
Команда kill отправляет сигнал процессу
@@ -907,8 +956,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
**Текущая load average на сервере - 900, 900, 900. Сервер работает с незначительной потерей производительности.
Каким образом можно понять, является ли это нормальной ситуацией?**
-
-- Ответ
+
+Ответ
+
+
Я бы начал с того, что бы понял а что вообще вызывает проблему, и что на сервере важное.
@@ -919,8 +970,8 @@ Change: 2022-06-09 17:19:41.581240179 +0000
И допустим нужно писать данные или читать данные на что-то медленное. Система не тормозит, но из-за того, что процессы записи чтения на медленный девайс скопились - ЛА подросла. В этом случае будет высокая wa
При этом все остальные процессы отрабатывают быстро
- На параметр нагрузки LA влияет также и ожидание ввода-вывода (параметр *wa*
- в утилите *top*
+ На параметр нагрузки LA влияет также и ожидание ввода-вывода (параметр *wa*
+ в утилите *top*
) в дисков и задержка сети. Данные параметры могут не влиять на работу основных сервисов в системе, но учитываются при расчете общей нагрузки на систему.
@@ -929,8 +980,10 @@ Change: 2022-06-09 17:19:41.581240179 +0000
**Что такое процесс?
Что такое тред?
В чем заключаются их главные отличия?**
-
-- Ответ
+
+Ответ
+
+
Процесс - это исполняемая программа. Когда программист пишет программу и выполняет ее, эта программа становится процессом. Он выполняет задачи в соответствии с инструкциями программы.
@@ -967,41 +1020,43 @@ Change: 2022-06-09 17:19:41.581240179 +0000
---
**Где в linux хранится информация о процессах?**
-
-- Ответ
+
+Ответ
+
+
Директория `proc/PID`
Информация о процессах хранится в директориях /proc/N, где N — числовой идентификатор процесса. В этой директории содержатся различные псевдо-файлы, которые содержат информацию о самом процессе и связанном с ним окружении.
- **/proc/N/cmdline** — Содержимое командной строки, которой был запущен процесс.
+ **/proc/N/cmdline** — Содержимое командной строки, которой был запущен процесс.
- **/proc/N/environ** — Описание окружения, в котором работает процесс. Оно может быть полезно для просмотра содержимого окружения, если вам надо, например, посмотреть, была ли установлена переменная окружения перед запуском программы.
+ **/proc/N/environ** — Описание окружения, в котором работает процесс. Оно может быть полезно для просмотра содержимого окружения, если вам надо, например, посмотреть, была ли установлена переменная окружения перед запуском программы.
- **/proc/N/exe** — Символическая ссылка на выполнимый файл запущенной программы.
+ **/proc/N/exe** — Символическая ссылка на выполнимый файл запущенной программы.
- **/proc/N/limits** — Лимиты на использование системных ресурсов, актуальные для работающего процесса.
+ **/proc/N/limits** — Лимиты на использование системных ресурсов, актуальные для работающего процесса.
- **/proc/N/mounts** — Список смонтированных ресурсов, которые доступны процессу
+ **/proc/N/mounts** — Список смонтированных ресурсов, которые доступны процессу
- **/proc/N/status** — Статус работающей программы. Он включает в себя такую информацию как идентификатор родительского процесса, статус самого процесса, его название, его идентификатор, идентификатор пользователя и группы, группы, в которые входит владелец процесса, сколько потоков использует процесс, сколько памяти он использует и так далее.
+ **/proc/N/status** — Статус работающей программы. Он включает в себя такую информацию как идентификатор родительского процесса, статус самого процесса, его название, его идентификатор, идентификатор пользователя и группы, группы, в которые входит владелец процесса, сколько потоков использует процесс, сколько памяти он использует и так далее.
В этой же директории содержится несколько псевдо-директорий:
- **/proc/N/cwd** — Текущая директория для процесса. Представлена символической ссылкой на директорию. Если рабочая директория для процесса изменится, изменится и ссылка.
+ **/proc/N/cwd** — Текущая директория для процесса. Представлена символической ссылкой на директорию. Если рабочая директория для процесса изменится, изменится и ссылка.
- **/proc/N/fd** — Файловые дескрипторы, которые используются процессом. Для программы bash, например, там по умолчанию будут дескрипторы 0, 1, 2 и 255, указывающие на виртуальный терминал, в котором запущен процесс, например, /dev/pts/6.
+ **/proc/N/fd** — Файловые дескрипторы, которые используются процессом. Для программы bash, например, там по умолчанию будут дескрипторы 0, 1, 2 и 255, указывающие на виртуальный терминал, в котором запущен процесс, например, /dev/pts/6.
- **/proc/N/fdinfo** — Информация о файловых дескрипторах. Каждый файл в этой директории содержит поля pos (позиция курсора), flags (флаги, с которыми этот дескриптор был открыт) и mnt_id (идентификатор точки монтирования из списка, содержащегося в файле /proc/N/mountinfo)
+ **/proc/N/fdinfo** — Информация о файловых дескрипторах. Каждый файл в этой директории содержит поля pos (позиция курсора), flags (флаги, с которыми этот дескриптор был открыт) и mnt_id (идентификатор точки монтирования из списка, содержащегося в файле /proc/N/mountinfo)
- **/proc/N/root** — Символическая ссылка на директорию, которая для данного процесса является корневой
+ **/proc/N/root** — Символическая ссылка на директорию, которая для данного процесса является корневой
- **/proc/N/net** — Сетевые системные ресурсы и их параметры, действующие для конкретного процесса.
+ **/proc/N/net** — Сетевые системные ресурсы и их параметры, действующие для конкретного процесса.
---
-**Представлен вывод команды *top*. Что означает каждая запись в выводе?**
+**Представлен вывод команды *top*. Что означает каждая запись в выводе?**
```bash
top - 10:44:36 up 91 days, 19:29, 7 users, load average: 0,00, 0,02, 0,05
@@ -1010,8 +1065,10 @@ Tasks: 156 total, 1 running, 155 sleeping, 0 stopped, 0 zombie
KiB Mem : 12137392 total, 6227844 free, 1117728 used, 4791820 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
```
-
-- Ответ
+
+Ответ
+
+
top - утилита
@@ -1035,16 +1092,18 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
[Untitled](%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B0%D0%BC%202%200%2060c73919d6564d1e880f209921e7b84d/Untitled%20Database%20b98ce3f413754fcfbb17156565714ae4.csv)
- KiB Mem - количество оперативной памяти в кибибайтах (кратно 1024): *7106404 total* -- всего доступно оперативной памяти в системе, *306972 free* -- свободно оперативной памяти для использования, *3127144 used* -- использовано оперативной памяти, *3672288 buff/cache* -- буферизовано/закешировано оперативной памяти.
+ KiB Mem - количество оперативной памяти в кибибайтах (кратно 1024): *7106404 total* -- всего доступно оперативной памяти в системе, *306972 free* -- свободно оперативной памяти для использования, *3127144 used* -- использовано оперативной памяти, *3672288 buff/cache* -- буферизовано/закешировано оперативной памяти.
- *KiB Swap* - количество swap-памяти в кибибайтах (кратно 1024), которые выделено на диске: *8191996 total* - всего выделено swap-памяти, *8191996 free* - свободно swap-памяти *0 used* - использовано swap-памяти, *3270520 avail Mem* - доступно для использования swap-памяти.
+ *KiB Swap* - количество swap-памяти в кибибайтах (кратно 1024), которые выделено на диске: *8191996 total* - всего выделено swap-памяти, *8191996 free* - свободно swap-памяти *0 used* - использовано swap-памяти, *3270520 avail Mem* - доступно для использования swap-памяти.
---
**Что показывает статус процессов? Какие статусы используются в linux?**
-
-- Ответ
+
+Ответ
+
+
```bash
R - процесс исполнется, или ждет своей очереди на исполнение
@@ -1065,8 +1124,10 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
---
**Что такое зомби-процесс? Как можно создать такой процесс?**
-
-- Ответ
+
+Ответ
+
+
```bash
Z(zombie) - зомби это процесс, который закончил выполнение, но не передал родительскому процессу
@@ -1101,15 +1162,17 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
---
**Чем опасны зомби процессы, какие проблемы они могут создать?**
-
-- Ответ
+
+Ответ
+
+
- Зомби не занимают памяти (как [процессы-сироты](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D1%81%D0%B8%D1%80%D0%BE%D1%82%D0%B0)
+ Зомби не занимают памяти (как [процессы-сироты](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81-%D1%81%D0%B8%D1%80%D0%BE%D1%82%D0%B0)
), но блокируют записи в таблице процессов, размер которой ограничен для каждого пользователя и системы в целом.
- При достижении лимита записей все процессы пользователя, от имени которого выполняется создающий зомби родительский процесс, не будут способны создавать новые дочерние процессы. Кроме этого, пользователь, от имени которого выполняется родительский процесс, не сможет зайти на консоль (локальную или удалённую) или выполнить какие-либо команды на уже открытой консоли (потому что для этого командный интерпретатор *sh* должен создать новый процесс)
+ При достижении лимита записей все процессы пользователя, от имени которого выполняется создающий зомби родительский процесс, не будут способны создавать новые дочерние процессы. Кроме этого, пользователь, от имени которого выполняется родительский процесс, не сможет зайти на консоль (локальную или удалённую) или выполнить какие-либо команды на уже открытой консоли (потому что для этого командный интерпретатор *sh* должен создать новый процесс)
- Иногда, если родительский процесс выполняется от имени суперпользователя, для освобождения записей (перезапуска процесса) может потребоваться перезагрузка (причём зачастую — только аппаратным рестартом). Некоторые операционные системы (например, [Sun Solaris](https://ru.wikipedia.org/wiki/Solaris)
+ Иногда, если родительский процесс выполняется от имени суперпользователя, для освобождения записей (перезапуска процесса) может потребоваться перезагрузка (причём зачастую — только аппаратным рестартом). Некоторые операционные системы (например, [Sun Solaris](https://ru.wikipedia.org/wiki/Solaris)
) при возникновении такой ситуации аварийно завершают часть выполняющихся процессов, восстанавливая работоспособность системы.
@@ -1117,8 +1180,10 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
**Что такое SIGCHLD? В какой ситуации процесс может его
получить?**
-
-- Ответ
+
+Ответ
+
+
В POSIX-системах SIGCHLD — сигнал, посылаемый при изменении статуса дочернего процесса (завершён, приостановлен или возобновлен).
@@ -1128,19 +1193,23 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
---
**Что такое файловый дескриптор, какая информация в нем бывает?**
-
-- Ответ
+
+Ответ
+
+
*Файловый дескриптор*
- - неотрицательное целое число, которое используется в интерфейсе между пространством пользователя и пространством ядра (kernel) для идентификации ресурсов файла / сокета. Когда создаётся новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.
+ - неотрицательное целое число, которое используется в интерфейсе между пространством пользователя и пространством ядра (kernel) для идентификации ресурсов файла / сокета. Когда создаётся новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.
---
**Для чего нужны сигналы? Какие сигналы используются
чаще всего? (5 - 10 штук)**
-
-- Ответ
+
+Ответ
+
+
Это уведомление процесса о наступившем событии. Также это способ взаимодйествия между процссами.
@@ -1149,8 +1218,10 @@ KiB Swap: 0 total, 0 free, 0 used. 10090148 avail Mem
**Как осуществляется обработка сигналов? Чем отличается SIGTERM от
SIGKILL?**
-
-- Ответ
+
+Ответ
+
+
SIGTERM завершает программу. Это как бы мягкое уничтожение. И по умолчанию при вводе команды kill - используется именно он.SIGKILL - немедленное прекращение выполнение процесса. Процесс будет завершен с потоками. Используется как последнее средство. (kill)
@@ -1168,8 +1239,10 @@ SIGKILL?**
**Какой сигнал получит активный процесс при
нажатии Ctrl+C в консоли?**
-
-- Ответ
+
+Ответ
+
+
SIGINT (от англ. signal и interrupt — прервать) — сигнал, применяемый в POSIX-системах для остановки процесса пользователем с терминала.
@@ -1178,8 +1251,10 @@ SIGKILL?**
**Что такое load average? Что показывает эта метрика? Почему load average состоит из
трёх значений?**
-
-- Ответ
+
+Ответ
+
+
Часто говорят что это средняя загрузка процессора или нагрузка системы, или какие-то циферки.
@@ -1201,8 +1276,10 @@ SIGKILL?**
**Можно ли сделать так, чтобы пользователи могли получать информацию только о своих
процессах?**
-
-- Ответ
+
+Ответ
+
+
Да, можно, за это отвечает параметр hidepid
@@ -1215,19 +1292,23 @@ SIGKILL?**
---
**Что такое физическая память?**
-
-- Ответ
+
+Ответ
+
+
- **Физическая память** (или ***«ОЗУ»***, ***«RAM»***, ***«оперативка»***) — это энергозависимая память, установленная в компьютере. Для её работы требуется непрерывный поток электричества. Перебои с электропитанием или внезапное выключение компьютера могут привести к стиранию хранящихся в ней данных. Кроме того, эта память является линейно адресуемой. Другими словами, значения адресов памяти увеличиваются линейным образом.
+ **Физическая память** (или ***«ОЗУ»***, ***«RAM»***, ***«оперативка»***) — это энергозависимая память, установленная в компьютере. Для её работы требуется непрерывный поток электричества. Перебои с электропитанием или внезапное выключение компьютера могут привести к стиранию хранящихся в ней данных. Кроме того, эта память является линейно адресуемой. Другими словами, значения адресов памяти увеличиваются линейным образом.
- Запуская и исполняя программы, процессор напрямую обращается к физической памяти. Обычно программы хранятся на жестком диске. Время доступа процессора к диску значительно превышает аналогичное время доступа к физической (оперативной) памяти. Чтобы процессор мог выполнять программы быстрее, они сначала помещаются в физическую (оперативную) память. После завершения своей работы, они возвращаются обратно на жесткий диск. Освобожденная таким образом память может быть выделена новой программе. При выполнении данные программы называются **процессами**.
+ Запуская и исполняя программы, процессор напрямую обращается к физической памяти. Обычно программы хранятся на жестком диске. Время доступа процессора к диску значительно превышает аналогичное время доступа к физической (оперативной) памяти. Чтобы процессор мог выполнять программы быстрее, они сначала помещаются в физическую (оперативную) память. После завершения своей работы, они возвращаются обратно на жесткий диск. Освобожденная таким образом память может быть выделена новой программе. При выполнении данные программы называются **процессами**.
---
**Что такое виртуальная память?**
-
-- Ответ
+
+Ответ
+
+
Виртуальная память (или «логическая память») — это метод управления памятью, осуществляемый операционной системой, который позволяет программам задействовать значительно больше памяти, чем фактически установлено в компьютере. Например, если объем физической памяти компьютера составляет 4 ГБ, а виртуальной 16 ГБ, то программе может быть доступен объем виртуальной памяти вплоть до 16 ГБ.
@@ -1240,8 +1321,10 @@ SIGKILL?**
**Где в системе можно посмотреть сводку по текущему потреблению
памяти?**
-
-- Ответ
+
+Ответ
+
+
```bash
free -m
@@ -1251,8 +1334,10 @@ SIGKILL?**
---
**Как работает оом киллер и для чего нужен? Out of memory, oom**
-
-- Ответ
+
+Ответ
+
+
Когда на вашем Linux-компьютере заканчивается память, ядро вызывает Убийцу нехватки памяти (OOM) для освобождения памяти. Это часто встречается на серверах, на которых запущен ряд процессов с интенсивным использованием памяти.
@@ -1270,29 +1355,33 @@ SIGKILL?**
---
**Как процессы в системе взаимодействуют взаимодействие зобой?**
-
-- Ответ
+
+Ответ
+
+
- **Трубы** — связь между двумя взаимосвязанными процессами. Механизм является полудуплексным, что означает, что первый процесс связан со вторым процессом. Для достижения полного дуплекса, т. Е. Для взаимодействия второго процесса с первым процессом требуется другой канал.
+ **Трубы** — связь между двумя взаимосвязанными процессами. Механизм является полудуплексным, что означает, что первый процесс связан со вторым процессом. Для достижения полного дуплекса, т. Е. Для взаимодействия второго процесса с первым процессом требуется другой канал.
- **FIFO** — Связь между двумя не связанными процессами. FIFO — это полный дуплекс, что означает, что первый процесс может взаимодействовать со вторым процессом и наоборот одновременно.
+ **FIFO** — Связь между двумя не связанными процессами. FIFO — это полный дуплекс, что означает, что первый процесс может взаимодействовать со вторым процессом и наоборот одновременно.
- **Очереди сообщений** — связь между двумя или более процессами с полной дуплексной пропускной способностью. Процессы будут связываться друг с другом, отправляя сообщение и извлекая его из очереди. Полученное сообщение больше не доступно в очереди.
+ **Очереди сообщений** — связь между двумя или более процессами с полной дуплексной пропускной способностью. Процессы будут связываться друг с другом, отправляя сообщение и извлекая его из очереди. Полученное сообщение больше не доступно в очереди.
- **Совместно используемая память.** Связь между двумя или более процессами достигается за счет совместного использования памяти всеми процессами. Совместно используемая память должна быть защищена друг от друга путем синхронизации доступа ко всем процессам.
+ **Совместно используемая память.** Связь между двумя или более процессами достигается за счет совместного использования памяти всеми процессами. Совместно используемая память должна быть защищена друг от друга путем синхронизации доступа ко всем процессам.
- **Семафоры** — семафоры предназначены для синхронизации доступа к нескольким процессам. Когда один процесс хочет получить доступ к памяти (для чтения или записи), он должен быть заблокирован (или защищен) и освобожден при удалении доступа. Это должно быть повторено всеми процессами для защиты данных.
+ **Семафоры** — семафоры предназначены для синхронизации доступа к нескольким процессам. Когда один процесс хочет получить доступ к памяти (для чтения или записи), он должен быть заблокирован (или защищен) и освобожден при удалении доступа. Это должно быть повторено всеми процессами для защиты данных.
- **Сигналы** — Сигнал — это механизм связи между несколькими процессами посредством сигнализации. Это означает, что исходный процесс отправит сигнал (распознанный по номеру), а целевой процесс обработает его соответствующим образом.
+ **Сигналы** — Сигнал — это механизм связи между несколькими процессами посредством сигнализации. Это означает, что исходный процесс отправит сигнал (распознанный по номеру), а целевой процесс обработает его соответствующим образом.
- **Примечание.** Почти все программы в этом руководстве основаны на системных вызовах в операционной системе Linux (выполняется в Ubuntu).
+ **Примечание.** Почти все программы в этом руководстве основаны на системных вызовах в операционной системе Linux (выполняется в Ubuntu).
---
**Что такое QEMU**
-
-- Ответ
+
+Ответ
+
+
Это виртуализированный эмулятор, который запускает программы и ОС, созданные для одной машины на другой машине в процессе эмуляции машины. Он может достичь очень хорошей производительности с помощью динамического перевода.
@@ -1300,15 +1389,19 @@ SIGKILL?**
**Что такое KVM (гипервизор)**
-
-- Ответ
+
+Ответ
+
+
KVM (Kernel-based Virtual Machine) – гипервизор (VMM – Virtual Machine Manager), работающий в виде модуля на ОС Linux. Гипервизор нужен для того, чтобы запускать некий софт в несуществующей (виртуальной) среде и при этом, скрывать от этого софта реальное физическое железо, на котором этот софт работает. Гипервизор работает в роли «прокладки» между физическим железом (хостом) и виртуальной ОС (гостем).
**Что такое qemu-kvm?**
-
-- Ответ
+
+Ответ
+
+
KVM предоставляет доступ гостям к Ring 0 и использует QEMU для эмуляции I/O (процессор, диски, сеть, видео, PCI, USB, серийные порты и т.д., которые «видят» и с которыми работают гости).
@@ -1336,8 +1429,10 @@ SIGKILL?**
**Что такое блочные устройства? Какие элементарные операции
можно с ними производить?**
-
-- Ответ
+
+Ответ
+
+
Блочное устройство представляет собой уровень абстракции, описывающий любое устройство хранения информации, которое может быть разбито на блоки определенного размера; доступ к каждому блоку осуществляется независимо от доступа к другим блокам. Такой доступ часто называют произвольным доступом.
@@ -1364,16 +1459,20 @@ SIGKILL?**
**Что такое символьные устройства? Какие элементарные операции с ними можно производить?**
-
-- Ответ
+
+Ответ
+
+
---
**Что такое major and minor numbers блочных устройств, чему они соответствуют?**
-
-- Ответ
+
+Ответ
+
+
Согласно выводу
@@ -1408,8 +1507,10 @@ SIGKILL?**
**Что такое файловая система?
Для чего она нужна?**
-
-- Ответ
+
+Ответ
+
+
Файловая система обеспечивает способ разделения данных на диске на отдельные части, которые являются файлами. Он также предоставляет способ хранения данных об этих файлах – например, их имён, разрешений и других атрибутов.
@@ -1424,14 +1525,18 @@ SIGKILL?**
**Как создать файловую систему на блочном устройстве? Какие параметры
можно задать при создании?**
-
-- Ответ
+
+Ответ
+
+
Что такое **inodes айноды**
-
-- Ответ
+
+Ответ
+
+
**Inode** (индексный дескриптор) - структура данных, в которой хранятся метаданные файла и перечислены блоки с данными файла.
@@ -1449,8 +1554,10 @@ SIGKILL?**
- Любая другая необходимая информация.
**Где физически находятся inodes айноды**
-
-- Ответ
+
+Ответ
+
+
Будет зависеть от файловой системы. Например, в ext2, ext3 хранится перед блоками данных. Это атрибут не диска, а файловой системы.
@@ -1468,8 +1575,10 @@ SIGKILL?**
**По какой причине и на какого типа системах айноды могут закончиться? И к чему это может привести?**
-
-- Ответ
+
+Ответ
+
+
Не будет возможности создания файла
@@ -1477,15 +1586,19 @@ SIGKILL?**
**Какая файловая система бывает динамическими айнодами?**
-
-- Ответ
+
+Ответ
+
+
XFS
**Где хранится информация об именах файлов, директорий?**
-
-- Ответ
+
+Ответ
+
+
- Inodes не содержат имён файлов, только другие метаданные файла.
- Каталоги Unix представляют собой списки ассоциативных структур, каждая из которых содержит одно имя файла и один номер индекса.
- Драйвер файловой системы должен найти каталог, ищущий определенное имя файла, а затем преобразовать имя файла в правильный соответствующий номер индекса.
@@ -1501,8 +1614,10 @@ SIGKILL?**
монтирование ФС? Как можно
посмотреть список примонтированных ФС? (2 - 3
способа)**
-
-- Ответ
+
+Ответ
+
+
```bash
mkfs -t ext3 /dev/hda8
@@ -1534,21 +1649,23 @@ SIGKILL?**
**Что такое псевдофайловая
система?**
-
-- Ответ
+
+Ответ
+
+
- «Псевдо» означает ложь, притворяться. Таким образом, «псевдофайловая система» означает файловую систему, которая не имеет *фактических* файлов - скорее, она имеет виртуальные записи, которые сама файловая система создает на месте.
+ «Псевдо» означает ложь, притворяться. Таким образом, «псевдофайловая система» означает файловую систему, которая не имеет *фактических* файлов - скорее, она имеет виртуальные записи, которые сама файловая система создает на месте.
Можно сказать это интерфейс ядра linux.
- Например, `/proc` во многих ОС - это procfs, который динамически генерирует каталоги для каждого процесса. Точно так же `/sys` в Linux генерирует файлы и каталоги для представления аппаратных схем. Есть FUSE на основе псевдо-файловая система для *многих* вещей.
+ Например, `/proc` во многих ОС - это procfs, который динамически генерирует каталоги для каждого процесса. Точно так же `/sys` в Linux генерирует файлы и каталоги для представления аппаратных схем. Есть FUSE на основе псевдо-файловая система для *многих* вещей.
- `/dev` может быть реальной файловой системой (просто подкаталогом `/`) или виртуальной псевдофайловой системой (например, devfs), или средней точкой, такой как Linux devtmpfs (которая является полной файловой системой в памяти, но все же создает узлы устройства из нигде).
+ `/dev` может быть реальной файловой системой (просто подкаталогом `/`) или виртуальной псевдофайловой системой (например, devfs), или средней точкой, такой как Linux devtmpfs (которая является полной файловой системой в памяти, но все же создает узлы устройства из нигде).
- Основное предназначение современных VFS — организация единого интерфейса доступа пользователя к различным файловым системам, [драйверы](https://ru.wikipedia.org/wiki/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80)
- которых загружены в память компьютера. Для реализации этой цели от ядра [операционной системы](https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0)
- требуется создание единого [программного интерфейса](https://ru.wikipedia.org/wiki/API)
- внутренних вызовов ядра
+ Основное предназначение современных VFS — организация единого интерфейса доступа пользователя к различным файловым системам, [драйверы](https://ru.wikipedia.org/wiki/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80)
+ которых загружены в память компьютера. Для реализации этой цели от ядра [операционной системы](https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0)
+ требуется создание единого [программного интерфейса](https://ru.wikipedia.org/wiki/API)
+ внутренних вызовов ядра
---
@@ -1556,8 +1673,10 @@ SIGKILL?**
**Какие проблемы могут возникать с файловой системой и жёстким диском?
Можно ли восстановить ФС при незначительном повреждении её структуры?
Как это сделать?**
-
-- Ответ
+
+Ответ
+
+
Если автоматическая проверка при загрузке не может восстановить согласованность файловой системы, обычно происходит переход в однопользовательскую командную оболочку и выводится сообщение с указаниями по ручному запуску fsck. В системе ext2, которая не журналируется, вам может быть представлена серия вопросов для подтверждения операций по восстановлению файловой системы. Как правило, рекомендуется следовать предложениям fsck по восстановлению системы, выбирая y (для подтверждения операции). Когда система перезагрузится, проверьте, не пропала ли какая-либо информация или файлы.
@@ -1586,14 +1705,18 @@ SIGKILL?**
**Как определить, на каком физическом жёстком диске находится раздел с файловой
системой? Как можно идентифицировать этот носитель без выключения сервера?**
-
-- Ответ неизвестен
+
+Ответ неизвестен
+
+
**Какую файловую систему Вы бы выбрали для работы с большим количеством файлов?**
-
-- Ответ
+
+Ответ
+
+
@@ -1601,8 +1724,10 @@ SIGKILL?**
**Как узнать, какими процессами используется раздел? (lsof, fuser, grep within
procfs)**
-
-- Ответ
+
+Ответ
+
+
`lsof | grep /media/whatever`
@@ -1612,8 +1737,10 @@ procfs)**
---
**Для чего необходимы файлы /etc/fstab, /etc/mtab, /etc/mdadm/mdadm.conf?**
-
-- Ответ
+
+Ответ
+
+
При включении главный диск смонтирован в корень. Загрузочный в boot.
@@ -1661,21 +1788,23 @@ procfs)**
```
- **Ключевые отличия**
- - `hardlink` не может указывать на файл в другой файловой системе (так как `inode` может принадлежать только одной ФС), а `symlink` – может.
- - при редактировании файла-ссылки в случае с `hardlink`ом – изменятся оба файла, так как это один и тот же объект, а в случае с `symlink`а – можно изменять его имя, атрибуты, направить его на другой файл и при этом оригинальный файл не будет затронут (но учтите, что если вы откроете файл симлинка для редактирования – то измените оригинальный файл, т.к. по сути вы откроете для редактирования именно его)
+ - `hardlink` не может указывать на файл в другой файловой системе (так как `inode` может принадлежать только одной ФС), а `symlink` – может.
+ - при редактировании файла-ссылки в случае с `hardlink`ом – изменятся оба файла, так как это один и тот же объект, а в случае с `symlink`а – можно изменять его имя, атрибуты, направить его на другой файл и при этом оригинальный файл не будет затронут (но учтите, что если вы откроете файл симлинка для редактирования – то измените оригинальный файл, т.к. по сути вы откроете для редактирования именно его)
- жёсткая ссылка не может указывать на на каталог
- - При удалении `hardlink`
- -а – файл будет существовать до тех пор, пока есть хотя бы 1 `hardlink`
- на него, но может “менять каталог размещения”, если был удалён “исходный” файл, но остался файл-`hardlink`
- в другом месте. При удалении же файла, на который указывает `symlink`
- – файл-ссылка просто станет нерабочим.
+ - При удалении `hardlink`
+ -а – файл будет существовать до тех пор, пока есть хотя бы 1 `hardlink`
+ на него, но может “менять каталог размещения”, если был удалён “исходный” файл, но остался файл-`hardlink`
+ в другом месте. При удалении же файла, на который указывает `symlink`
+ – файл-ссылка просто станет нерабочим.
---
**Что такое RAID? Какие основные типы RAID существуют, чем они
отличаются?**
-
-- Ответ
+
+Ответ
+
+
В работе с дисками есть две проблемы
@@ -1691,19 +1820,19 @@ procfs)**
- Программные массивы создаются уже после установки Операционной Системы средствами программных продуктов и утилит, что и является главным недостатком таких дисковых массивов.
- Аппаратные RAID’ы создают дисковый массив до установки Операционной системы и от неё не зависят.
- **RAID 0** - чередование
+ **RAID 0** - чередование
- **RAID 1** - зеркалирование
+ **RAID 1** - зеркалирование
- **RAID 5** - чередование с четностью
+ **RAID 5** - чередование с четностью
- **RAID 6** - чередование с двойной четностью
+ **RAID 6** - чередование с двойной четностью
- **RAID 10** - совмещение зеркалирования и чередования
+ **RAID 10** - совмещение зеркалирования и чередования
**Уровень RAID 0 - Чередование**
- В системе **RAID 0** данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода. Эту производительность можно повысить, используя несколько контроллеров, в идеале один контроллер на диск.
+ В системе **RAID 0** данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода. Эту производительность можно повысить, используя несколько контроллеров, в идеале один контроллер на диск.

@@ -1727,7 +1856,7 @@ procfs)**
**Уровень RAID 1 - Зеркальное отображение**
- Данные хранятся дважды, записывая их как на диск данных (или набор дисков с данными), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует диск данных или зеркальный диск для восстановления данных и продолжает работу. Вам нужно как минимум 2 диска для массива RAID 1.
+ Данные хранятся дважды, записывая их как на диск данных (или набор дисков с данными), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует диск данных или зеркальный диск для восстановления данных и продолжает работу. Вам нужно как минимум 2 диска для массива RAID 1.

@@ -1749,7 +1878,7 @@ procfs)**
**RAID уровень 5**
- RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока. Данные о четности не записываются на фиксированный диск, они распространяются на все диски, как показано на рисунке ниже. Используя данные контроля четности, компьютер может пересчитать данные одного из других блоков данных, если эти данные больше не будут доступны. Это означает, что массив RAID 5 может противостоять отказу одного диска без потери данных или доступа к ним. Хотя RAID 5 может быть реализован программно, рекомендуется аппаратный контроллер. Часто дополнительная кеш-память используется на этих контроллерах для улучшения производительности записи.
+ RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока. Данные о четности не записываются на фиксированный диск, они распространяются на все диски, как показано на рисунке ниже. Используя данные контроля четности, компьютер может пересчитать данные одного из других блоков данных, если эти данные больше не будут доступны. Это означает, что массив RAID 5 может противостоять отказу одного диска без потери данных или доступа к ним. Хотя RAID 5 может быть реализован программно, рекомендуется аппаратный контроллер. Часто дополнительная кеш-память используется на этих контроллерах для улучшения производительности записи.

@@ -1819,8 +1948,10 @@ procfs)**
**Какие средства для работы с программными RAID массивами существуют в
linux?**
-
-- Ответ
+
+Ответ
+
+
`mdadm`
@@ -1830,8 +1961,10 @@ linux?**
---
**Что такое LVM? Для решения каких задач он предназначен?**
-
-- Ответ
+
+Ответ
+
+
менеджер, позволяющий управлять логическими томами в системах Linux. Сами логические тома можно собрать из нескольких дисков или разделов дисков. LVM расшифровывается как Logical Volume Manager или по-русски — менеджер логических томов.
@@ -1841,8 +1974,10 @@ linux?**
---
**Что такое loop devices? Как их можно использовать?**
-
-- Ответ
+
+Ответ
+
+
В Unix-подобных операционных системах устройство цикла , vnd (диск vnode) или lofi (интерфейс файла цикла) является псевдоустройством, которое делает компьютерный файл доступным как блочное устройство .
@@ -1860,8 +1995,10 @@ linux?**
**no space left on device
несмотря на то, что df
сообщает о наличии свободного места. При каких обстоятельствах может возникнуть описанная ситуация?(inodes)**
-
-- Ответ
+
+Ответ
+
+
```bash
Сначала смотрим свободное место
@@ -1877,8 +2014,10 @@ linux?**
**df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная
ситуация?(deleted files)**
-
-- Ответ
+
+Ответ
+
+
При удаленном файле такое может быть. Файловый дескриптор держит файл
@@ -1897,8 +2036,10 @@ linux?**
left on device несмотря на то, что df сообщает о наличии свободного места; при это
пользователь root может создавать и записывать файлы. При каких обстоятельствах может
возникнуть описанная ситуация?(quotas)**
-
-- Ответ
+
+Ответ
+
+
Бывает так, что превышается квота.
Для каждого юзера и пользователя она своя может быть
@@ -1914,8 +2055,10 @@ left on device несмотря на то, что df сообщает о нал
# Debug
**Сервер не отвечает, как можно получить доступ к серверу, не находясь непосредственно в ЦОДе**
-
-- Ответ
+
+Ответ
+
+
tcpconsole, ipmi, kvm
@@ -1926,8 +2069,10 @@ left on device несмотря на то, что df сообщает о нал
**Веб-сервер, работающий на сервере в нашей сети, отдаёт ошибку 502. Каким образом
можно найти причину ошибки?**
-
-- Ответ
+
+Ответ
+
+
502 bad gateway, ошибка на стороне вышестоящего сервера
@@ -1959,8 +2104,10 @@ left on device несмотря на то, что df сообщает о нал
---
**В директории находится файл с нечитаемым содержимым. Каким образом можно узнать формат хранения данных и предназначение файла?**
-
-- Ответ
+
+Ответ
+
+
```bash
$ file stat-master.zip
@@ -1976,8 +2123,10 @@ left on device несмотря на то, что df сообщает о нал
---
**Попытка запуска исполняемого файла завершается ошибкой no such file or directory. Почему?**
-
-- Ответ
+
+Ответ
+
+
Причин подобного поведения несколько
@@ -1991,8 +2140,10 @@ left on device несмотря на то, что df сообщает о нал
**Программа сообщает о том, что не может найти свой конфигурационный файл.
Каким образом можно узнать, где она пытается его найти?**
-
-- Ответ
+
+Ответ
+
+
line-buffered опция которая выведет результат как только найдет
@@ -2010,8 +2161,10 @@ left on device несмотря на то, что df сообщает о нал
**Что будешь делать если у команды chmod убрали права на исполнение? (chmod -x chmod)**
-
-- Ответ
+
+Ответ
+
+
1. Используем утилиту setfacl. По умолчанию её может не быть в системе, но не проблема установить.
@@ -2049,8 +2202,10 @@ left on device несмотря на то, что df сообщает о нал
---
**База сейчас сидит и упирается в диск. И с ней ничего не сделать — больше сервер никто покупать не будет. Как сделать так, чтобы оно работало быстрее прямо сейчас?**
-
-- Ответы
+
+Ответы
+
+
ОПАСНО!!!: нужно выключить fsync, чтобы база не дожидалась записи с данных на диск, а как бы сохраняла.
@@ -2058,8 +2213,10 @@ left on device несмотря на то, что df сообщает о нал
**Почему доступной (available) памяти сейчас 2919, если свободной (free) памяти 843?**
-
-- Ответы
+
+Ответы
+
+
- Total. Эта цифра представляет всю существующую память.
- Used вычисление общего значения оперативной памяти системы за вычетом выделенной свободной, разделяемой, буферной и кэш-памяти.
@@ -2078,8 +2235,10 @@ left on device несмотря на то, что df сообщает о нал
# Докеры процессы контейнеризация
**Что такое контейнеризация? Чем она отличается от виртуализации?**
-
-- Ответ
+
+Ответ
+
+

@@ -2099,8 +2258,10 @@ left on device несмотря на то, что df сообщает о нал
**Что такое docker и какие инструменты liunx лежат в основе? Для чего он
используется?**
-
-- Ответ
+
+Ответ
+
+
Docker базируется на технологиях namespaces и cgroups (первая обеспечивает изоляцию, вторая — группировку процессов и ограничение ресурсов)
@@ -2132,8 +2293,10 @@ left on device несмотря на то, что df сообщает о нал
**Что такое контейнеры, образы? В чём заключаются
концепции их использования?**
-
-- Ответ
+
+Ответ
+
+
**Образ** - шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".
@@ -2147,10 +2310,12 @@ left on device несмотря на то, что df сообщает о нал
---
**В каком виде хранятся образы? Для чего используются слои? Что представляет собой overlayfs?**
-
-- Ответ
+
+Ответ
+
+
- Изображение- это логическая группировка слоев плюс метаданные о том, что делать при создании контейнера и как собирать слои. Часть этих метаданных заключается в том, что каждый слой знает ID своего родителя.
+ Изображение- это логическая группировка слоев плюс метаданные о том, что делать при создании контейнера и как собирать слои. Часть этих метаданных заключается в том, что каждый слой знает ID своего родителя.
Итак, что входит в слой? Файлы (и каталоги), которые вы добавили в родительский файл. Существуют также специальные файлы ("whiteout"), которые указывают на то, что что-то было удалено из родительского файла.
@@ -2161,8 +2326,10 @@ left on device несмотря на то, что df сообщает о нал
**Каким образом в docker реализована изоляция контейнеров друг от друга?
Какие средства linux для этого используются?(namespace)**
-
-- Ответ
+
+Ответ
+
+
Неймспейсы, пространства имен
@@ -2171,8 +2338,10 @@ left on device несмотря на то, что df сообщает о нал
**Почему в контейнере можно увидеть только процессы, запущенные в самом
контейнере?**
-
-- Ответ
+
+Ответ
+
+
@@ -2180,8 +2349,10 @@ left on device несмотря на то, что df сообщает о нал
**Можно ли настроить сетевое взаимодействие между двумя docker-контейнерами? Как это
реализовано?**
-
-- Ответ
+
+Ответ
+
+
Можно.
@@ -2193,15 +2364,19 @@ left on device несмотря на то, что df сообщает о нал
---
**Что происходит когда пишешь ENTRYPOINT?**
-
-- Ответ
+
+Ответ
+
+
Точка вход
**В чем отличие CMD и ENTRYPOINT**
-
-- Ответ
+
+Ответ
+
+
Эти инструкции Dockerfile задают команду, исполняемую при запуске контейнера. При их использовании есть несколько правил, например:
@@ -2209,7 +2384,7 @@ left on device несмотря на то, что df сообщает о нал
- Если контейнер используется как исполняемый файл — ENTRYPOINT должна быть определена.
- Если контейнер запускается с другими аргументами — CMD будет переопределена.
- Инструкция RUN позволяет вам установить ваше приложение и необходимые для него пакеты. Он выполняет любые команды поверх текущего изображения и создает новый слой, фиксируя результаты. Часто в Dockerfile вы найдете несколько инструкций RUN.
+ Инструкция RUN позволяет вам установить ваше приложение и необходимые для него пакеты. Он выполняет любые команды поверх текущего изображения и создает новый слой, фиксируя результаты. Часто в Dockerfile вы найдете несколько инструкций RUN.
Хорошей иллюстрацией инструкции RUN может быть установка нескольких пакетов систем контроля версий:
@@ -2222,9 +2397,9 @@ left on device несмотря на то, что df сообщает о нал
subversion
```
- Обратите внимание, что `apt-get update`и `apt-get install`выполняются в одной инструкции RUN. Это делается для того, чтобы убедиться, что будут установлены самые последние пакеты. Если бы `apt-get install`это была отдельная инструкция RUN, то она бы повторно использовала слой, добавленный `apt-get update`, который мог быть создан давным-давно.
+ Обратите внимание, что `apt-get update`и `apt-get install`выполняются в одной инструкции RUN. Это делается для того, чтобы убедиться, что будут установлены самые последние пакеты. Если бы `apt-get install`это была отдельная инструкция RUN, то она бы повторно использовала слой, добавленный `apt-get update`, который мог быть создан давным-давно.
- Инструкция CMD позволяет вам установить команду по *умолчанию* , которая будет выполняться только тогда, когда вы запускаете контейнер без указания команды. Если контейнер Docker запускается с командой, команда по умолчанию будет игнорироваться. Если Dockerfile содержит более одной инструкции CMD, все инструкции CMD, кроме последней, игнорируются.
+ Инструкция CMD позволяет вам установить команду по *умолчанию* , которая будет выполняться только тогда, когда вы запускаете контейнер без указания команды. Если контейнер Docker запускается с командой, команда по умолчанию будет игнорироваться. Если Dockerfile содержит более одной инструкции CMD, все инструкции CMD, кроме последней, игнорируются.
CMD имеет три формы:
@@ -2242,7 +2417,7 @@ left on device несмотря на то, что df сообщает о нал
`docker run -it /bin/bash` - тут при наличии CMD он будет проигнорирован, и будет запущен баш
- Инструкция ENTRYPOINT позволяет настроить контейнер, который будет работать как исполняемый файл. Он похож на CMD, потому что также позволяет указать команду с параметрами. Разница заключается в том, что команда ENTRYPOINT и параметры не игнорируются, когда контейнер Docker запускается с параметрами командной строки. (Есть способ игнорировать ENTTRYPOINT, но вряд ли вы это сделаете.)
+ Инструкция ENTRYPOINT позволяет настроить контейнер, который будет работать как исполняемый файл. Он похож на CMD, потому что также позволяет указать команду с параметрами. Разница заключается в том, что команда ENTRYPOINT и параметры не игнорируются, когда контейнер Docker запускается с параметрами командной строки. (Есть способ игнорировать ENTTRYPOINT, но вряд ли вы это сделаете.)
Докерфайл
@@ -2251,14 +2426,14 @@ left on device несмотря на то, что df сообщает о нал
CMD ["world"]
```
- когда контейнер запускается, как `docker run -it `будет производиться вывод
+ когда контейнер запускается, как `docker run -it `будет производиться вывод
```
Hello world
```
- но когда контейнер запускается, `docker run -it John`это приведет к
+ но когда контейнер запускается, `docker run -it John`это приведет к
```
Hello John
@@ -2274,8 +2449,10 @@ left on device несмотря на то, что df сообщает о нал
**Как уменьшить размер образа докера? У нас много COPY, RUN**
-
-- Ответ
+
+Ответ
+
+
1. Использовать специальные облегченные базовые версии докер-образов.
2. Уменьшать размер слоев, запуская RUN нечасто, объединив команды в одну
3. Не устанавливаем рекомендованные пакеты. И удалять из `/var/lib/apt/lists/*`
@@ -2346,8 +2523,10 @@ left on device несмотря на то, что df сообщает о нал
**Что такое squash сквош?**
-
-- Ответ
+
+Ответ
+
+
Это штука, позволяющая все слои спушить в один. В качестве побочного эффекта - размер образа уменьшается.
@@ -2358,15 +2537,19 @@ left on device несмотря на то, что df сообщает о нал
**Какие команды порождают слои?**
-
-- Ответ
+
+Ответ
+
+
`RUN` порождает слои
**Что такое Docker squash?**
-
-- Ответ
+
+Ответ
+
+
Это утилита на питоне, которая позволяет объединить слои в один.
@@ -2379,8 +2562,10 @@ left on device несмотря на то, что df сообщает о нал
использование ресурсов (cpu,
ram, io, network) для docker контейнера? Как это
реализовано? (cgroup)**
-
-- Ответ
+
+Ответ
+
+
Можно. И делается через cgroup. В модуле ядра.
@@ -2393,8 +2578,10 @@ ram, io, network) для docker контейнера? Как это
**Для решения каких задач
применяется docker-compose?**
-
-- Ответ
+
+Ответ
+
+
Docker Compose — это инструментальное средство, входящее в состав Docker. Оно предназначено для решения задач, связанных с развёртыванием проектов.
@@ -2402,8 +2589,10 @@ ram, io, network) для docker контейнера? Как это
---
**Что такое виртуализация? Чем виртуализация отличается от эмуляции?**
-
-- Ответ
+
+Ответ
+
+
Виртуализация очень похожа на эмуляцию, но между ними есть важные различия. В частности, виртуализация обычно относится к использованию виртуальных машин. Виртуализация и эмуляция выполняют одно и то же, но делают это немного по-разному.
@@ -2417,8 +2606,10 @@ ram, io, network) для docker контейнера? Как это
В чем разница между `docker stop` и `docker pause`?
-
-- Ответ
+
+Ответ
+
+
В том, что они разные сигналы посылают
@@ -2428,22 +2619,26 @@ ram, io, network) для docker контейнера? Как это
**Что такое слои в докере?**
-
-- Ответ
+
+Ответ
+
+
- По сути, слой или *слой образа*
- - это изменение изображения или **промежуточного образа**
- . Каждая команда указывается (
+ По сути, слой или *слой образа*
+ - это изменение изображения или **промежуточного образа**
+ . Каждая команда указывается (
`FROM`
- , `RUN`
- , `COPY`
+ , `RUN`
+ , `COPY`
и т.д.) в вашем Dockerfile вызывает предыдущее образ изменения, создавая тем самым новый слой. Вы можете думать об этом как о внесении изменений при использовании git: вы добавляете изменение файла, затем еще одно, затем еще одно
**В чем разница между ADD и COPY**
-
-- Ответ
+
+Ответ
+
+
Из документации докера.
Они схожи, но COPY предпочтительнее.
@@ -2453,15 +2648,19 @@ ram, io, network) для docker контейнера? Как это
**Почему latest образы использовать нежелательно?**
-
-- Ответ
+
+Ответ
+
+
Сложно в отладке как минимум. Не разобраться какая именно версия закосячила. А так прод работает на определенной версии, пусть дальше на ней и работает
**В чем отличие ARG от ENV?**
-
-- Ответ
+
+Ответ
+
+
**ENV** позволяет создавать переменные окружения, которые будут работать во время работы контейнера.
@@ -2469,8 +2668,10 @@ ram, io, network) для docker контейнера? Как это
**От кого по умолчанию запускается контейнер? Почему это плохо?**
-
-- Ответ
+
+Ответ
+
+
Процесс внутри пользователя запускается от root. id = 0.
@@ -2489,8 +2690,10 @@ ram, io, network) для docker контейнера? Как это
**Как убить контейнер изнутри?**
-
-- Ответ
+
+Ответ
+
+
Через sigkill нельзя..pth yt Нужен обработчик сигнала. Sigkill я зарегистрировать не смогу. И игнорировать этот сигнал тоже. Но можно обрабатывать sigterm. И его использовать для выхода из приложения.
@@ -2498,8 +2701,10 @@ ram, io, network) для docker контейнера? Как это
**Возможен ли самостоятельный перезапуск контейнера?**
-
-- Ответ
+
+Ответ
+
+
Да, можно вот так указать:
@@ -2507,8 +2712,10 @@ ram, io, network) для docker контейнера? Как это
**Какие есть best practices для написания Dockerfile?**
-
-- Ответ
+
+Ответ
+
+
1. Запускать только один процесс на контейнер.
2. Стараться объединять несколько команд RUN в одну для уменьшения количества слоёв образа.
3. Частоизменяемые слои образа необходимо располагать ниже по уровню,
@@ -2520,8 +2727,10 @@ ram, io, network) для docker контейнера? Как это
7. Использовать multistage build для сборки артифакта в одном контейнере и размещении его в другом.
**Что такое ката kata контейнер?**
-
-- Ответ
+
+Ответ
+
+
Это иная реализация контейнеров. Которые работают в оси под открытой инициативой. И если у обычных <>, у ката qemu, kvm, опускается ниже Контейнер на стероидах. Больше для безопасности.
@@ -2548,15 +2757,19 @@ ram, io, network) для docker контейнера? Как это
### **Сети сеть**
**Почему latency до 8.8.8.8 всегда низкий?**
-
-- Ответ
+
+Ответ
+
+
8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
**Что такое IP и маска подсети?**
-
-- Ответ
+
+Ответ
+
+
IP-адрес (IP от англ. Internet Protocol) — цифровой идентификатор, присваиваемый устройству, которое работает в условиях публичной или локальной сети на основе стека протоколов TCP/IP. Без него невозможно существование Интернета или какой-либо внутренней IP-сети.
@@ -2566,8 +2779,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое и зачем нужен ARP протокол?**
-
-- Ответ
+
+Ответ
+
+
Смысл **ARP** в том : как узнать мак устройства по его **ip**.
@@ -2576,8 +2791,10 @@ ram, io, network) для docker контейнера? Как это
**Зачем нужен VLAN?**
-
-- Ответ определение
+
+Ответ определение
+
+
VLAN (Virtual Local Area Network), или так называемые виртуальные локальные сети, которые позволяют на на одном физическом порту роутера создать несколько виртуальных локальных сетей сразу.
@@ -2604,24 +2821,30 @@ ram, io, network) для docker контейнера? Как это
- Ограничение широковещательного трафика
**Чем отличается TCP от UDP?**
-
-- Ответ
+
+Ответ
+
+
TCP – транспортный протокол передачи данных в сетях TCP/IP, предварительно устанавливающий соединение с сетью. Ориентирован на соединение, используется для передачи данных (электронная почта, файлы, сообщения). При определении потери пакетов будет выполнен перезапрос потерянных пакетов.
UDP – транспортный протокол, передающий сообщения-датаграммы без необходимости установки соединения в IP-сети. Не ориентирован на установление соединения, используется в потоковой передаче данных (IPTV, VoIP). При потере пакетов перезапроса потерянных пакетов не происходит.
Нельзя сказать, что TCP лучше UDP, т.к. данные транспортные протоколы используются для различных типов передачи трафика.
-
-- Ответ чтоб меньше доебывали
+
+Ответ чтоб меньше доебывали
+
+
tcp перед передачей сигнала устанавливает связь между устройствами.
udp сразу отправляет, возможна частичная потеря и несоблюдение порядка данных
**Как TCP устанавливает соединение?**
-
-- Ответ
+
+Ответ
+
+

@@ -2630,21 +2853,25 @@ ram, io, network) для docker контейнера? Как это
3. Если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED. В противном случае после тайм-аута он закрывает сокет и переходит в состояние CLOSED. Процесс называется «трёхэтапным рукопожатием» (англ. three way handshake), так как несмотря на то что возможен процесс установления соединения с использованием четырёх сегментов (SYN в сторону сервера, ACK в сторону клиента, SYN в сторону клиента, ACK в сторону сервера), на практике для экономии времени используется три сегмента.
**Как TCP поддерживает соединение?**
-
-- Ответ
+
+Ответ
+
+
- Многие реализации TCP способны посылать сообщение о *поддержании соединения*
- (keep-alive), тестирующее неактивные соединения.
+ Многие реализации TCP способны посылать сообщение о *поддержании соединения*
+ (keep-alive), тестирующее неактивные соединения.
- Такие сообщения периодически отправляются партнеру для проверки его существования в сети. В ответ должны поступать сообщения ACK. Использование сообщений о поддержании соединения не является обязательным. Если в системе имеется такая возможность, приложение может отменить ее собственными средствами. Предполагаемый период *по умолчанию*
- для тайм-аута поддержания соединения составляет целых два часа!
+ Такие сообщения периодически отправляются партнеру для проверки его существования в сети. В ответ должны поступать сообщения ACK. Использование сообщений о поддержании соединения не является обязательным. Если в системе имеется такая возможность, приложение может отменить ее собственными средствами. Предполагаемый период *по умолчанию*
+ для тайм-аута поддержания соединения составляет целых два часа!
**Что происходит когда в браузере вводишь yandex.ru? Описать процесс**
-
-- Ответы
+
+Ответы
+
+
- Любой URL содержит следующую структуру `<протокол>/<хост>/путь`, например `https://yandex.ru/pogoda/samara`. Также URL может содержать данные для отображения страницы.
+ Любой URL содержит следующую структуру `<протокол>/<хост>/путь`, например `https://yandex.ru/pogoda/samara`. Также URL может содержать данные для отображения страницы.
1. При вводе URL браузер смотрит на протокол запроса. Если протокол в URL не указан, то браузер смотрит на список HSTS (HTTP Strict Transport Security - механизм, принудительно активирующий защищенное соединение через протокол HTTPS), если хост есть в данном списке, то браузер отправит запрос по протоколу HTTPS, если нет, то по HTTP.
2. Для того, чтобы установить соединение с сервером, необходим его IP адрес. Так как мы используем домен, то необходимо установить соответствие домена и IP адреса сервера, где размещается ресурс. При запросе мы обращаемся к DNS. Cначала проверяется кеш DNS. Приоритет опроса DNS кеша следующий:
@@ -2675,37 +2902,45 @@ ram, io, network) для docker контейнера? Как это
После этого защищенное соединение с сервером установлено.
1. Далее необходимо сформировать запрос серверу:
- - Клиент формирует запрос HTTP, в котором участвует метод (например GET), URL и версию протокола. Например `GET /pogoda/samara HTTP/2`.
- - Следующий заголовок клиента HOST, в котором указывается к какому хосту необходимо обратиться. Например `HOST: yandex.ru`. По заголовку HOST сервер может определить к какому сайту на сервере необходимо обратиться.
+ - Клиент формирует запрос HTTP, в котором участвует метод (например GET), URL и версию протокола. Например `GET /pogoda/samara HTTP/2`.
+ - Следующий заголовок клиента HOST, в котором указывается к какому хосту необходимо обратиться. Например `HOST: yandex.ru`. По заголовку HOST сервер может определить к какому сайту на сервере необходимо обратиться.
- Запрос может также содержать и другие заголовки. Необходимо только, чтобы сервер смог понять эти заголовки.
После этого всё, соединение установлено
**На каком уровне работает протокол TCP?**
-
-- Ответы
+
+Ответы
+
+
Транспортный
**На каком уровне оси работает ssh?**
-
-- Ответы
+
+Ответы
+
+
На прикладном
**Как работает DNS, зачем он нужен?**
-
-- Ответ
+
+Ответ
+
+
DNS — фундаментальная технология современной интернет-среды, которая отвечает за хранение и обработку информации о доменных адресах
**Как работает NAT, зачем он нужен?**
-
-- Ответ
+
+Ответ
+
+
Изначально сети проектируются с использованием частных ip.
@@ -2721,8 +2956,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое ARP, зачем нужен? Также зачем нужен IP и MAC**
-
-- Ответ
+
+Ответ
+
+
ARP обозначает протокол разрешения адресов. Он может быть определен как протокол, который используется для разрешения IP-адреса, особенно IPV4, в аппаратный адрес.
@@ -2732,8 +2969,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое SNI?**
-
-- Ответ
+
+Ответ
+
+
**SNI**
или **Server Name Indication** — расширение популярного криптографического протокола TLS широко использующегося в веб.
@@ -2742,23 +2981,29 @@ ram, io, network) для docker контейнера? Как это
**Что такое TLS и SSL**
-
-- Ответ
+
+Ответ
+
+
Чем симметричное шифрование отличается от ассиметричного?
-
-- Ответ
+
+Ответ
+
+
Принципиальное различие между этими двумя методами заключается в том, что алгоритмы симметричного шифрования используют один ключ, в то время как асимметричные используют два разных, но связанных между собой ключа
- алгоритмы [симметричного шифрования](https://academy.binance.com/ru/articles/what-is-symmetric-key-cryptography) используют один и тот же ключ для выполнения этой функции, алгоритм асимметричного шифрования напротив, использует один ключ для шифрования данных и другой для его дешифрования.
+ алгоритмы [симметричного шифрования](https://academy.binance.com/ru/articles/what-is-symmetric-key-cryptography) используют один и тот же ключ для выполнения этой функции, алгоритм асимметричного шифрования напротив, использует один ключ для шифрования данных и другой для его дешифрования.
**Почему DNS использует UDP?**
-
-- Ответ
+
+Ответ
+
+
Пока устраиваешь TCP-сессию, ты можешь 3 раза отправить UDP пакетик туда и получить его обратно. И никакого оверхеда.
@@ -2805,8 +3050,10 @@ ram, io, network) для docker контейнера? Как это
- Запрос и ответ отметки времени (13 и 14) - проверка быстродействия сети
**Что такое authority в DNS?**
-
-- Ответ
+
+Ответ
+
+
Возможнро, речь идет об авторитативном сервере
@@ -2814,21 +3061,25 @@ ram, io, network) для docker контейнера? Как это
Серверы с только авторитативной функцией имеют следующие свойства:
- - **Очень быстро реагирует на запросы для зон, которые он контролирует.** Сервер с только авторитативной функцией будет иметь всю информацию о домене, за который он отвечает, или справочную информацию для зон в домене, которые были делегированы другим серверам имён.
- - **Не будет отвечать на рекурсивные запросы.** Серверы с только авторитативной функцией по своему понятию не предназначены отвечать на них. Это делает его только сервером, а не клиентом в системе DNS. Любой запрос, достигающий Authoritative-Only сервера, обычно поступает от распознавателя (резолвера), получившего ссылку на него, а это означает, что Authoritative-Only сервер либо имеет полный ответ, либо сможет передать новую ссылку на сервер имён, которому была делегирована соответствующая ответственность.
- - **Не кеширует результаты запроса.** Поскольку сервер authoritative-only никогда не запрашивает информацию на других серверах для обработки запроса, то ему просто нечего кэшировать. Вся информация, которую он знает, уже находится в его системе.
+ - **Очень быстро реагирует на запросы для зон, которые он контролирует.** Сервер с только авторитативной функцией будет иметь всю информацию о домене, за который он отвечает, или справочную информацию для зон в домене, которые были делегированы другим серверам имён.
+ - **Не будет отвечать на рекурсивные запросы.** Серверы с только авторитативной функцией по своему понятию не предназначены отвечать на них. Это делает его только сервером, а не клиентом в системе DNS. Любой запрос, достигающий Authoritative-Only сервера, обычно поступает от распознавателя (резолвера), получившего ссылку на него, а это означает, что Authoritative-Only сервер либо имеет полный ответ, либо сможет передать новую ссылку на сервер имён, которому была делегирована соответствующая ответственность.
+ - **Не кеширует результаты запроса.** Поскольку сервер authoritative-only никогда не запрашивает информацию на других серверах для обработки запроса, то ему просто нечего кэшировать. Вся информация, которую он знает, уже находится в его системе.
**Что такое рекурсивный DNS**
-
-- Ответ
+
+Ответ
+
+
Рекурсивный сервер — это DNS-сервер, который настроен на выполнение запросов к другим DNS-серверам, пока не найдёт ответ на вопрос. Он вернёт клиенту ответ на его запрос, либо сообщение об ошибке (его получит системный распознаватель, который, в свою очередь, передаст его клиентскому приложению).
**Рекурсивный и нерекурсивный запрос к серверу dns**
-
-- Ответ
+
+Ответ
+
+
При ответе на нерекурсивный запрос, а также - при неумении или запрете выполнять рекурсивные запросы, - DNS-сервер либо возвращает данные о зоне, за которую он ответствен, либо возвращает адреса серверов, которые обладают большим объёмом информации о запрошенной зоне, чем отвечающий сервер, чаще всего - адреса корневых серверов.
@@ -2848,8 +3099,10 @@ ram, io, network) для docker контейнера? Как это
**Базовая http аутентификация авторизация, как работает**
-
-- Ответ
+
+Ответ
+
+
HTTP имеет функцию базовой аутентификации. Это протокол, который описан в стандартах http 1.0/1.1
@@ -2872,8 +3125,10 @@ ram, io, network) для docker контейнера? Как это
**Как работают сертификаты? Как подтверждается соединение?**
-
-- Ответ
+
+Ответ
+
+
Процесс работает следующим образом:
@@ -2890,8 +3145,10 @@ ram, io, network) для docker контейнера? Как это
**Опиши принцип работы ssl-шифрования**
-
-- Ответ
+
+Ответ
+
+
В основе любого метода шифрования лежит ключ. Ключ — это способ зашифровать или расшифровать сообщение. В работе SSL-сертификата участвуют три ключа: публичный, приватный и сеансовый.
@@ -2909,14 +3166,16 @@ ram, io, network) для docker контейнера? Как это
Публичный и приватный ключи генерируются один раз при создании запроса на выпуск сертификата. Поэтому приватный ключ нужно хранить осторожно. Если ключ попадёт в руки другому человеку, он сможет расшифровывать сообщения, а вам придётся переустанавливать сертификат.
- **Шифрование с двумя разными ключами называют асимметричным.** Использовать такой метод более безопасно, но медленно. Поэтому браузер и сервер используют его один раз: чтобы создать сеансовый ключ.
+ **Шифрование с двумя разными ключами называют асимметричным.** Использовать такой метод более безопасно, но медленно. Поэтому браузер и сервер используют его один раз: чтобы создать сеансовый ключ.
- **Шифрование с одним ключом называют симметричным.** Этот метод удобен, но не так безопасен. Поэтому браузер и делает уникальный ключ для каждого сеанса вместо того, чтобы хранить его на сервере.
+ **Шифрование с одним ключом называют симметричным.** Этот метод удобен, но не так безопасен. Поэтому браузер и делает уникальный ключ для каждого сеанса вместо того, чтобы хранить его на сервере.
**Какие стандартные коды ответов есть у веб-серверов?**
-
-- Ответ
+
+Ответ
+
+
- 1XX — информационные коды. Они отвечают за процесс передачи данных. Это временные коды, они информируют о том, что запрос принят и обработка будет продолжаться.
- 2XX — успешная обработка. Запрос был получен и успешно обработан сервером.
- 3XX — перенаправление (редирект). Эти ответы сервера гласят, что нужно предпринять дальнейшие действия для выполнения запроса. Например, сделать запрос по другому адресу.
@@ -2924,8 +3183,10 @@ ram, io, network) для docker контейнера? Как это
- 5XX — ошибка сервера. Эти коды возникают из-за ошибок на стороне сервера. В данном случае пользователь всё сделал правильно, но сервер не может выполнить запрос. Для кодов этого класса сервер обязательно показывает сообщение, что не может обработать запрос и по какой причине.
**Какие существуют основные типы запросов HTTP?**
-
-- Ответ
+
+Ответ
+
+
Два наиболее часто используемых видов HTTP запросов это: GET и POST.
@@ -2955,8 +3216,10 @@ ram, io, network) для docker контейнера? Как это
---
**Что такое маска подсети?**
-
-- Ответы
+
+Ответы
+
+
Маска подсети тоже является числом, и она определяет диапазон IP-адресов, которые может использовать сеть
@@ -2966,15 +3229,19 @@ ram, io, network) для docker контейнера? Как это
## Ansible
**Для чего нужен ad hoc в ansible?**
-
-- Ответ
+
+Ответ
+
+
Это режим работы ансибл когда запрос к серверу выполняется напрямую из командной строки, без создания дополнительных файлов.
**Что такое роли в ansible, пример**
-
-- Ответ
+
+Ответ
+
+
Роли имеют свою структуру каталогов, которая выглядит так:
@@ -2993,8 +3260,8 @@ ram, io, network) для docker контейнера? Как это
- `files`: содержит файлы, которые будут скопированы на настраиваемые хосты; так же – может содержать скрипты, которые позже будут запускаться на хостах;
- `handlers`: обработчики, которые будут использоваться при выполнении задач;
- `meta`: описание зависимостей, т.е. – ролей, которые должны быть обработаны перед запуском настраиваемой роли и мета-данных, таких как автор, описание продукта и прочее;
- - `templates`: шаблоны файлов с переменными;
- - `tasks`: все задачи, которые ранее были описаны в *Playbook*е;
+ - `templates`: шаблоны файлов с переменными;
+ - `tasks`: все задачи, которые ранее были описаны в *Playbook*е;
- `vars`: переменные для шаблонов.
Тут описывается установка ngins
@@ -3003,8 +3270,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое идемпотентность? Приведи пример таких операций, и противоположных им**
-
-- Ответ
+
+Ответ
+
+
Идемпотентность это когда делаем одну и ту же операцию много раз, и при многократном ее повторении результат будет таким же, как в первый раз. Некоторые операции не являются идемпотентными сами по себе, и там потребуется дополнительная логика.
@@ -3015,8 +3284,10 @@ ram, io, network) для docker контейнера? Как это
В ансибле есть идемпотентность в модулях. Если я скажу создать файл при первом запуске он его создаст. При втором он увидит, что создано, и создавать не будет.
Но может быть проблема например с распаковкой архива. Мы можем просто его распаковывать и распаковывать в какую-то директорию. Это уже ближе к неидемпотентному сценарию.
-
-- Ответ в контексте ансибла
+
+Ответ в контексте ансибла
+
+
**Идемпотентность** - это такая характеристика действия, согласно которой повторное выполнение этого действия будет давать тот же результат, что и первый запуск.
@@ -3106,8 +3377,10 @@ ram, io, network) для docker контейнера? Как это
**Для чего нужны хендлеры, handlers?**
-
-- Ответ
+
+Ответ
+
+
Задачу можно дополнить обработчиками, которые будут срабатывать, если задача была выполнена успешно.
@@ -3130,8 +3403,10 @@ ram, io, network) для docker контейнера? Как это
**В чем разница pull и push модели?**
-
-- Ответы
+
+Ответы
+
+
**Pull**-модель преполагает, что управляемые хосты подтягивают инструкции с мастер-сервера.
@@ -3141,8 +3416,10 @@ ram, io, network) для docker контейнера? Как это
**В чем плюсы ансибла?**
-
-- Ответы
+
+Ответы
+
+
Выгодные отличия Ansible от других систем управления конфигурациями:
@@ -3153,11 +3430,13 @@ ram, io, network) для docker контейнера? Как это
- позволяет реализовать принцип идемпотентности в управлении состояниями хостов
**Опишите основные примитивы Ansible**
-
-- Ответы
+
+Ответы
+
+
**Инвентарь (Inventory)**
- - cписок хостов, может быть статичным в виде текcтового файла в формате ini или динамическим в виде скрипта или плагина, который подгружает структуру данных из стороннего источника, например, Openstack API или база LDAP.
+ - cписок хостов, может быть статичным в виде текcтового файла в формате ini или динамическим в виде скрипта или плагина, который подгружает структуру данных из стороннего источника, например, Openstack API или база LDAP.
```
$ cat hosts
@@ -3221,8 +3500,10 @@ ram, io, network) для docker контейнера? Как это
**В чем разница между модулем и плагином**
-
-- Ответ
+
+Ответ
+
+
Модули что-то делают на хостах
@@ -3234,8 +3515,10 @@ ram, io, network) для docker контейнера? Как это
### СУБД
**Что такое индексы, зачем они нужны?**
-
-- Ответ
+
+Ответ
+
+
Представьте себе, что у вас есть полочка для книг. При этом изначально эта полочка с книгами пуста. Книги вам то приносят, то уносят, то делают в них какие-то корректировки (к примеру, мемуары или может быть черновики) и тому подобное.
@@ -3259,32 +3542,34 @@ ram, io, network) для docker контейнера? Как это
**Какая будет проблема если проставить много индексов?**
-
-- Ответ
+
+Ответ
+
+
- Причина того, что наличие большого количества индексов — это плохо, заключается в том, что это резко увеличивает объем операций записи, которые необходимо выполнить в таблице. Это происходит в нескольких разных местах. Когда происходит запись, данные сначала записываются в журнал транзакций. Когда это происходит, это регистрируется для каждого отдельного индекса, в который выполняется запись. Таким образом, для таблицы с девятью некластеризованными индексами в журнале транзакций выполняется 10 операций записи.
+ Причина того, что наличие большого количества индексов — это плохо, заключается в том, что это резко увеличивает объем операций записи, которые необходимо выполнить в таблице. Это происходит в нескольких разных местах. Когда происходит запись, данные сначала записываются в журнал транзакций. Когда это происходит, это регистрируется для каждого отдельного индекса, в который выполняется запись. Таким образом, для таблицы с девятью некластеризованными индексами в журнале транзакций выполняется 10 операций записи.
- Другой ответ, более полный
1) Накладные затраты при записи данных
- Очевидно, что для поддержаиня какой-либо дополнительной структуры данных, либо определенной организации данных, требуется совершать дополнительные действия.
+ Очевидно, что для поддержаиня какой-либо дополнительной структуры данных, либо определенной организации данных, требуется совершать дополнительные действия.
Действий не так много, накладные затраты на них небольшие. Но плохо то, что эти затраты и действия возникают при записи данных. А запись данных происходит в транзакции.
- Хуже если в транзакции происходит и запись и чтение данных (контроль остатков). В этом случае индекс должен быть всегда в актуальном состоянии.
+ Хуже если в транзакции происходит и запись и чтение данных (контроль остатков). В этом случае индекс должен быть всегда в актуальном состоянии.
- Затраты на запись или чтение в транзакции намного "дороже" внетранзакционных издержек. Дело в том, что запись может вестись строго последовательно, и время на фиксацию изменений в БД сократить достаточно сложно. Более мощное оборудование тут не всегда помогает.
+ Затраты на запись или чтение в транзакции намного "дороже" внетранзакционных издержек. Дело в том, что запись может вестись строго последовательно, и время на фиксацию изменений в БД сократить достаточно сложно. Более мощное оборудование тут не всегда помогает.
- Внетранзакционное же чтение данных может вполне успешно выполняться параллельно, при этом в случае увеления количества запросов на чтение данных, к примеру, вследствие роста количества пользователей, то они вполне могут решиться наращиванием аппаратных ресурсов.
+ Внетранзакционное же чтение данных может вполне успешно выполняться параллельно, при этом в случае увеления количества запросов на чтение данных, к примеру, вследствие роста количества пользователей, то они вполне могут решиться наращиванием аппаратных ресурсов.
2) Накладные затраты на обслуживание индексов
- При интенсивной записи данных в таблицу данные индексов к ней не всегда распологаются на той странице, на которой должны. Появляются "пропуски", физическая структура индексов становится неэффективной. Поэтому иногда бывает необходимо производить дефрагментацию индексов. Производительность запросов к СУБД во время дефрагментации, соответственно, падает. Есть ещё процесс полного перестроения индексов - но в современных версиях MS SQL необходимости выполнения данной операции по регламенту нет.
+ При интенсивной записи данных в таблицу данные индексов к ней не всегда распологаются на той странице, на которой должны. Появляются "пропуски", физическая структура индексов становится неэффективной. Поэтому иногда бывает необходимо производить дефрагментацию индексов. Производительность запросов к СУБД во время дефрагментации, соответственно, падает. Есть ещё процесс полного перестроения индексов - но в современных версиях MS SQL необходимости выполнения данной операции по регламенту нет.
3) Влияние индексов на размер базы
- Не самое страшное последствие, но так или иначе если база весит 150-200 ГБ, то об этом надо уже задуматься. Для средней OLTP базы размер индексов, как правило, превышает объём самой базы.
+ Не самое страшное последствие, но так или иначе если база весит 150-200 ГБ, то об этом надо уже задуматься. Для средней OLTP базы размер индексов, как правило, превышает объём самой базы.
Не верите? Вполне можете воспользоваться какой-либо обработкой вроде этой:
@@ -3292,7 +3577,7 @@ ram, io, network) для docker контейнера? Как это
и посмотреть, сколько же в вашей базе места занимают индексы.
- 4) Затраты на создание и поддержание актуальной статистики
+ 4) Затраты на создание и поддержание актуальной статистики
Статистику в базе нужно регулярно обновлять при интенсивных операциях вставки и обновления. Это занимает вычислительные ресурсы, хоть и не влияет непосредственно на процесс.
@@ -3304,14 +3589,16 @@ ram, io, network) для docker контейнера? Как это
**Как настроить мастер слейв репликацию в мускуле?**
-
-- Ответ
+
+Ответ
+
+
Необходимы 2 сервера: master и slave.
1. На обеих сервера устанавливаем сервер MySQL одинаковой версии.
2. Включаем сервер базы данных на обеих серверах.
- 3. Настраиваем master - в `/etc/my.cnf` устанавливаем слеюущие значения:
+ 3. Настраиваем master - в `/etc/my.cnf` устанавливаем слеюущие значения:
```python
# выбираем ID сервера, произвольное число, лучше начинать с 1
@@ -3343,7 +3630,7 @@ ram, io, network) для docker контейнера? Как это
mysql -u root -p newdatabase < newdatabase.sql
```
- 1. Настраиваем slave в `/etc/my.cnf`:
+ 1. Настраиваем slave в `/etc/my.cnf`:
```python
# ID Слейва, удобно выбирать следующим числом после Мастера
@@ -3373,39 +3660,47 @@ ram, io, network) для docker контейнера? Как это
```
-**В чем разница между truncate delete и drop?**
-
-- Ответ
+**В чем разница между truncate delete и drop?**
+
+Ответ
+
+
1. Оператор DROP используется для удаления структуры таблицы. После удаления индексы, ограничения и триггеры, зависящие от таблицы, также будут удалены, но функции и хранимые процедуры, которые зависят от таблицы, останутся, но станут недействительными.
2. Оператор DELETE используется для удаления данных в таблице, его можно удалить с помощью условий, и все данные в таблице удаляются без условий.
3. Оператор TRUNCATE используется для удаления всех данных в таблице.
**Что такое роли в pgsql**
-
-- Ответ
+
+Ответ
+
+
- PostgreSQL использует концепцию ролей (*roles*) для управления разрешениями на доступ к базе данных.
+ PostgreSQL использует концепцию ролей (*roles*) для управления разрешениями на доступ к базе данных.
Роль можно рассматривать как пользователя базы данных или как группу пользователей, в зависимости от того как роль настроена.
Роли могут владеть объектами базы данных (например, таблицами) и выдавать другим ролям разрешения на доступ к этим объектам, управляя тем, кто имеет доступ и к каким объектам.
- Кроме того, можно предоставить одной роли *членство* в другой роли, таким образом одна роль может использовать привилегии других ролей.
+ Кроме того, можно предоставить одной роли *членство* в другой роли, таким образом одна роль может использовать привилегии других ролей.
- Концепция ролей включает в себя концепцию пользователей ("users") и групп ("groups"). До версии 8.1 в PostgreSQL пользователи и группы были отдельными сущностями, но теперь есть только роли. Любая роль может использоваться в качестве пользователя, группы, и того и другого.
+ Концепция ролей включает в себя концепцию пользователей ("users") и групп ("groups"). До версии 8.1 в PostgreSQL пользователи и группы были отдельными сущностями, но теперь есть только роли. Любая роль может использоваться в качестве пользователя, группы, и того и другого.
**Почему не следует использовать утилиту mysqldump на большой активной базе данных? Какие Вы знаете альтернативы?**
-
-- Ответ
+
+Ответ
+
+
---
### PYTHON
**Что такое хеш таблица?**
-
-- Ответ
+
+Ответ
+
+
Хеш-таблицы — это тип структуры данных, в которой адрес или значение индекса элемента данных генерируются из хеш-функции.
@@ -3413,8 +3708,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое генератор, что такое итератор?**
-
-- Ответ
+
+Ответ
+
+
**Итератор** - это сущность, которая позволяет упростить навигацию по некой коллекции.
@@ -3423,8 +3720,8 @@ ram, io, network) для docker контейнера? Как это
**Генератор** позволяет генерировать эти списки. Однако, это на первый взгляд. Потому что генератор сам по себе объект, и отличается он от списков селедующим:
- Генератор — это объект, который сразу при создании не вычисляет значения всех своих элементов.
- - Он хранит в памяти только последний вычисленный элемент, правило перехода к следующему и условие, при котором выполнение прерывается.
- - Вычисление следующего значения происходит лишь при выполнении метода . Предыдущее значение при этом теряется.
+ - Он хранит в памяти только последний вычисленный элемент, правило перехода к следующему и условие, при котором выполнение прерывается.
+ - Вычисление следующего значения происходит лишь при выполнении метода . Предыдущее значение при этом теряется.
next()
@@ -3434,16 +3731,20 @@ ram, io, network) для docker контейнера? Как это
**В чем разница между кортежем и списком?**
-
-- Ответ
+
+Ответ
+
+
1. Список можно изменить после создания.
2. Кортеж нельзя изменить после создания.
3. Список упорядочен. Он представляет собой упорядоченные последовательности объектов, как правило, одного и того же типа. Например, все имена пользователей упорядочены по дате создания: [«Seth», «Ema», «Eli»].
4. У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, «Ema», «2020–04–16») # id, name, created_at*.*
**Что такое декоратор?**
-
-- Ответ
+
+Ответ
+
+
Декоратор позволяет добавить новую функциональность к существующей функции. Это делается следующим образом. Функция передается декоратору, а он выполняет и существующий, и дополнительный код.
@@ -3494,8 +3795,10 @@ ram, io, network) для docker контейнера? Как это
**Какое значение принимает переменная в Python, которая не имеет значения?**
-
-- Ответ
+
+Ответ
+
+
@@ -3504,8 +3807,10 @@ ram, io, network) для docker контейнера? Как это
### KUBERNETES
**Что такое kubernetes?**
-
-- Ответ
+
+Ответ
+
+
Это система управления кластерами контейнеров linux.
@@ -3513,8 +3818,10 @@ ram, io, network) для docker контейнера? Как это
**Какую проблему решает kubernetes?**
-
-- Ответ
+
+Ответ
+
+
1. Масштабирование и запуск контейнеров на большом количестве хостов
2. Балансировка контейнеров между ними.
@@ -3532,15 +3839,19 @@ ram, io, network) для docker контейнера? Как это
**Что такое minikube?**
-
-- Ответ
+
+Ответ
+
+
Локальный кластер для знакомства с кубером, или для проверки каких-либо вещей.
Приведи пример проблемы, которая упрощает работу именно с использованием кубернетеса?
-
-- Ответ
+
+Ответ
+
+
Например, у нас есть три машины. На них запущены контейнеры.
@@ -3555,12 +3866,14 @@ ram, io, network) для docker контейнера? Как это
3. При возвращении ноды в строй придётся возвращать все контейнеры. Снова нужно делать те же манипуляции.
**В чем отличие statefulset от Deployment?**
-
-- Ответ
+
+Ответ
+
+
- *Deployment* - ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
+ *Deployment* - ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.
- *StatefulSet* - поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
+ *StatefulSet* - поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
Также statefulset не перебросится на другую ноду. Есть диск, который привязан. И при вымирании ноды, он не переедет в отличие от деплоймента.
@@ -3570,24 +3883,30 @@ ram, io, network) для docker контейнера? Как это
**В чем отличие Deployment от Replicaset?**
-
-- Ответ
+
+Ответ
+
+
**Что такое Readiness, Liveness, Startup пробы, какое отличие?**
-
-- Ответ
+
+Ответ
+
+
- Kubelet использует **Liveness** пробу для проверки, когда перезапустить контейнер. Например, Liveness проба должна поймать блокировку, когда приложение запущено, но не может ничего сделать. В этом случае перезапуск приложения может помочь сделать приложение доступным, несмотря на баги.
+ Kubelet использует **Liveness** пробу для проверки, когда перезапустить контейнер. Например, Liveness проба должна поймать блокировку, когда приложение запущено, но не может ничего сделать. В этом случае перезапуск приложения может помочь сделать приложение доступным, несмотря на баги.
- Kubelet использует **Readiness** пробы, чтобы узнать, готов ли контейнер принимать траффик. Pod считается готовым, когда все его контейнеры готовы.
+ Kubelet использует **Readiness** пробы, чтобы узнать, готов ли контейнер принимать траффик. Pod считается готовым, когда все его контейнеры готовы.
Одно из применений такого сигнала - контроль, какие Pod будут использованы в качестве бекенда для сервиса. Пока Pod не в статусе ready, он будет исключен из балансировщиков нагрузки сервиса.
- Kubelet использует **Startup** пробы, чтобы понять, когда приложение в контейнере было запущено. Если проба настроена, он блокирует Liveness и Readiness проверки, до того как проба становится успешной, и проверяет, что эта проба не мешает запуску приложения. Это может быть использовано для проверки работоспособности медленно стартующих контейнеров, чтобы избежать убийства kubelet'ом прежде, чем они будут запущены.
-
-- Ответ попроще
+ Kubelet использует **Startup** пробы, чтобы понять, когда приложение в контейнере было запущено. Если проба настроена, он блокирует Liveness и Readiness проверки, до того как проба становится успешной, и проверяет, что эта проба не мешает запуску приложения. Это может быть использовано для проверки работоспособности медленно стартующих контейнеров, чтобы избежать убийства kubelet'ом прежде, чем они будут запущены.
+
+Ответ попроще
+
+
Начну издалека. Для чего нужны такие механизмы? Дело в том, что запущенный под это не значит запущенное и развернутое приложение. Какая-нибудь джава может по пять минут подниматься.
Соответственно, нам нужно убедиться в том, что приложение запущено, и что на под можно пускать трафик
@@ -3619,15 +3938,19 @@ ram, io, network) для docker контейнера? Как это
**Что такое оператор в kubernetes?**
-
-- Ответ
+
+Ответ
+
+
Это контроллер приложения, который позволяет упаковать, развернуть и управлять приложением кубернетеса. Они расширяют функционал апи куба, и автоматически настраивают, создают экземпляры приложений
**Что такое узел, нода?**
-
-- Ответ
+
+Ответ
+
+
Это физическая или виртуальная машина, которая является частью кластера.
Узел может быть мастером и воркером.
@@ -3639,8 +3962,10 @@ ram, io, network) для docker контейнера? Как это
**Опиши архитектуру кубернетес кластера, из чего состоит?**
-
-- Ответ
+
+Ответ
+
+
Мастер ноды и воркер ноды
@@ -3693,8 +4018,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое pod?**
-
-- Ответ
+
+Ответ
+
+
Запрос на запуск одного или более контейнеров на одном узле.
@@ -3706,22 +4033,28 @@ ram, io, network) для docker контейнера? Как это
**В чем разница между подом и контейнером?**
-
-- Ответ
+
+Ответ
+
+
Под это минимальная единица куба. В котором есть контейнеры.
**Может ли под запуститься на двух разных узлах?**
-
-- Ответ
+
+Ответ
+
+
Нет. Поскольку есть поле узел. И шедулер назначает какому поду куда ехать
**Что такое ReplicaSet?**
-
-- Ответ
+
+Ответ
+
+
Следующий уровень абстракции над подами.
@@ -3795,8 +4128,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое Deployment?**
-
-- Ответ
+
+Ответ
+
+
Переводится как развертывание
@@ -3867,8 +4202,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое Service**
-
-- Ответ
+
+Ответ
+
+
Service - обеспечивает сетевой доступ к поду снаружи.
@@ -3880,8 +4217,10 @@ ram, io, network) для docker контейнера? Как это
**Какие типы service бывают?**
-
-- Ответ
+
+Ответ
+
+
- Без селектора
- ClusterIP - по умолчанию. Сервису выделяется отдельный айпишник внутри кластера. Доступ можно сделать с помощью проксировани.
- NodePort - выделяется айпи внутри кластера, и на каждом узле выделяется порт из диапазона 30000 - 32767. То есть указываем на каком порте узлов это работает
@@ -3889,8 +4228,10 @@ ram, io, network) для docker контейнера? Как это
- ExternalName - перенаправление трафика. Через cname в днс кластере.
**Что такое Ingress**
-
-- Ответ
+
+Ответ
+
+
Это не тип сервиса, но это абстракция связана с предоставлением доступа к сервисам извне.
@@ -3898,8 +4239,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое Job**
-
-- Ответ
+
+Ответ
+
+
Одноразовая задача. Создает один или несколько подов, и ожидает их успешного завершения.
@@ -3929,8 +4272,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое CronJob**
-
-- Ответ
+
+Ответ
+
+
Абстракция, которая автоматически создаёт поды по расписанию.
Расписание задаётся в крон-формате.
@@ -3947,8 +4292,10 @@ ram, io, network) для docker контейнера? Как это
**Что означает версия api (apiVersion)**
-
-- Ответ
+
+Ответ
+
+
- v1
- v2beta1
- v3aplha1
@@ -3962,8 +4309,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое namespace?**
-
-- Ответ
+
+Ответ
+
+
Это пространство имен.
Пространство имен - это способ разделения ресурсов в кластере между пользователями или проектами.
@@ -3981,8 +4330,10 @@ ram, io, network) для docker контейнера? Как это
- **kube-public** - создаваемое автоматически пространство имён, которое доступно для чтения пользователями. Данное пространство имён обычно используется кластером, если ресурсы должны быть общедоступными.
**Что такое Volume**
-
-- Ответ
+
+Ответ
+
+
Volume - это абстракция файлового хранилища.
@@ -3996,8 +4347,10 @@ ram, io, network) для docker контейнера? Как это
**Какие бывают типы файловых хранилищ**
-
-- Ответ
+
+Ответ
+
+
**emptyDir**
@@ -4019,8 +4372,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое configMap?**
-
-- Ответ
+
+Ответ
+
+
API объект, который используется для хранение неконфиценциальных параметров типа ключ значение.
@@ -4057,8 +4412,10 @@ ram, io, network) для docker контейнера? Как это
- kubelet использует секреты для подключения к апи серверу, для загрзки образов из докер регистри
**PersistentVolume, PersistentVolumeClaim**
-
-- Ответ
+
+Ответ
+
+
**PersistentVolume (PV)** - такой же ресурс кластера, как и узел. Он предоставляет не вычислительные русерсы, а тома дисковые. Примеры: NFS, RBD, CephFS и другие. В рамках PV впоследствии можно выделять подам место для хранения данных.
@@ -4094,8 +4451,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое nodeSelector, nodeName?**
-
-- Ответ
+
+Ответ
+
+
Это тип балансировщика.
@@ -4114,15 +4473,19 @@ ram, io, network) для docker контейнера? Как это
**DaemonSet зачем нужен для чего его обычно используют?**
-
-- Ответ
+
+Ответ
+
+
У него широкое распространение. Нужен для сбора логов по разным нодам. Логи как-то надо собирать. Сертификаты нод. Смотреть через демонсет можно
**Что такое Taints, Tolerations?**
-
-- Ответ
+
+Ответ
+
+
Можно настроить список блокировок (taints). Или как зараза. И если в спецификации пода не указана сопротивляемость к блокировкам(tolerations), то он не сможет попасть на определенный узел.
@@ -4144,8 +4507,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое Requests, Limits?**
-
-- Ответ
+
+Ответ
+
+
В спецификации пода мы можем указать плановое потребление ресурсов(requests) и лимиты использования ресурсов(limits). Нужный узел подбирается автоматически с учетом текущей нагрузки.
@@ -4163,8 +4528,10 @@ ram, io, network) для docker контейнера? Как это
**Affinity, anti-affinity**
-
-- Ответ
+
+Ответ
+
+
В спецификации пода указываются требования и пожелания к узлам, а также к уже существующим подам.
@@ -4174,8 +4541,10 @@ ram, io, network) для docker контейнера? Как это
**Что такое Helm**
-
-- Ответ
+
+Ответ
+
+
Пакетный менеджер для кубера.
Шаблонизатор для управления
@@ -4186,8 +4555,10 @@ ram, io, network) для docker контейнера? Как это
**Через что реализованы сети в kubernetes?**
**Что произойдет при изменении имейджа? Как будут докатываться изменения?**
-
-- Ответ
+
+Ответ
+
+
В общем случае создастся количество подов с определенным заданым количеством. Потом будут уходить “старые" поды. Это контролируется политикой обновлений.
@@ -4198,10 +4569,12 @@ ram, io, network) для docker контейнера? Как это
### GIT
-**Чем `merge` отличается от `rebase`?**
-
-- Ответ
- - `git merge` - выполняет слияние коммитов из одной ветки в другую. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
+**Чем `merge` отличается от `rebase`?**
+
+Ответ
+
+
+ - `git merge` - выполняет слияние коммитов из одной ветки в другую. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.

@@ -4215,7 +4588,7 @@ ram, io, network) для docker контейнера? Как это
1. История коммитов может быть заполнена (загрязнена) множеством коммитов,
2. Отладка с использованием git bisect может стать сложнее.
- - `git rebase` - сжимает все изменения в один патч. Затем интегрирует патч в целевую ветку. В отличии от *merge*, *rebase* перезаписывает историю, потому что она передаётся завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.
+ - `git rebase` - сжимает все изменения в один патч. Затем интегрирует патч в целевую ветку. В отличии от *merge*, *rebase* перезаписывает историю, потому что она передаётся завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.

@@ -4234,8 +4607,10 @@ ram, io, network) для docker контейнера? Как это
4. Для восстановления с удаленными ветками требуется принудительный пуш. Это приводит к обновлению всех веток, имеющих одно и то же имя, как локально, так и удаленно.
**Когда нужно использовать `merge`, когда `rebase`?**
-
-- Ответ
+
+Ответ
+
+
Предназначение этих команд git – интеграция изменений из одной ветки в другую, но делают они это по-разному.
@@ -4248,7 +4623,7 @@ ram, io, network) для docker контейнера? Как это
D <- E [branch]
```
- После обычного мержа репозиторий будет выглядеть так:
+ После обычного мержа репозиторий будет выглядеть так:
```
A <- B <- C
@@ -4281,14 +4656,16 @@ ram, io, network) для docker контейнера? Как это
3. Не захотите ли вы вдруг отменить слияние? Возврат rebase значительно затруднен по сравнению с обычным слиянием, а иногда даже невозможен.
**Чем отличается git pull и git fetch**
-
-- Ответ
+
+Ответ
+
+
- При использовании `pull`, git пытается сделать всё за вас. Он сливает любые внесённые коммиты в ветку, в которой вы сейчас работаете.
+ При использовании `pull`, git пытается сделать всё за вас. Он сливает любые внесённые коммиты в ветку, в которой вы сейчас работаете.
- Команда `pull` автоматически сливает коммиты, не давая вам сначала просмотреть их. Если вы не пристально следите за ветками, выполнение этой команды может привести к частым конфликтам.
+ Команда `pull` автоматически сливает коммиты, не давая вам сначала просмотреть их. Если вы не пристально следите за ветками, выполнение этой команды может привести к частым конфликтам.
- При использовании `fetch`, git собирает все коммиты из целевой ветки, которых нет в текущей ветке, и сохраняет их в локальном репозитории. Однако он не сливает их в текущую ветку
+ При использовании `fetch`, git собирает все коммиты из целевой ветки, которых нет в текущей ветке, и сохраняет их в локальном репозитории. Однако он не сливает их в текущую ветку
- Краткий ответ
@@ -4298,10 +4675,12 @@ ram, io, network) для docker контейнера? Как это
**Что такое cherry pick ?**
-
-- Ответ
+
+Ответ
+
+
- Команда `git cherry-pick` используется для перенесения
+ Команда `git cherry-pick` используется для перенесения
отдельных коммитов из одного места репозитория в другое, обычно между
ветками разработки и обслуживания. Этот механизм отличается от привычных
команд git merge и git rebase, которые переносят коммиты целыми
@@ -4309,8 +4688,10 @@ ram, io, network) для docker контейнера? Как это
**Какие пратики работы с гитом вы знаете? Форки**
-
-- Ответ
+
+Ответ
+
+
Работа через форки принципиально отличается от других популярных методов организации командной разработки. Вместо того чтобы использовать один серверный репозиторий в качестве центральной кодовой базы, здесь каждый разработчик получает свой собственный репозиторий. Чаще всего эта модель применяется в общедоступных open source проектах.
@@ -4320,10 +4701,12 @@ ram, io, network) для docker контейнера? Как это
**Что такое GitFlow?**
-
-- Ответ
+
+Ответ
+
+
- [Модель gitflow](https://proglib.io/p/git-github-gitflow/) использует две параллельные «долгие» ветки для хранения истории проекта: master и develop.
+ [Модель gitflow](https://proglib.io/p/git-github-gitflow/) использует две параллельные «долгие» ветки для хранения истории проекта: master и develop.
- **Master** – это полностью готовое к релизу состояние со всеми пройденными тестами.
- **Hotfix** – ветки обслуживания, или хотфиксы, которые