Изменения документа DevOps
Редактировал(а) Anton Krivchenkov 06.01.2025 19:01
От версии 2.1
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
на 06.01.2025 19:01
Изменить комментарий:
К данной версии нет комментариев
К версии 3.1
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
на 06.01.2025 19:01
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,3 +1,5 @@ 1 +ВОПРОСЫ для проверки знаний: 2 + 1 1 {{toc/}} 2 2 3 3 ![[devOps.jpg|devOps.jpg]] ... ... @@ -5,11 +5,10 @@ 5 5 Порядок изучения технологий для DevOps: [https://roadmap.sh/r/devops-fork-hzrp1](https://roadmap.sh/r/devops-fork-hzrp1) и комментарии к порядку изучения технологий: 6 6 7 7 1. Выучить основы bash и python/go (дополнительная информация ниже в Базовые знания Linux, сетей и bash скриптов) 8 -1. 10 +1. Из операционных систем советую поставить себе Ubuntu: [https://ubuntu.com/desktop](https://ubuntu.com/desktop) 9 9 10 -Из операционных систем советую поставить себе Ubuntu: [https://ubuntu.com/desktop](https://ubuntu.com/desktop) 11 - 12 12 > Большинство серверов работают на linux и Ubuntu будет удобен в обычном пользовании и подготовке к работе 13 + 13 13 1. Из текстовых редакторов научиться открывать файлы и редактировать в nano, а также в vim (если удобно) 14 14 1. По терминалу вся информация будет в Базовые знания Linux, сетей и bash скриптов 15 15 1. По системе контроля версий git ниже в Git система контроля версий и автоматизация с помощью GitLab CI/CD ... ... @@ -32,7 +32,7 @@ 32 32 * Канал от создателей платных курсов Merion Academy на котором рассказывают про технологии из RoadMap выше простыми словами: [https://www.youtube.com/watch?v=NtGN7Nz6I0c](https://www.youtube.com/watch?v=NtGN7Nz6I0c) 33 33 * Хороший канал по devops, все видео смотреть на скорости 1.25 (если не хотите заснуть): [https://www.youtube.com/@pavlenkoat/playlists](https://www.youtube.com/@pavlenkoat/playlists) 34 34 35 -Базовые знания Linux, сетей и bash скриптов 36 +#### Базовые знания Linux, сетей и bash скриптов 36 36 37 37 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? | 38 38 | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ... ... @@ -40,19 +40,15 @@ 40 40 | 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) | 41 41 | Сети и сетевые технологии - как сервера (настольные ПК и тд) обьединяются в общую сеть для обмена информацией, пример интернет, глобальная сеть обьединяющая компьютеры по всему миру. Прочесть статью [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) | 42 42 43 - </details>44 +#### Git система контроля версий и автоматизация с помощью GitLab CI/CD 44 44 45 -Git система контроля версий и автоматизация с помощью GitLab CI/CD 46 - 47 47 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? | 48 48 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 49 49 | 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) | 50 50 | 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) | 51 51 52 - </details>51 +#### Контейнеризация с помощью Docker и Kubernetes 53 53 54 -Контейнеризация с помощью Docker и Kubernetes 55 - 56 56 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? | 57 57 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 58 58 | 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/) | ... ... @@ -63,10 +63,8 @@ 63 63 * Docker: [https://roadmap.sh/docker](https://roadmap.sh/docker) 64 64 * Kubernetes: [https://roadmap.sh/kubernetes](https://roadmap.sh/kubernetes) 65 65 66 - </details>63 +#### Мониторинг, золотые сигналы и логгирование 67 67 68 -Мониторинг, золотые сигналы и логгирование 69 - 70 70 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? | 71 71 | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 72 72 | Мониторинг - сбор исторических данных о нашей системе [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) | ... ... @@ -83,6 +83,18 @@ 83 83 84 84 Пример алерта в AlertManager который срабатывает по условию из Prometheus 85 85 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 + 86 86 > Готовые алерты брать тут: [https://github.com/samber/awesome-prometheus-alerts/blob/master/_data/rules.yml](https://github.com/samber/awesome-prometheus-alerts/blob/master/_data/rules.yml) 87 87 88 88 Примеры работы с логами в ELK: ... ... @@ -92,9 +92,12 @@ 92 92 93 93 Логи которые попадут в Elasticsearch (формат JSON): 94 94 95 -</details> 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 +``` 96 96 97 -IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible 107 +#### IaC - (Инфраструктура как код) создание серверов с помощью Terraform и настройка с помощью Ansible 98 98 99 99 | Цель и что нужно для изучения + Задания | Как поймем что цель достигнута? | 100 100 | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ... ... @@ -103,141 +103,144 @@ 103 103 104 104 Генерация пары SSH ключей: 105 105 116 + ssh-keygen -t ed25519 -C 'ВАШ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ' 117 + 106 106 Файловая структура Ansible role: 107 107 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 + 108 108 Пример файла roles/prometheus/tasks/main.yml: 109 109 110 -</details> 133 +```yaml 134 +- name: Install prometheus # устанавливаем prometheus на удаленном сервере 135 + ansible.builtin.apt: 136 + name: prometheus # какую программу будет устанавливать 111 111 112 -Вопросы на собеседовании 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 # какие права будут у файла на удаленной машине 113 113 114 -Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/) 146 +- name: restart prometheus # перезапустить prometheus 147 + service: 148 + name: prometheus # с каким сервисом будем работать 149 + state: restarted # перезапустить prometheus 150 + enabled: yes # запускать nginx при перезапуске системы 151 +``` 115 115 116 - ### Linux153 +--- 117 117 118 - 1.155 +### Вопросы на собеседовании 119 119 120 -Что такое systemd 121 - 1. Где находится конфигурация 122 - 1. Какие основные поля в конфигурации 123 -1. 157 +Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/) 124 124 125 -Какие есть kill сигналы? 126 - 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется? 127 -1. 159 +### Linux 128 128 129 -Что такое ядро Linux? 130 - 1. Как посмотреть веросию ядра Linux? 131 - 1. Что такое системные и вызовы и какие бывают? 132 -1. Какой командой посмотреть сетевые интерфейсы? 133 -1. Какой командой посмотреть какие приложения занимают те или иные порты? 134 -1. Как забрать права на доступ к файлу или директории в linux? 135 -1. 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? 136 136 137 -Как можно запланировать выполнение комманды по расписанию, например каждую минуту? 138 - 1. Как помотреть список уже запланированных заданий? 139 -1. 140 140 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. 151 151 152 -Как редактировать файл в Linux? 153 - 1. Что такое файловый дискриптор? 154 -1. Как посмотреть запущенные процессы? 155 -1. Как завершить запущенный процесс grafana? 156 - 157 157 ### Git 158 158 159 -1. 192 +1. Как создать новую ветку? 193 + 1. Как переключиться на другую ветку? 194 +2. Как откатиться на несколько версий назад чтобы последние изменения ищезли? 195 +3. Как отправить наши текущие изменения в удаленный репозиторий? 196 +4. Как выполнить добавление изменений из одной ветки в другую? 197 + 1. Что делать если при этом возник конфликт? 198 +5. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)? 199 +6. Чем отличается tag от branch? 200 +7. Чем отличается fetch от pull? 160 160 161 -Как создать новую ветку? 162 - 1. Как переключиться на другую ветку? 163 -1. Как откатиться на несколько версий назад чтобы последние изменения ищезли? 164 -1. Как отправить наши текущие изменения в удаленный репозиторий? 165 -1. 166 - 167 -Как выполнить добавление изменений из одной ветки в другую? 168 - 1. Что делать если при этом возник конфликт? 169 -1. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)? 170 -1. Чем отличается tag от branch? 171 -1. Чем отличается fetch от pull? 172 - 173 173 ### GitLab 174 174 175 -1. 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? 176 176 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 - 185 185 ### Сеть и сетевые технологии 186 186 187 -1. Что такое прокси и чем отличается от VPN? 188 -1. Что такое балансировщик нагрузки? 189 -1. Что такое кэширующий сервер и какие проблемы решает? 190 -1. 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. Что должен делать если не нашел запись у себя в конфигурации? 191 191 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 - 220 220 ### Docker и работа с упакованными в контейнер приложениями 221 221 222 -1. Чем контейнеризация Docker отличается от виртуализаии? 223 -1. Чем отличается контейнер от образа (image)? 224 -1. 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? 225 225 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 - 241 241 ### Облачные технологии 242 242 243 243 1. Для чего нам вообще нужны облака? ... ... @@ -251,60 +251,42 @@ 251 251 252 252 ### Kubernetes или коротко k8s 253 253 254 -1. 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 и разным зонам (датацентрам)* 255 255 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 - 308 308 ### Vault 309 309 310 310 1. Для чего нужен Vault? ... ... @@ -318,5 +318,3 @@ 318 318 1. Что нужно сделать в приложении чтобы его трейсы появились в Jaeger? 319 319 320 320 ### Flux и Flagger (канареечные релизы) 321 - 322 -