fix images inf interview

This commit is contained in:
Swfuse 2022-08-12 20:46:31 +03:00 committed by GitHub
parent 2bb2b0bfb7
commit f02169b781
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -426,7 +426,7 @@
Этапы следующие
![%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.png](%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.png)
![boot-system-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled.png)
1. При включении компьютера цп переходит на адрес биоса и загружает биос.
2. Биос, или uefi проходит кучу проверок и согласно своим проверкам носитель информации.
@ -438,7 +438,7 @@
1. Затем ядро берет всё на себя. Инициализация устройств, конфигурирование процессора, памяти
2. Далее запускается пользовательская среда, процесс init
[https://vc.ru/dev/137548-pusk-v-detalyah-kak-zagruzhaetsya-server](https://vc.ru/dev/137548-pusk-v-detalyah-kak-zagruzhaetsya-server)
Начало начал инициализация работы компьютера
@ -457,9 +457,9 @@
Для запуска процессору отправится сигнал Reset
Полная подробная статья:
Полная подробная статья по ссылке:
[https://vc.ru/dev/137548-pusk-v-detalyah-kak-zagruzhaetsya-server](https://vc.ru/dev/137548-pusk-v-detalyah-kak-zagruzhaetsya-server)
[Загрузка пк в деталях](%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/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D0%BF%D0%BA%20%D0%B2%20%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D1%8F%D1%85%2020338618f1364535a55892ad0c3738eb.md)
---
@ -1227,7 +1227,7 @@ SIGKILL?**
Основное различие между физической и виртуальной памятью заключается в том, что физическая память относится к оперативной памяти компьютера, подключенной непосредственно к его материнской плате. Именно в ней находятся выполняемые в данный момент программы. А виртуальная память — это метод управления, расширяющий при помощи жесткого диска объем физической памяти, благодаря чему у пользователей появляется возможность запускать программы, требование к памяти которых превышает объем установленной в компьютере физической памяти.
![%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%201.png](%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%201.png)
![memory-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%201.png)
**Почему в htop может быть не до конца корректная сводка по потребляемой памяти**
@ -1275,7 +1275,7 @@ Hop не всегда корректно показывает сколько п
- Ответ
**Трубы** — связь между двумя взаимосвязанными процессами. Механизм является полудуплексным, что означает, что первый процесс связан со вторым процессом. Для достижения полного дуплекса, т. Е. Для взаимодействия второго процесса с первым процессом требуется другой канал.
**Трубы(пайпы '|')** — связь между двумя взаимосвязанными процессами. Механизм является полудуплексным, что означает, что первый процесс связан со вторым процессом. Для достижения полного дуплекса, т. Е. Для взаимодействия второго процесса с первым процессом требуется другой канал.
**FIFO** — Связь между двумя не связанными процессами. FIFO — это полный дуплекс, что означает, что первый процесс может взаимодействовать со вторым процессом и наоборот одновременно.
@ -1472,7 +1472,7 @@ Hop не всегда корректно показывает сколько п
Может быть каталог инодов и имен, которые с ним связаны. Но это также будет зависеть от файловой системы. В fat32 их нет
![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%202.png)
![partition-images](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%202.png)
- Краткий ответ
@ -1719,7 +1719,7 @@ procfs)**
В системе **RAID 0** данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода. Эту производительность можно повысить, используя несколько контроллеров, в идеале один контроллер на диск.
![%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%203.png](%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%203.png)
![raid-0-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%203.png)
**Преимущества**
@ -1743,7 +1743,7 @@ procfs)**
Данные хранятся дважды, записывая их как на диск данных (или набор дисков с данными), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует диск данных или зеркальный диск для восстановления данных и продолжает работу. Вам нужно как минимум 2 диска для массива RAID 1.
![%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%204.png](%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%204.png)
![raid-1-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%204.png)
**Преимущества**
@ -1765,7 +1765,7 @@ procfs)**
RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока. Данные о четности не записываются на фиксированный диск, они распространяются на все диски, как показано на рисунке ниже. Используя данные контроля четности, компьютер может пересчитать данные одного из других блоков данных, если эти данные больше не будут доступны. Это означает, что массив RAID 5 может противостоять отказу одного диска без потери данных или доступа к ним. Хотя RAID 5 может быть реализован программно, рекомендуется аппаратный контроллер. Часто дополнительная кеш-память используется на этих контроллерах для улучшения производительности записи.
![%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%205.png](%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%205.png)
![raid-5-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%205.png)
**Преимущества**
@ -1785,7 +1785,7 @@ procfs)**
RAID 6 похож на RAID 5, но данные о четности записываются на два диска. Это означает, что для него требуется как минимум 4 диска и он может выдержать 2 диска, умирающих одновременно. Вероятность поломки двух дисков в один и тот же момент, конечно, очень мала. Тем не менее, если диск в системах RAID 5 умирает и заменяется новым, для восстановления замененного диска требуются часы или даже больше дня. Если в это время умирает другой диск, вы все равно теряете все свои данные. При использовании RAID 6 массив RAID переживет даже этот второй сбой.
![%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%206.png](%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%206.png)
![raid-6-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%206.png)
**Преимущества**
@ -1806,7 +1806,7 @@ procfs)**
Можно объединить преимущества (и недостатки) RAID 0 и RAID 1 в одной системе. Это вложенная или гибридная конфигурация RAID. Он обеспечивает безопасность путем зеркального отображения всех данных на вторичных дисках, в то же время используя распределение по каждому набору дисков для ускорения передачи данных.
![%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%207.png](%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%207.png)
![raid-10-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%207.png)
**Преимущества**
@ -2095,7 +2095,7 @@ left on device несмотря на то, что df сообщает о нал
- Ответ
![%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%208.png](%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%208.png)
![container-vs-vm-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%208.png)
Если говорить о виртуальных машинах, там они работают через **Виртуализацию**
@ -2127,7 +2127,7 @@ left on device несмотря на то, что df сообщает о нал
5. Container.
6. Docker registry — хранилище образов.
![%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%209.png](%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%209.png)
![docker-basic-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%209.png)
На Docker_host работает Docker daemon, запускает контейнеры. Есть Client, который передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.
@ -2637,7 +2637,7 @@ ram, io, network) для docker контейнера? Как это
- Ответ
![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%2010.png)
![tcp-con-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%208.png)
1. Клиент, который намеревается установить соединение, посылает серверу сегмент с номером последовательности и флагом SYN. Дальнейший алгоритм: Сервер получает сегмент, запоминает номер последовательности и пытается создать сокет (буферы и управляющие структуры памяти) для обслуживания нового клиента; В случае успеха сервер посылает клиенту сегмент с номером последовательности и флагами SYN и ACK, и переходит в состояние SYN-RECEIVED;В случае неудачи сервер посылает клиенту сегмент с флагом RST.
2. Если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK. Дальнейший алгоритм: Если он одновременно получает и флаг ACK (что обычно и происходит), то он переходит в состояние ESTABLISHED; Если клиент получает сегмент с флагом RST, то он прекращает попытки соединиться; Если клиент не получает ответа в течение 10 секунд, то он повторяет процесс соединения заново.
@ -2788,7 +2788,7 @@ ram, io, network) для docker контейнера? Как это
- Оповещение об ошибках на сетевом уровне
- Тестирование работоспособности сети
![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%2011.png)
![icmp-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%208.png)
Тип сообщения - он говорит о том, что произошло в сети. Какое действие пытается выполниться
@ -2882,7 +2882,7 @@ ram, io, network) для docker контейнера? Как это
И тут в auth передается в base64
![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%2012.png)
**Как работают сертификаты? Как подтверждается соединение?**
@ -2900,7 +2900,7 @@ ram, io, network) для docker контейнера? Как это
Этот процесс иногда называют подтверждением SSL-соединения. Хотя по описанию этот процесс выглядит длительным, в реальности он занимает миллисекунды.
![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%2013.png)
![ssl-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2013.png)
**Опиши принцип работы ssl-шифрования**
@ -2963,6 +2963,7 @@ ram, io, network) для docker контейнера? Как это
- Не остаётся в истории браузера
- Нет ограничений по длине запроса
**post_error**
[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%2026b6f5f23de74bf88002e57c48e41ea6.csv)
@ -3710,7 +3711,7 @@ ram, io, network) для docker контейнера? Как это
Container runtime (docker) - компонент, взаимодействующий с контейнером.
![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%2014.png)
![kube-proxy-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2014.png)
**Что такое pod?**
@ -3723,7 +3724,7 @@ ram, io, network) для docker контейнера? Как это
Эти контейнеры разделяют доступ к ресурсам типа томов хранилища, и сетевой стек. И каждый под имеет свой собственный внутренний апи
![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%2015.png)
![pod-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2015.png)
**В чем разница между подом и контейнером?**
@ -3748,7 +3749,7 @@ ram, io, network) для docker контейнера? Как это
Она запускает определенное количество подов и гарантирует поддержание данного количества подов. И эти поды могут быть запущены на разных узлах кластера.
![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%2016.png)
![replica-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2016.png)
В спецификации указываем количество реплик.
@ -3825,7 +3826,7 @@ ram, io, network) для docker контейнера? Как это
Он очень похож на репликасет. Но позволяет управляемо обновлять образами подов.
![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%2017.png)
![deployment-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2017.png)
- Шаблон деплоймента
@ -3946,7 +3947,7 @@ ram, io, network) для docker контейнера? Как это
**restartPolicy** - регулируем перезапускать или нет. Но самому контейнеру за этим следить не надо. Поэтому Never
![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%2018.png)
![restart-policy-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2018.png)
**Что такое CronJob**
@ -3964,7 +3965,7 @@ ram, io, network) для docker контейнера? Как это
- Пример кронджобы
![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%2019.png)
![cronjob-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2019.png)
**Что означает версия api (apiVersion)**
@ -4054,7 +4055,7 @@ ram, io, network) для docker контейнера? Как это
- Через Параметры запуска контейнеров
- Пример использования
![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%2020.png)
![configMap-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2020.png)
В volumes на уровня деплоймента в спецификации указывается конфиг мап, и имя конфиг мапа.
@ -4095,7 +4096,7 @@ ram, io, network) для docker контейнера? Как это
- **ReadWriteMany** - том может быть смонтирован к множеству подов в режиме чтения и записи
- Схема статической и динамической
![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%2021.png)
![pvc-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2021.png)
**Статическое**.
@ -4353,7 +4354,7 @@ ram, io, network) для docker контейнера? Как это
- **Develop** ветка, в которой объединяются и тестируются все отдельные разработки. После прохождения проверок они отправляются в master.
- **Feature** отдельная ветка для каждой новой функциональности, изменения из которой отправляются в develop.
![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%2022.png)
![gitflow-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2022.png)
---
@ -4364,7 +4365,7 @@ ram, io, network) для docker контейнера? Как это
ssh
![%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%2023.png](%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%2023.png)
![crypto-img](https://github.com/Swfuse/devops-interview/blob/main/imgs/Untitled%2023.png)
Машина принимает подключение по 22му порту