0 Голосов

Изменения документа DevOps

Редактировал(а) Anton Krivchenkov 06.01.2025 19:01

От версии 2.5
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
Изменить комментарий: К данной версии нет комментариев
К версии 2.1
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,5 +3,3 @@
1 -ВОПРОСЫ для проверки знаний:
2 -
3 3  {{toc/}}
4 4  
5 5  ![[devOps.jpg|devOps.jpg]]
... ... @@ -7,10 +7,11 @@
7 7  Порядок изучения технологий для DevOps: [https://roadmap.sh/r/devops-fork-hzrp1](https://roadmap.sh/r/devops-fork-hzrp1) и комментарии к порядку изучения технологий:
8 8  
9 9  1. Выучить основы bash и python/go (дополнительная информация ниже в Базовые знания Linux, сетей и bash скриптов)
10 -1. Из операционных систем советую поставить себе Ubuntu: [https://ubuntu.com/desktop](https://ubuntu.com/desktop)
8 +1.
11 11  
12 -> Большинство серверов работают на linux и Ubuntu будет удобен в обычном пользовании и подготовке к работе
10 +Из операционных систем советую поставить себе Ubuntu: [https://ubuntu.com/desktop](https://ubuntu.com/desktop)
13 13  
12 +> Большинство серверов работают на linux и Ubuntu будет удобен в обычном пользовании и подготовке к работе
14 14  1. Из текстовых редакторов научиться открывать файлы и редактировать в nano, а также в vim (если удобно)
15 15  1. По терминалу вся информация будет в Базовые знания Linux, сетей и bash скриптов
16 16  1. По системе контроля версий git ниже в Git система контроля версий и автоматизация с помощью GitLab CI/CD
... ... @@ -33,7 +33,7 @@
33 33  * Канал от создателей платных курсов Merion Academy на котором рассказывают про технологии из RoadMap выше простыми словами: [https://www.youtube.com/watch?v=NtGN7Nz6I0c](https://www.youtube.com/watch?v=NtGN7Nz6I0c)
34 34  * Хороший канал по devops, все видео смотреть на скорости 1.25 (если не хотите заснуть): [https://www.youtube.com/@pavlenkoat/playlists](https://www.youtube.com/@pavlenkoat/playlists)
35 35  
36 -#### ​Базовые знания Linux, сетей и bash скриптов​
35 +​Базовые знания Linux, сетей и bash скриптов​
37 37  
38 38  | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
39 39  | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
... ... @@ -41,15 +41,19 @@
41 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 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 43  
44 -#### ​Git система контроля версий и автоматизация с помощью GitLab CI/CD​
43 +</details>
45 45  
45 +​Git система контроля версий и автоматизация с помощью GitLab CI/CD​
46 +
46 46  | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
47 47  | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
48 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 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 50  
51 -#### ​Контейнеризация с помощью Docker и Kubernetes
52 +</details>
52 52  
54 +​Контейнеризация с помощью Docker и Kubernetes​
55 +
53 53  | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
54 54  | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
55 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/) |
... ... @@ -60,8 +60,10 @@
60 60  * Docker: [https://roadmap.sh/docker](https://roadmap.sh/docker)
61 61  * Kubernetes: [https://roadmap.sh/kubernetes](https://roadmap.sh/kubernetes)
62 62  
63 -#### ​Мониторинг, золотые сигналы и логгирование​
66 +</details>
64 64  
68 +​Мониторинг, золотые сигналы и логгирование​
69 +
65 65  | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
66 66  | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
67 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) |
... ... @@ -78,18 +78,6 @@
78 78  
79 79  Пример алерта в AlertManager который срабатывает по условию из Prometheus
80 80  
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 -
93 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 94  
95 95  Примеры работы с логами в ELK:
... ... @@ -99,12 +99,9 @@
99 99  
100 100  Логи которые попадут в Elasticsearch (формат JSON):
101 101  
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 -```
95 +</details>
106 106  
107 -#### ​IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible​
97 +​IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible​
108 108  
109 109  | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? |
110 110  | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
... ... @@ -113,144 +113,141 @@
113 113  
114 114  Генерация пары SSH ключей:
115 115  
116 - ssh-keygen -t ed25519 -C 'ВАШ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ'
117 -
118 118  Файловая структура Ansible role:
119 119  
120 - roles/ # роли хранятся в папке 'roles'
121 - prometheus/ # имя роли, в нашем случае 'prometheus'
122 - tasks/
123 - main.yml # ниже пример файла
124 - files/
125 - prometheus.conf # файл который будет скопирован на удаленную машину
126 - vars/
127 - main.yml # переменные для данной роли, например версия prometheus
128 - defaults/
129 - main.yml # самые базовые переменные по умолчанию, имеют ниже приоритет чем 'vars' выше
130 -
131 131  Пример файла roles/prometheus/tasks/main.yml:
132 132  
133 -```yaml
134 -- name: Install prometheus # устанавливаем prometheus на удаленном сервере
135 - ansible.builtin.apt:
136 - name: prometheus # какую программу будет устанавливать
110 +</details>
137 137  
138 -- name: Copy prometheus config to remote hosts # имя задачи, чтобы мы понимали что делает
139 - ansible.builtin.copy:
140 - src: prometheus.conf # где файл лежит у нас на компе
141 - dest: /etc/prometheus/prometheus.conf # то куда файл попадет на удаленных хостах
142 - owner: aider # кто будет хозяином файла на удаленной машине
143 - group: aider # какая группа будет у файла на удаленной машине
144 - mode: u=rw,g=r,o=r # какие права будут у файла на удаленной машине
112 +​Вопросы на собеседовании​
145 145  
146 -- name: restart prometheus # перезапустить prometheus
147 - service:
148 - name: prometheus # с каким сервисом будем работать
149 - state: restarted # перезапустить prometheus
150 - enabled: yes # запускать nginx при перезапуске системы
151 -```
114 +Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/)
152 152  
153 ----
116 +### Linux
154 154  
155 -### ​Вопросы на собеседовании​
118 +1.
156 156  
157 -Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/)
120 +Что такое systemd
121 + 1. Где находится конфигурация
122 + 1. Какие основные поля в конфигурации
123 +1.
158 158  
159 -### Linux
125 +Какие есть kill сигналы?
126 + 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется?
127 +1.
160 160  
161 -1. Что такое systemd
162 - 1. Где находится конфигурация
163 - 2. Какие основные поля в конфигурации
164 -2. Какие есть kill сигналы?
165 - 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется?
166 -3. Что такое ядро Linux?
167 - 1. Как посмотреть веросию ядра Linux?
168 - 2. Что такое системные и вызовы и какие бывают?
169 -4. Какой командой посмотреть сетевые интерфейсы?
170 -5. Какой командой посмотреть какие приложения занимают те или иные порты?
171 -6. Как забрать права на доступ к файлу или директории в linux?
172 -7. Как можно запланировать выполнение комманды по расписанию, например каждую минуту?
173 - 1. Как помотреть список уже запланированных заданий?
174 -8. Что такое SSH?
175 - 1. Что нужно чтобы подключиться к удаленному серверу через SSH?
176 - 2. Как посмотреть запущен ли SSH сервер на linux хосте?
177 - 3. Где находится конфигурация SSH сервера?
178 - 4. Где хранятся ssh ключи текущего пользователя?
179 -9. Как установить программму в Linux Ubuntu?
180 - 10. Как обновить все программы?
181 - 11. Как посмотреть информацию о комманде или программе?
182 -12. Как заменить одно слово на другое в файле?
183 -13. Как редактировать файл в Linux?
184 - 1. Что такое файловый дискриптор?
185 -14. Как посмотреть запущенные процессы?
186 -15. Как завершить запущенный процесс grafana?
129 +Что такое ядро Linux?
130 + 1. Как посмотреть веросию ядра Linux?
131 + 1. Что такое системные и вызовы и какие бывают?
132 +1. Какой командой посмотреть сетевые интерфейсы?
133 +1. Какой командой посмотреть какие приложения занимают те или иные порты?
134 +1. Как забрать права на доступ к файлу или директории в linux?
135 +1.
187 187  
137 +Как можно запланировать выполнение комманды по расписанию, например каждую минуту?
138 + 1. Как помотреть список уже запланированных заданий?
139 +1.
188 188  
141 +Что такое SSH?
142 + 1. Что нужно чтобы подключиться к удаленному серверу через SSH?
143 + 1. Как посмотреть запущен ли SSH сервер на linux хосте?
144 + 1. Где находится конфигурация SSH сервера?
145 + 1. Где хранятся ssh ключи текущего пользователя?
146 +1. Как установить программму в Linux Ubuntu?
147 +1. Как обновить все программы?
148 +1. Как посмотреть информацию о комманде или программе?
149 +1. Как заменить одно слово на другое в файле?
150 +1.
189 189  
152 +Как редактировать файл в Linux?
153 + 1. Что такое файловый дискриптор?
154 +1. Как посмотреть запущенные процессы?
155 +1. Как завершить запущенный процесс grafana?
156 +
190 190  ### Git
191 191  
192 -1. Как создать новую ветку?
193 - 1. Как переключиться на другую ветку?
194 -2. Как откатиться на несколько версий назад чтобы последние изменения ищезли?
195 -3. Как отправить наши текущие изменения в удаленный репозиторий?
196 -4. Как выполнить добавление изменений из одной ветки в другую?
197 - 1. Что делать если при этом возник конфликт?
198 -5. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)?
199 -6. Чем отличается tag от branch?
200 -7. Чем отличается fetch от pull?
159 +1.
201 201  
161 +Как создать новую ветку?
162 + 1. Как переключиться на другую ветку?
163 +1. Как откатиться на несколько версий назад чтобы последние изменения ищезли?
164 +1. Как отправить наши текущие изменения в удаленный репозиторий?
165 +1.
166 +
167 +Как выполнить добавление изменений из одной ветки в другую?
168 + 1. Что делать если при этом возник конфликт?
169 +1. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)?
170 +1. Чем отличается tag от branch?
171 +1. Чем отличается fetch от pull?
172 +
202 202  ### GitLab
203 203  
204 -1. Что такое GitLab CI/CD и CI/CD в целом?
205 - 1. Какие поля есть в шагах (stages)?
206 - 2. Как хранить пароли?
207 - 3. Как сделать так чтобы два или больше шагов запускались одновременно?
208 -2. Что такое артефакты и где они хранятся
209 -3. Что такое stage, preprod, prod окружения?
210 -4. Как склонировать себе локально git репозиторий из gitlab используя ssh?
175 +1.
211 211  
177 +Что такое GitLab CI/CD и CI/CD в целом?
178 + 1. Какие поля есть в шагах (stages)?
179 + 1. Как хранить пароли?
180 + 1. Как сделать так чтобы два или больше шагов запускались одновременно?
181 +1. Что такое артефакты и где они хранятся
182 +1. Что такое stage, preprod, prod окружения?
183 +1. Как склонировать себе локально git репозиторий из gitlab используя ssh?
184 +
212 212  ### Сеть и сетевые технологии
213 213  
214 -1. Что такое прокси и чем отличается от VPN?
215 -2. Что такое балансировщик нагрузки?
216 -3. Что такое кэширующий сервер и какие проблемы решает?
217 -4. Что такое выделенный IP адресс в cloud?
218 - 1. Как правильно ограничить трафик к нашему приложению чтобы оно было доступно только нам?
219 -5. Какие есть уровни модели TCP/IP и пример протоколов на каждом из них?
220 - 1. В чем разница между TCP и UDP?
221 - 1. Что такое трехстороннее рукопожатие?
222 - 2. В чем разница между HTTP и HTTPS?
223 - 1. Опишите жизненный цикл запроса HTTP
224 - 2. Какие существуют методы HTTP?
225 - 3. Какие существуют коды/статусы ответа HTTP?
226 - 4. Какие распространненые заголовки HTTP?
227 - 3. Что такое TLS и как работает?
228 - 4. Что такое SMTP и как работает?
229 - 5. В чем разница между IP и MAC адресами? Для чего они используется?
230 - 6. Какие основные виды HTTP запросов существуют?
231 -6. Что такое TTL (Time to Live)?
232 -7. Как работает DHCP?
233 -8. Что такое DNS сервер?
234 - 1. По какому протоколу работает?
235 - 2. Что должен делать если не нашел запись у себя в конфигурации?
187 +1. Что такое прокси и чем отличается от VPN?
188 +1. Что такое балансировщик нагрузки?
189 +1. Что такое кэширующий сервер и какие проблемы решает?
190 +1.
236 236  
192 +Что такое выделенный IP адресс в cloud?
193 + 1. Как правильно ограничить трафик к нашему приложению чтобы оно было доступно только нам?
194 +1.
195 +
196 +Какие есть уровни модели TCP/IP и пример протоколов на каждом из них?
197 + 1.
198 +
199 +В чем разница между TCP и UDP?
200 + 1. Что такое трехстороннее рукопожатие?
201 + 1.
202 +
203 +В чем разница между HTTP и HTTPS?
204 + 1. Опишите жизненный цикл запроса HTTP
205 + 1. Какие существуют методы HTTP?
206 + 1. Какие существуют коды/статусы ответа HTTP?
207 + 1. Какие распространненые заголовки HTTP?
208 + 1. Что такое TLS и как работает?
209 + 1. Что такое SMTP и как работает?
210 + 1. В чем разница между IP и MAC адресами? Для чего они используется?
211 + 1. Какие основные виды HTTP запросов существуют?
212 +1. Что такое TTL (Time to Live)?
213 +1. Как работает DHCP?
214 +1.
215 +
216 +Что такое DNS сервер?
217 + 1. По какому протоколу работает?
218 + 1. Что должен делать если не нашел запись у себя в конфигурации?
219 +
237 237  ### Docker и работа с упакованными в контейнер приложениями
238 238  
239 -1. Чем контейнеризация Docker отличается от виртуализации?
240 -2. Чем отличается контейнер от образа (image)?
241 -3. Как создать свой образ docker?
242 - 1. Что такое базовый образ?
243 - 2. Чем хорошо образ alpine linux и чем он отличается например от образа ubuntu linux?
244 - 3. В чем отличия между COPY и ADD?
245 - 4. Есть ли отличия между CMD и ENTRYPOINT и можно ли их использовать вместе?
246 - 5. Где лучше хранить собраные образы docker?
247 -4. Как запустить несколько образов вместе на своем компьютере для тестирования?
248 - 1. Можно ли в docker compose ограничить использование RAM и CPU для отдельных контейнеров?
249 - 2. Сохранятся ли данные записанные приложением в контенйнере на диск после его перезапуска?
250 - 3. Что такое volumes и для каких приложений использовать их нужно?
251 - 4. Как настроить контейнер так чтобы он перезапускался сам если приложение внутри сломается?
252 -5. Где хранятся volumes и logs в docker?
222 +1. Чем контейнеризация Docker отличается от виртуализаии?
223 +1. Чем отличается контейнер от образа (image)?
224 +1.
253 253  
226 +Как создать свой образ docker?
227 + 1. Что такое базовый образ?
228 + 1. Чем хорошо образ alpine linux и чем он отличается например от образа ubuntu linux?
229 + 1. В чем отличия между COPY и ADD?
230 + 1. Есть ли отличия между CMD и ENTRYPOINT и можно ли их использовать вместе?
231 + 1. Где лучше хранить собраные образы docker?
232 +1.
233 +
234 +Как запустить несколько образов вместе на своем компьютере для тестирования?
235 + 1. Можно ли в docker compose ограничить использование RAM и CPU для отдельных контейнеров?
236 + 1. Сохранятся ли данные записанные приложением в контенйнере на диск после его перезапуска?
237 + 1. Что такое volumes и для каких приложений использовать их нужно?
238 + 1. Как настроить контейнер так чтобы он перезапускался сам если приложение внутри сломается?
239 +1. Где хранятся volumes и logs в docker?
240 +
254 254  ### Облачные технологии
255 255  
256 256  1. Для чего нам вообще нужны облака?
... ... @@ -264,42 +264,60 @@
264 264  
265 265  ### Kubernetes или коротко k8s
266 266  
267 -1. Какие компоненты должны быть установлены на master node?
268 - 1. А какие на worker node?
269 -2. Что такое etcd?
270 - 1. Какой тип у этой базы данных?
271 - 2. Почему в etcd должно быть нечетное количество реплик?
272 -3. Как настраивается сеть в k8s?
273 - 1. Что такое CNI?
274 - 2. Каким образом каждому pod выдается отдельный IP?
275 -4. Что такое service?
276 - 1. Как с помощью service обратиться к pod в другом namespace?
277 - 2. Является ли service DNS именем?
278 - 3. По какому правилу service будет распределять трафик между pod?
279 - 4. Чем отличаются service вида headless и clusterIP?
280 -5. Какие виды prob вы знаете?
281 - 1. Для чего нужна каждая из них?
282 -6. Сколько контейнеров может быть в одном pod?
283 - 1. Нужно ли создавать service для того чтобы контейнеры отправляли друг другу запросы в рамках одного pod?
284 -7. Какие ingress контроллеры вы знаете?
285 - 1. Что такое ingress, какие ресурсы он связывает на сетевом уровне?
286 - 2. Как в ingress использовать SSL сертификаты?
287 -8. Чем отличаются annotations от labels и приведите по одному примеру использования?
288 -9. Основные различия между Deployment, StatefulSet и DaemonSet?
289 -10. Что такое lifecycle хуки?
290 - 1. Для чего используется preStop хук с `sleep 10` функцией?
291 -11. Для чего нужны лимиты (limits) и запросы (requests) у pod?
292 - 1. HPA при расчетах использует limits или requests?
293 - 2. Планировщик при выборе на какую node размещать pod учитывает limits?
294 -12. Каким образом можем ограничить права пользователей в k8s?
295 -13. Чем так удобны helm charts?
296 - 14. Какие основные компоненты чарта?
297 - 15. Что находится в файле `values.yaml` и `Chart.yaml`?
298 - 16. Для чего в папке templates создают файл `_helpers.tpl`?
299 - 17. Как создать цикл который создаст несколько сущностей (например ports в service)?
300 - 18. Как сделать условный оператор для boolean значений и для строк?
301 - 19. Что будет записано вместо темплейта `{{ divf .Values.replicaCount .Values.zones | ceil }}`? Как может пригодиться читать тут https://github.com/eabykov/devops-kubernetes/blob/main/ЛУЧШИЕ_ПРАКТИКИ.md в коментарие к разделу *Распределите ваши pod по разным node и разным зонам (датацентрам)*
254 +1.
302 302  
256 +Какие компоненты должны быть установлены на master node?
257 + 1. А какие на worker node?
258 +1.
259 +
260 +Что такое etcd?
261 + 1. Какой тип у этой базы данных?
262 + 1. Почему в etcd должно быть нечетное количество реплик?
263 +1.
264 +
265 +Как настраивается сеть в k8s?
266 + 1. Что такое CNI?
267 + 1. Каким образом каждому pod выдается отдельный IP?
268 +1.
269 +
270 +Что такое service?
271 + 1. Как с помощью service обратиться к pod в другом namespace?
272 + 1. Является ли service DNS именем?
273 + 1. По какому правилу service будет распределять трафик между pod?
274 + 1. Чем отличаются service вида headless и clusterIP?
275 +1.
276 +
277 +Какие виды prob вы знаете?
278 + 1. Для чего нужна каждая из них?
279 +1.
280 +
281 +Сколько контейнеров может быть в одном pod?
282 + 1. Нужно ли создавать service для того чтобы контейнеры отправляли друг другу запросы в рамках одного pod?
283 +1.
284 +
285 +Какие ingress контроллеры вы знаете?
286 + 1. Что такое ingress, какие ресурсы он связывает на сетевом уровне?
287 + 1. Как в ingress использовать SSL сертификаты?
288 +1. Чем отличаются annotations от labels и приведите по одному примеру использования?
289 +1. Основные различия между Deployment, StatefulSet и DaemonSet?
290 +1.
291 +
292 +Что такое lifecycle хуки?
293 + 1. Для чего используется preStop хук с sleep 10 функцией?
294 +1.
295 +
296 +Для чего нужны лимиты (limits) и запросы (requests) у pod?
297 + 1. HPA при расчетах использует limits или requests?
298 + 1. Планировщик при выборе на какую node размещать pod учитывает limits?
299 +1. Каким образом можем ограничить права пользователей в k8s?
300 +1. Чем так удобны helm charts?
301 +1. Какие основные компоненты чарта?
302 +1. Что находится в файле values.yaml и Chart.yaml?
303 +1. Для чего в папке templates создают файл _helpers.tpl?
304 +1. Как создать цикл который создаст несколько сущностей (например ports в service)?
305 +1. Как сделать условный оператор для boolean значений и для строк?
306 +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 и разным зонам (датацентрам)_
307 +
303 303  ### Vault
304 304  
305 305  1. Для чего нужен Vault?
... ... @@ -313,3 +313,5 @@
313 313  1. Что нужно сделать в приложении чтобы его трейсы появились в Jaeger?
314 314  
315 315  ### Flux и Flagger (канареечные релизы)
321 +
322 +