0 Голосов

Исходный код вики DevOps

Версия 2.2 от Anton Krivchenkov на 06.01.2025 19:01

Скрыть последних авторов
Anton Krivchenkov 2.2 1 ВОПРОСЫ для проверки знаний:
2
Anton Krivchenkov 2.1 3 {{toc/}}
4
Anton Krivchenkov 1.1 5 ![[devOps.jpg|devOps.jpg]]
Anton Krivchenkov 2.1 6
7 Порядок изучения технологий для DevOps: [https://roadmap.sh/r/devops-fork-hzrp1](https://roadmap.sh/r/devops-fork-hzrp1) и комментарии к порядку изучения технологий:
8
9 1. Выучить основы bash и python/go (дополнительная информация ниже в Базовые знания Linux, сетей и bash скриптов)
Anton Krivchenkov 2.2 10 1. Из операционных систем советую поставить себе Ubuntu: [https://ubuntu.com/desktop](https://ubuntu.com/desktop)
Anton Krivchenkov 2.1 11
Anton Krivchenkov 2.2 12 > Большинство серверов работают на linux и Ubuntu будет удобен в обычном пользовании и подготовке к работе
Anton Krivchenkov 2.1 13
14 1. Из текстовых редакторов научиться открывать файлы и редактировать в nano, а также в vim (если удобно)
15 1. По терминалу вся информация будет в Базовые знания Linux, сетей и bash скриптов
16 1. По системе контроля версий git ниже в Git система контроля версий и автоматизация с помощью GitLab CI/CD
17 1. По контейнеризации изучать Docker, ниже в Контейнеризация с помощью Docker и Kubernetes
18 1. Насчет Облачных провайдеров, в России лучше использовать Yandex Cloud, SberCloud или VK Cloud
19 1. Сети изучать ниже в Базовые знания Linux, сетей и bash скриптов
20 1. Изучать Terraform и Ansible как IaC (инфраструктуру как код, ниже в IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible)
21 1. CI/CD проще изучать на основе GitHub Actions, а потом GitLab CI/CD (автоматизация)
22 1. Мониторинг ниже в пункте Мониторинг, золотые сигналы и логгирование
23 1. Управление паролями, секретными данными или ключами с помощью Vault
24 1. Мониторинг приложений: Jaeger Tracing, Sentry
25 1. Управление логами Graylog и Loki, тоже ниже в Мониторинг, золотые сигналы и логгирование
26 1. Под Kubenretes тоже отдельный пункт ниже совместо с Docker (в последних версиях Kubenretes отказались от Docker)
27 1. Хранение собраных приложений, docker образов, helm чартов: Nexus и Artifactory
28 1. Наблюдаемость и управление сетевым трафиком в Kubenretes: istio или linkerd (ниже в пункте с Kubenretes)
29
30 Полезные youtube каналы:
31
32 * Канал с плейлистами по которым учились многие devops инженеры: [https://www.youtube.com/@ADV-IT/playlists](https://www.youtube.com/@ADV-IT/playlists)
33 * Канал от создателей платных курсов Merion Academy на котором рассказывают про технологии из RoadMap выше простыми словами: [https://www.youtube.com/watch?v=NtGN7Nz6I0c](https://www.youtube.com/watch?v=NtGN7Nz6I0c)
34 * Хороший канал по devops, все видео смотреть на скорости 1.25 (если не хотите заснуть): [https://www.youtube.com/@pavlenkoat/playlists](https://www.youtube.com/@pavlenkoat/playlists)
35
Anton Krivchenkov 2.2 36 #### ​Базовые знания Linux, сетей и bash скриптов​
Anton Krivchenkov 2.1 37
38 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
39 | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40 | Linux - ядро операционной системы, например Ubuntu построена на базе Linux. Пройти курс [https://youtu.be/wdaHKwvNRuU?si=UnvTogPjiVOE5PEc](https://youtu.be/wdaHKwvNRuU?si=UnvTogPjiVOE5PEc) и сделать все задания [https://github.com/eabykov/devops-linux](https://github.com/eabykov/devops-linux) | Может устанавливать программы, знает основные команды и может их применять, что такое ядро linux, знает какие основные папки есть в /, отвечает на вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/linux](https://github.com/bregman-arie/devops-exercises/tree/master/topics/linux) и [https://github.com/bregman-arie/devops-exercises#operating-system---self-assessment](https://github.com/bregman-arie/devops-exercises#operating-system---self-assessment) |
41 | Linux скрипты - простые сценарии, автоматизация рутинных задач. Задание: сделать скрипты для всех заданий [https://github.com/eabykov/devops-linux](https://github.com/eabykov/devops-linux) и задания 2,5,9 в [https://github.com/bregman-arie/devops-exercises/tree/master/topics/shell](https://github.com/bregman-arie/devops-exercises/tree/master/topics/shell) | Умеет создавать и использовать переменные, может применять условный оператор IF и использовать CASE, умеет использовать циклы, вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/shell](https://github.com/bregman-arie/devops-exercises/tree/master/topics/shell) |
42 | Сети и сетевые технологии - как сервера (настольные ПК и тд) обьединяются в общую сеть для обмена информацией, пример интернет, глобальная сеть обьединяющая компьютеры по всему миру. Прочесть статью [https://habr.com/ru/post/326574/](https://habr.com/ru/post/326574/) , [https://ru.wikipedia.org/wiki/](https://ru.wikipedia.org/wiki/)Маска_подсети и [https://habr.com/ru/post/711578/](https://habr.com/ru/post/711578/) , посмотреть про websocket [https://youtu.be/19d4AXt3dSI](https://youtu.be/19d4AXt3dSI) | Как подключиться по SSH и как работает SSH, что такое 'пакет', уровни TCP/IP, что такое DNS, что такое HTTP/HTTPS протокол и REST API, что такое IP и маска подсети, как на linux посмотреть сетевые интерфейсы, сниффинг трафика, что такое Nginx (как выглядит конфиг) и round-robin балансировка, вопросы [https://github.com/bregman-arie/devops-exercises#network](https://github.com/bregman-arie/devops-exercises#network) и [https://github.com/bregman-arie/devops-exercises/tree/master/topics/dns](https://github.com/bregman-arie/devops-exercises/tree/master/topics/dns) |
43
Anton Krivchenkov 2.2 44 #### ​Git система контроля версий и автоматизация с помощью GitLab CI/CD​
Anton Krivchenkov 2.1 45
46 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
47 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
48 | Git - система управления версиями для совместной работы над проектом и в случае чего удобному восстановлению к более старой версии [https://youtu.be/EeARyFrZsnU](https://youtu.be/EeARyFrZsnU) . Пройти курс [https://www.youtube.com/watch?list=PLg5SS_4L6LYstwxTEOU05E0URTHnbtA0l](https://www.youtube.com/watch?list=PLg5SS_4L6LYstwxTEOU05E0URTHnbtA0l) до 15 урока и создать свой репозиторий на github с несколькими ветками и тегами | Знает что такое commit и как его делать, умеет делать branch и tag и знает в чем между ними разница, знает что такое merge и как исправлять конфликты, знает как откатиться на более старую версию, как склонировать репозиторий локально и как загрузить свои изменения в github, в чем разница межу fetch и pull, вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/git](https://github.com/bregman-arie/devops-exercises/tree/master/topics/git) |
49 | CI/CD - выполнение автоматически действий по триггеру, например commit в master, создание merge, создание tag или cron расписанию. В курсе [https://www.youtube.com/watch?list=PLg5SS_4L6LYstwxTEOU05E0URTHnbtA0l](https://www.youtube.com/watch?list=PLg5SS_4L6LYstwxTEOU05E0URTHnbtA0l) 15й и 16й, [https://youtu.be/tE3u1LquFcg?t=212](https://youtu.be/tE3u1LquFcg?t=212) скорость 1.25, [https://github.com/gitlabhq/gitlabhq/blob/master/doc/ci/docker/using_kaniko.md](https://github.com/gitlabhq/gitlabhq/blob/master/doc/ci/docker/using_kaniko.md) .gitlab-ci.yml как собирать Docker Image в GitLab правильно | Сделал автоматическую сборку своего Docker Image и отправку dockerhub хранилище образов (хранилище образов называют registry), GitLab CI/CD основные понятия, из каких шагов состоит идеальный CI/CD пайплайн, вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/cicd](https://github.com/bregman-arie/devops-exercises/tree/master/topics/cicd) |
50
Anton Krivchenkov 2.2 51 #### ​Контейнеризация с помощью Docker и Kubernetes​
Anton Krivchenkov 2.1 52
53 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
54 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
55 | Docker - упаковка приложения в image в котором будет все что нужно для запуска [https://youtu.be/aZTL2zRmOnA](https://youtu.be/aZTL2zRmOnA) | Понимает зачем нужен docker, умеет создавать свой образ и пушить его в dockerhub, умеет запускать несколько образов вместе используя compose, вопросы [https://habr.com/ru/company/southbridge/blog/528206/](https://habr.com/ru/company/southbridge/blog/528206/) |
56 | Kubernetes - приводит состояние кластера из пункта А в пункт С, нужно только обьяснить с помощью yaml манифестов чего хотим в пункте С. Пройти курс [https://learn.microsoft.com/ru-ru/training/modules/intro-to-kubernetes/](https://learn.microsoft.com/ru-ru/training/modules/intro-to-kubernetes/) вместе с [https://github.com/eabykov/kubernetes](https://github.com/eabykov/kubernetes) и поставить локально linkerd (посмотреть какие сервисы взаимодействуют, есть ли ошибки, сколько запросов в секунду) | Понимает зачем нужен Kubernetes, как устанавливать приложения через helm, вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/kubernetes](https://github.com/bregman-arie/devops-exercises/tree/master/topics/kubernetes) |
57
58 Примерный порядок изучения технологии:
59
60 * Docker: [https://roadmap.sh/docker](https://roadmap.sh/docker)
61 * Kubernetes: [https://roadmap.sh/kubernetes](https://roadmap.sh/kubernetes)
62
Anton Krivchenkov 2.2 63 #### ​Мониторинг, золотые сигналы и логгирование​
Anton Krivchenkov 2.1 64
65 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
66 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
67 | Мониторинг - сбор исторических данных о нашей системе [https://youtu.be/wDan20_WyNg](https://youtu.be/wDan20_WyNg) использовать пример [https://github.com/ruanbekker/docker-monitoring-stack-gpnc](https://github.com/ruanbekker/docker-monitoring-stack-gpnc) , Linux серверах, показателей приложений и их логов, сетевых метрик, и оповещение, если что-то пошло не так. Prometheus + Grafana + любые экспортеры, ELK стек [https://youtu.be/ZcC3BTChCY0?t=110](https://youtu.be/ZcC3BTChCY0?t=110) и [https://github.com/docker/awesome-compose/tree/master/elasticsearch-logstash-kibana](https://github.com/docker/awesome-compose/tree/master/elasticsearch-logstash-kibana) , Трейсинг [https://youtu.be/7Dyf4AiUAcQ](https://youtu.be/7Dyf4AiUAcQ) | Понимает как создавать алерты (оповещения), может настроить мониторинг Docker, linux host, в Kubernetes установить [https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack) , вопросы [https://github.com/bregman-arie/devops-exercises#prometheus](https://github.com/bregman-arie/devops-exercises#prometheus) , [https://github.com/bregman-arie/devops-exercises#monitoring](https://github.com/bregman-arie/devops-exercises#monitoring) и [https://github.com/bregman-arie/devops-exercises#elastic](https://github.com/bregman-arie/devops-exercises#elastic) |
68
69 Логгирование в Kubernetes: [https://kubernetes.io/docs/concepts/cluster-administration/logging/](https://kubernetes.io/docs/concepts/cluster-administration/logging/)
70
71 Золотые сигналы: [https://habr.com/ru/companies/southbridge/articles/688082/](https://habr.com/ru/companies/southbridge/articles/688082/)
72
73 * Процент успешных запросов
74 * RPS (requests per second) - количество запросов в секунду
75 * время обработки запросов
76
77 Автоматический мониторинг золотых сигналов (Golden metrics) с помощью Linkerd: [https://linkerd.io/2.13/features/telemetry/](https://linkerd.io/2.13/features/telemetry/)
78
79 Пример алерта в AlertManager который срабатывает по условию из Prometheus
80
Anton Krivchenkov 2.2 81 ```yaml
82 - name: Host out of memory
83 # description - описание алерта, более детальное пояснение о чем он
84 description: Node memory is filling up (< 10% left)
85 # query - запрос в случае которого будет срабатывать алерт, правило (например памяти меньше 10%)
86 query: '(node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10) * on(instance) group_left (nodename) node_uname_info{nodename=~".+"}'
87 # severity - уровень алертинга, важность, например warning это предупреждение, а critical критично и опасно - самый большой приоритет
88 severity: warning
89 # for - сколько минут должно соблюдаться 'query' выше, 0m сработает алерт сразу, 2m правило в query должно соблюдаться 2 минуты
90 for: 2m
91 ```
92
Anton Krivchenkov 2.1 93 > Готовые алерты брать тут: [https://github.com/samber/awesome-prometheus-alerts/blob/master/_data/rules.yml](https://github.com/samber/awesome-prometheus-alerts/blob/master/_data/rules.yml)
94
95 Примеры работы с логами в ELK:
96
97 * Приложения database записывает логи на диск в файл: 2023-10-11 18:45:01 INFO Application ready
98 * Приложения web-app записывает логи на диск в файл: 18:45:02 2023-10-11 error: failed to start
99
100 Логи которые попадут в Elasticsearch (формат JSON):
101
Anton Krivchenkov 2.2 102 ```json
103 {"program_name": "database", "date": "2023-10-11", "time": "18:45:01", "level": "INFO", "message": "Application ready"}
104 {"program_name": "web-app", "date": "2023-10-11", "time": "18:45:02", "level": "ERROR", "message": "failed to start"}
105 ```
Anton Krivchenkov 2.1 106
Anton Krivchenkov 2.2 107 #### ​IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible​
Anton Krivchenkov 2.1 108
109 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
110 | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
111 | Ansible - упарвляет конфигурацией хостов по SSH [https://youtu.be/23Zec3ORJOY](https://youtu.be/23Zec3ORJOY) . Пройти курс [https://www.youtube.com/watch?list=PLg5SS_4L6LYufspdPupdynbMQTBnZd31N](https://www.youtube.com/watch?list=PLg5SS_4L6LYufspdPupdynbMQTBnZd31N) 1,6,10,12,14,15,19 не по названию | Понимает зачем нужен Ansible, что такое идемпотентность, что такое playbook, умеет писать свои роли, вопросы [https://github.com/bregman-arie/devops-exercises/tree/master/topics/ansible](https://github.com/bregman-arie/devops-exercises/tree/master/topics/ansible) |
112 | Terraform [https://youtu.be/ph4iNA0Uuko](https://youtu.be/ph4iNA0Uuko) . Пройти курс [https://www.youtube.com/watch?list=PLg5SS_4L6LYujWDTYb-Zbofdl44Jxb2l8](https://www.youtube.com/watch?list=PLg5SS_4L6LYujWDTYb-Zbofdl44Jxb2l8) 1,3,6,7,12,14,16,18 не по названию | Понимает зачем нужен Terraform, знает как создавать ресурсы (например виртуальную машину), где хранится состояние (информация) о том что сделал terraform, вопросы [https://habr.com/ru/company/southbridge/blog/528206/](https://habr.com/ru/company/southbridge/blog/528206/) |
113
114 Генерация пары SSH ключей:
115
116 Файловая структура Ansible role:
117
118 Пример файла roles/prometheus/tasks/main.yml:
119
120 </details>
121
122 ​Вопросы на собеседовании​
123
124 Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/)
125
126 ### Linux
127
Anton Krivchenkov 2.2 128 1.
Anton Krivchenkov 2.1 129
Anton Krivchenkov 2.2 130 Что такое systemd 1. Где находится конфигурация 1. Какие основные поля в конфигурации 1.
Anton Krivchenkov 2.1 131
Anton Krivchenkov 2.2 132 Какие есть kill сигналы? 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется? 1.
Anton Krivchenkov 2.1 133
Anton Krivchenkov 2.2 134 Что такое ядро Linux? 1. Как посмотреть веросию ядра Linux? 1. Что такое системные и вызовы и какие бывают?
135
Anton Krivchenkov 2.1 136 1. Какой командой посмотреть сетевые интерфейсы?
137 1. Какой командой посмотреть какие приложения занимают те или иные порты?
138 1. Как забрать права на доступ к файлу или директории в linux?
Anton Krivchenkov 2.2 139 1.
Anton Krivchenkov 2.1 140
Anton Krivchenkov 2.2 141 Как можно запланировать выполнение комманды по расписанию, например каждую минуту? 1. Как помотреть список уже запланированных заданий? 1.
Anton Krivchenkov 2.1 142
Anton Krivchenkov 2.2 143 Что такое SSH? 1. Что нужно чтобы подключиться к удаленному серверу через SSH? 1. Как посмотреть запущен ли SSH сервер на linux хосте? 1. Где находится конфигурация SSH сервера? 1. Где хранятся ssh ключи текущего пользователя?
144
Anton Krivchenkov 2.1 145 1. Как установить программму в Linux Ubuntu?
146 1. Как обновить все программы?
147 1. Как посмотреть информацию о комманде или программе?
148 1. Как заменить одно слово на другое в файле?
Anton Krivchenkov 2.2 149 1.
Anton Krivchenkov 2.1 150
Anton Krivchenkov 2.2 151 Как редактировать файл в Linux? 1. Что такое файловый дискриптор?
152
Anton Krivchenkov 2.1 153 1. Как посмотреть запущенные процессы?
154 1. Как завершить запущенный процесс grafana?
155
156 ### Git
157
Anton Krivchenkov 2.2 158 1.
Anton Krivchenkov 2.1 159
Anton Krivchenkov 2.2 160 Как создать новую ветку? 1. Как переключиться на другую ветку?
161
Anton Krivchenkov 2.1 162 1. Как откатиться на несколько версий назад чтобы последние изменения ищезли?
163 1. Как отправить наши текущие изменения в удаленный репозиторий?
Anton Krivchenkov 2.2 164 1.
Anton Krivchenkov 2.1 165
Anton Krivchenkov 2.2 166 Как выполнить добавление изменений из одной ветки в другую? 1. Что делать если при этом возник конфликт?
167
Anton Krivchenkov 2.1 168 1. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)?
169 1. Чем отличается tag от branch?
170 1. Чем отличается fetch от pull?
171
172 ### GitLab
173
Anton Krivchenkov 2.2 174 1.
Anton Krivchenkov 2.1 175
Anton Krivchenkov 2.2 176 Что такое GitLab CI/CD и CI/CD в целом? 1. Какие поля есть в шагах (stages)? 1. Как хранить пароли? 1. Как сделать так чтобы два или больше шагов запускались одновременно?
177
Anton Krivchenkov 2.1 178 1. Что такое артефакты и где они хранятся
179 1. Что такое stage, preprod, prod окружения?
180 1. Как склонировать себе локально git репозиторий из gitlab используя ssh?
181
182 ### Сеть и сетевые технологии
183
184 1. Что такое прокси и чем отличается от VPN?
185 1. Что такое балансировщик нагрузки?
186 1. Что такое кэширующий сервер и какие проблемы решает?
Anton Krivchenkov 2.2 187 1.
Anton Krivchenkov 2.1 188
Anton Krivchenkov 2.2 189 Что такое выделенный IP адресс в cloud? 1. Как правильно ограничить трафик к нашему приложению чтобы оно было доступно только нам? 1.
Anton Krivchenkov 2.1 190
Anton Krivchenkov 2.2 191 Какие есть уровни модели TCP/IP и пример протоколов на каждом из них? 1.
Anton Krivchenkov 2.1 192
Anton Krivchenkov 2.2 193 В чем разница между TCP и UDP? 1. Что такое трехстороннее рукопожатие? 1.
Anton Krivchenkov 2.1 194
Anton Krivchenkov 2.2 195 В чем разница между HTTP и HTTPS? 1. Опишите жизненный цикл запроса HTTP 1. Какие существуют методы HTTP? 1. Какие существуют коды/статусы ответа HTTP? 1. Какие распространненые заголовки HTTP? 1. Что такое TLS и как работает? 1. Что такое SMTP и как работает? 1. В чем разница между IP и MAC адресами? Для чего они используется? 1. Какие основные виды HTTP запросов существуют?
196
Anton Krivchenkov 2.1 197 1. Что такое TTL (Time to Live)?
198 1. Как работает DHCP?
Anton Krivchenkov 2.2 199 1.
Anton Krivchenkov 2.1 200
Anton Krivchenkov 2.2 201 Что такое DNS сервер? 1. По какому протоколу работает? 1. Что должен делать если не нашел запись у себя в конфигурации?
Anton Krivchenkov 2.1 202
203 ### Docker и работа с упакованными в контейнер приложениями
204
205 1. Чем контейнеризация Docker отличается от виртуализаии?
206 1. Чем отличается контейнер от образа (image)?
Anton Krivchenkov 2.2 207 1.
Anton Krivchenkov 2.1 208
Anton Krivchenkov 2.2 209 Как создать свой образ docker? 1. Что такое базовый образ? 1. Чем хорошо образ alpine linux и чем он отличается например от образа ubuntu linux? 1. В чем отличия между COPY и ADD? 1. Есть ли отличия между CMD и ENTRYPOINT и можно ли их использовать вместе? 1. Где лучше хранить собраные образы docker? 1.
Anton Krivchenkov 2.1 210
Anton Krivchenkov 2.2 211 Как запустить несколько образов вместе на своем компьютере для тестирования? 1. Можно ли в docker compose ограничить использование RAM и CPU для отдельных контейнеров? 1. Сохранятся ли данные записанные приложением в контенйнере на диск после его перезапуска? 1. Что такое volumes и для каких приложений использовать их нужно? 1. Как настроить контейнер так чтобы он перезапускался сам если приложение внутри сломается?
212
Anton Krivchenkov 2.1 213 1. Где хранятся volumes и logs в docker?
214
215 ### Облачные технологии
216
217 1. Для чего нам вообще нужны облака?
218 1. Что такое SaaS, PaaS и IaaS, в чем между ними разница?
219 1. Что такое VPC, Security Group и EIP например в AWS?
220
221 ### Ansible и Terraform (инфраструктура как код)
222
223 1. VPC, виртуальные машины или например EIP каким бы инструментом создавал?
224 1. Устанавливал бы docker на linux машину, обновлял сервис, давал права на директорию?
225
226 ### Kubernetes или коротко k8s
227
Anton Krivchenkov 2.2 228 1.
Anton Krivchenkov 2.1 229
Anton Krivchenkov 2.2 230 Какие компоненты должны быть установлены на master node? 1. А какие на worker node? 1.
Anton Krivchenkov 2.1 231
Anton Krivchenkov 2.2 232 Что такое etcd? 1. Какой тип у этой базы данных? 1. Почему в etcd должно быть нечетное количество реплик? 1.
Anton Krivchenkov 2.1 233
Anton Krivchenkov 2.2 234 Как настраивается сеть в k8s? 1. Что такое CNI? 1. Каким образом каждому pod выдается отдельный IP? 1.
Anton Krivchenkov 2.1 235
Anton Krivchenkov 2.2 236 Что такое service? 1. Как с помощью service обратиться к pod в другом namespace? 1. Является ли service DNS именем? 1. По какому правилу service будет распределять трафик между pod? 1. Чем отличаются service вида headless и clusterIP? 1.
Anton Krivchenkov 2.1 237
Anton Krivchenkov 2.2 238 Какие виды prob вы знаете? 1. Для чего нужна каждая из них? 1.
Anton Krivchenkov 2.1 239
Anton Krivchenkov 2.2 240 Сколько контейнеров может быть в одном pod? 1. Нужно ли создавать service для того чтобы контейнеры отправляли друг другу запросы в рамках одного pod? 1.
Anton Krivchenkov 2.1 241
Anton Krivchenkov 2.2 242 Какие ingress контроллеры вы знаете? 1. Что такое ingress, какие ресурсы он связывает на сетевом уровне? 1. Как в ingress использовать SSL сертификаты?
243
Anton Krivchenkov 2.1 244 1. Чем отличаются annotations от labels и приведите по одному примеру использования?
245 1. Основные различия между Deployment, StatefulSet и DaemonSet?
Anton Krivchenkov 2.2 246 1.
Anton Krivchenkov 2.1 247
Anton Krivchenkov 2.2 248 Что такое lifecycle хуки? 1. Для чего используется preStop хук с sleep 10 функцией? 1.
Anton Krivchenkov 2.1 249
Anton Krivchenkov 2.2 250 Для чего нужны лимиты (limits) и запросы (requests) у pod? 1. HPA при расчетах использует limits или requests? 1. Планировщик при выборе на какую node размещать pod учитывает limits?
251
Anton Krivchenkov 2.1 252 1. Каким образом можем ограничить права пользователей в k8s?
253 1. Чем так удобны helm charts?
254 1. Какие основные компоненты чарта?
255 1. Что находится в файле values.yaml и Chart.yaml?
256 1. Для чего в папке templates создают файл _helpers.tpl?
257 1. Как создать цикл который создаст несколько сущностей (например ports в service)?
258 1. Как сделать условный оператор для boolean значений и для строк?
259 1. Что будет записано вместо темплейта {{ divf .Values.replicaCount .Values.zones | ceil }}? Как может пригодиться читать тут [https://github.com/eabykov/devops-kubernetes/blob/main/](https://github.com/eabykov/devops-kubernetes/blob/main/)ЛУЧШИЕ_ПРАКТИКИ.md в коментарие к разделу _Распределите ваши pod по разным node и разным зонам (датацентрам)_
260
261 ### Vault
262
263 1. Для чего нужен Vault?
264 1. Что такое KV secrets engine в vault?
265 1. Как сделать так чтобы в Kubernetes использовать например для Deployment секреты из Vault?
266
267 ### Сервисная сетка (service mesh)
268
269 ### Jaeger трейсинг запросов
270
271 1. Что нужно сделать в приложении чтобы его трейсы появились в Jaeger?
272
273 ### Flux и Flagger (канареечные релизы)