Изменения документа DevOps
Редактировал(а) Anton Krivchenkov 06.01.2025 19:01
От версии 2.2
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
на 06.01.2025 19:01
Изменить комментарий:
К данной версии нет комментариев
К версии 5.1
отредактировано Anton Krivchenkov
на 06.01.2025 19:01
на 06.01.2025 19:01
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,4 +1,4 @@ 1 - ВОПРОСЫдля проверки знаний:1 + 2 2 3 3 {{toc/}} 4 4 ... ... @@ -113,58 +113,86 @@ 113 113 114 114 Генерация пары SSH ключей: 115 115 116 + ssh-keygen -t ed25519 -C 'ВАШ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ' 117 + 116 116 Файловая структура Ansible role: 117 117 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 + 118 118 Пример файла roles/prometheus/tasks/main.yml: 119 119 120 -</details> 133 +```yaml 134 +- name: Install prometheus # устанавливаем prometheus на удаленном сервере 135 + ansible.builtin.apt: 136 + name: prometheus # какую программу будет устанавливать 121 121 122 -Вопросы на собеседовании 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 # какие права будут у файла на удаленной машине 123 123 124 -Хороший набор ответов: [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 +``` 125 125 126 - ### Linux153 +--- 127 127 128 - 1.155 +## Вопросы на собеседованииях 129 129 130 - Чтотакоеsystemd 1. Гденаходится конфигурация1. Какиеосновныеполявконфигурации 1.157 +Хороший набор ответов: [https://habr.com/ru/articles/775560/](https://habr.com/ru/articles/775560/) 131 131 132 - Какиеесть kill сигналы? 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется? 1.159 +### Linux 133 133 134 -Что такое ядро Linux? 1. Как посмотреть веросию ядра Linux? 1. Что такое системные и вызовы и какие бывают? 135 - 161 +1. Что такое systemd 162 + 1. Где находится конфигурация 163 + 1. Какие основные поля в конфигурации 164 +1. Какие есть kill сигналы? 165 + 1. Когда мы во время выполнения команды жмем Ctrl + C то какой сигнал отправляется? 166 +1. Что такое ядро Linux? 167 + 1. Как посмотреть веросию ядра Linux? 168 + 1. Что такое системные и вызовы и какие бывают? 136 136 1. Какой командой посмотреть сетевые интерфейсы? 137 137 1. Какой командой посмотреть какие приложения занимают те или иные порты? 138 138 1. Как забрать права на доступ к файлу или директории в linux? 139 -1. 140 - 141 -Как можно запланировать выполнение комманды по расписанию, например каждую минуту? 1. Как помотреть список уже запланированных заданий? 1. 142 - 143 -Что такое SSH? 1. Что нужно чтобы подключиться к удаленному серверу через SSH? 1. Как посмотреть запущен ли SSH сервер на linux хосте? 1. Где находится конфигурация SSH сервера? 1. Где хранятся ssh ключи текущего пользователя? 144 - 172 +1. Как можно запланировать выполнение комманды по расписанию, например каждую минуту? 173 + 1. Как помотреть список уже запланированных заданий? 174 +1. Что такое SSH? 175 + 1. Что нужно чтобы подключиться к удаленному серверу через SSH? 176 + 1. Как посмотреть запущен ли SSH сервер на linux хосте? 177 + 1. Где находится конфигурация SSH сервера? 178 + 1. Где хранятся ssh ключи текущего пользователя? 145 145 1. Как установить программму в Linux Ubuntu? 146 -1. Как обновить все программы? 147 -1. Как посмотреть информацию о комманде или программе? 180 + 1. Как обновить все программы? 181 + 1. Как посмотреть информацию о комманде или программе? 148 148 1. Как заменить одно слово на другое в файле? 149 -1. 150 - 151 -Как редактировать файл в Linux? 1. Что такое файловый дискриптор? 152 - 183 +1. Как редактировать файл в Linux? 184 + 1. Что такое файловый дискриптор? 153 153 1. Как посмотреть запущенные процессы? 154 154 1. Как завершить запущенный процесс grafana? 155 155 156 156 ### Git 157 157 158 -1. 159 - 160 -Как создать новую ветку? 1. Как переключиться на другую ветку? 161 - 190 +1. Как создать новую ветку? 191 + 1. Как переключиться на другую ветку? 162 162 1. Как откатиться на несколько версий назад чтобы последние изменения ищезли? 163 163 1. Как отправить наши текущие изменения в удаленный репозиторий? 164 -1. 165 - 166 -Как выполнить добавление изменений из одной ветки в другую? 1. Что делать если при этом возник конфликт? 167 - 194 +1. Как выполнить добавление изменений из одной ветки в другую? 195 + 1. Что делать если при этом возник конфликт? 168 168 1. Как скачать себе локально последние изменения из удаленного репозитория (репозиторий уже есть на компьютере)? 169 169 1. Чем отличается tag от branch? 170 170 1. Чем отличается fetch от pull? ... ... @@ -171,10 +171,10 @@ 171 171 172 172 ### GitLab 173 173 174 -1. 175 - 176 - ЧтотакоеGitLabCI/CDи CI/CD в целом?1. Какиеполя есть в шагах(stages)? 1. Как хранить пароли?1. Как сделать так чтобы два или больше шагов запускались одновременно?177 - 202 +1. Что такое GitLab CI/CD и CI/CD в целом? 203 + 1. Какие поля есть в шагах (stages)? 204 + 1. Как хранить пароли? 205 + 1. Как сделать так чтобы два или больше шагов запускались одновременно? 178 178 1. Что такое артефакты и где они хранятся 179 179 1. Что такое stage, preprod, prod окружения? 180 180 1. Как склонировать себе локально git репозиторий из gitlab используя ssh? ... ... @@ -184,32 +184,41 @@ 184 184 1. Что такое прокси и чем отличается от VPN? 185 185 1. Что такое балансировщик нагрузки? 186 186 1. Что такое кэширующий сервер и какие проблемы решает? 187 -1. 188 - 189 -Что такое выделенный IP адресс в cloud? 1. Как правильно ограничить трафик к нашему приложению чтобы оно было доступно только нам? 1. 190 - 191 -Какие есть уровни модели TCP/IP и пример протоколов на каждом из них? 1. 192 - 193 -В чем разница между TCP и UDP? 1. Что такое трехстороннее рукопожатие? 1. 194 - 195 -В чем разница между HTTP и HTTPS? 1. Опишите жизненный цикл запроса HTTP 1. Какие существуют методы HTTP? 1. Какие существуют коды/статусы ответа HTTP? 1. Какие распространненые заголовки HTTP? 1. Что такое TLS и как работает? 1. Что такое SMTP и как работает? 1. В чем разница между IP и MAC адресами? Для чего они используется? 1. Какие основные виды HTTP запросов существуют? 196 - 215 +1. Что такое выделенный IP адресс в cloud? 216 + 1. Как правильно ограничить трафик к нашему приложению чтобы оно было доступно только нам? 217 +1. Какие есть уровни модели TCP/IP и пример протоколов на каждом из них? 218 + 1. В чем разница между TCP и UDP? 219 + 1. Что такое трехстороннее рукопожатие? 220 + 1. В чем разница между HTTP и HTTPS? 221 + 1. Опишите жизненный цикл запроса HTTP 222 + 1. Какие существуют методы HTTP? 223 + 1. Какие существуют коды/статусы ответа HTTP? 224 + 1. Какие распространненые заголовки HTTP? 225 + 1. Что такое TLS и как работает? 226 + 1. Что такое SMTP и как работает? 227 + 1. В чем разница между IP и MAC адресами? Для чего они используется? 228 + 1. Какие основные виды HTTP запросов существуют? 197 197 1. Что такое TTL (Time to Live)? 198 198 1. Как работает DHCP? 199 -1. 231 +1. Что такое DNS сервер? 232 + 1. По какому протоколу работает? 233 + 1. Что должен делать если не нашел запись у себя в конфигурации? 200 200 201 -Что такое DNS сервер? 1. По какому протоколу работает? 1. Что должен делать если не нашел запись у себя в конфигурации? 202 - 203 203 ### Docker и работа с упакованными в контейнер приложениями 204 204 205 -1. Чем контейнеризация Docker отличается от виртуализаии? 237 +1. Чем контейнеризация Docker отличается от виртуализации? 206 206 1. Чем отличается контейнер от образа (image)? 207 -1. 208 - 209 -Как создать свой образ docker? 1. Что такое базовый образ? 1. Чем хорошо образ alpine linux и чем он отличается например от образа ubuntu linux? 1. В чем отличия между COPY и ADD? 1. Есть ли отличия между CMD и ENTRYPOINT и можно ли их использовать вместе? 1. Где лучше хранить собраные образы docker? 1. 210 - 211 -Как запустить несколько образов вместе на своем компьютере для тестирования? 1. Можно ли в docker compose ограничить использование RAM и CPU для отдельных контейнеров? 1. Сохранятся ли данные записанные приложением в контенйнере на диск после его перезапуска? 1. Что такое volumes и для каких приложений использовать их нужно? 1. Как настроить контейнер так чтобы он перезапускался сам если приложение внутри сломается? 212 - 239 +1. Как создать свой образ docker? 240 + 1. Что такое базовый образ? 241 + 1. Чем хорошо образ alpine linux и чем он отличается например от образа ubuntu linux? 242 + 1. В чем отличия между COPY и ADD? 243 + 1. Есть ли отличия между CMD и ENTRYPOINT и можно ли их использовать вместе? 244 + 1. Где лучше хранить собраные образы docker? 245 +1. Как запустить несколько образов вместе на своем компьютере для тестирования? 246 + 1. Можно ли в docker compose ограничить использование RAM и CPU для отдельных контейнеров? 247 + 1. Сохранятся ли данные записанные приложением в контенйнере на диск после его перезапуска? 248 + 1. Что такое volumes и для каких приложений использовать их нужно? 249 + 1. Как настроить контейнер так чтобы он перезапускался сам если приложение внутри сломается? 213 213 1. Где хранятся volumes и logs в docker? 214 214 215 215 ### Облачные технологии ... ... @@ -225,38 +225,41 @@ 225 225 226 226 ### Kubernetes или коротко k8s 227 227 228 -1. 229 - 230 -Какие компоненты должны быть установлены на master node? 1. А какие на worker node? 1. 231 - 232 -Что такое etcd? 1. Какой тип у этой базы данных? 1. Почему в etcd должно быть нечетное количество реплик? 1. 233 - 234 -Как настраивается сеть в k8s? 1. Что такое CNI? 1. Каким образом каждому pod выдается отдельный IP? 1. 235 - 236 -Что такое service? 1. Как с помощью service обратиться к pod в другом namespace? 1. Является ли service DNS именем? 1. По какому правилу service будет распределять трафик между pod? 1. Чем отличаются service вида headless и clusterIP? 1. 237 - 238 -Какие виды prob вы знаете? 1. Для чего нужна каждая из них? 1. 239 - 240 -Сколько контейнеров может быть в одном pod? 1. Нужно ли создавать service для того чтобы контейнеры отправляли друг другу запросы в рамках одного pod? 1. 241 - 242 -Какие ingress контроллеры вы знаете? 1. Что такое ingress, какие ресурсы он связывает на сетевом уровне? 1. Как в ingress использовать SSL сертификаты? 243 - 265 +1. Какие компоненты должны быть установлены на master node? 266 + 1. А какие на worker node? 267 +1. Что такое etcd? 268 + 1. Какой тип у этой базы данных? 269 + 1. Почему в etcd должно быть нечетное количество реплик? 270 +1. Как настраивается сеть в k8s? 271 + 1. Что такое CNI? 272 + 1. Каким образом каждому pod выдается отдельный IP? 273 +1. Что такое service? 274 + 1. Как с помощью service обратиться к pod в другом namespace? 275 + 1. Является ли service DNS именем? 276 + 1. По какому правилу service будет распределять трафик между pod? 277 + 1. Чем отличаются service вида headless и clusterIP? 278 +1. Какие виды prob вы знаете? 279 + 1. Для чего нужна каждая из них? 280 +1. Сколько контейнеров может быть в одном pod? 281 + 1. Нужно ли создавать service для того чтобы контейнеры отправляли друг другу запросы в рамках одного pod? 282 +1. Какие ingress контроллеры вы знаете? 283 + 1. Что такое ingress, какие ресурсы он связывает на сетевом уровне? 284 + 1. Как в ingress использовать SSL сертификаты? 244 244 1. Чем отличаются annotations от labels и приведите по одному примеру использования? 245 245 1. Основные различия между Deployment, StatefulSet и DaemonSet? 246 -1. 247 - 248 -Что такое lifecycle хуки? 1. Для чего используется preStop хук с sleep 10 функцией? 1. 249 - 250 -Для чего нужны лимиты (limits) и запросы (requests) у pod? 1. HPA при расчетах использует limits или requests? 1. Планировщик при выборе на какую node размещать pod учитывает limits? 251 - 287 +1. Что такое lifecycle хуки? 288 + 1. Для чего используется preStop хук с `sleep 10` функцией? 289 +1. Для чего нужны лимиты (limits) и запросы (requests) у pod? 290 + 1. HPA при расчетах использует limits или requests? 291 + 1. Планировщик при выборе на какую node размещать pod учитывает limits? 252 252 1. Каким образом можем ограничить права пользователей в k8s? 253 253 1. Чем так удобны helm charts? 254 254 1. Какие основные компоненты чарта? 255 -1. Что находится в файле values.yaml и Chart.yaml? 256 -1. Для чего в папке templates создают файл _helpers.tpl? 295 +1. Что находится в файле `values.yaml` и `Chart.yaml`? 296 +1. Для чего в папке templates создают файл `_helpers.tpl`? 257 257 1. Как создать цикл который создаст несколько сущностей (например ports в service)? 258 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 и разным зонам (датацентрам)_299 +1. Что будет записано вместо темплейта `{{ divf .Values.replicaCount .Values.zones | ceil }}`? Как может пригодиться читать тут <https://github.com/eabykov/devops-kubernetes/blob/main/ЛУЧШИЕ_ПРАКТИКИ.md> в коментарие к разделу _Распределите ваши pod по разным node и разным зонам (датацентрам)_ 260 260 261 261 ### Vault 262 262