DevOps | Вопросы собесов
Открыть в Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Больше5 570
Подписчики
+224 часа
+77 дней
-830 дней
Архив постов
Что такое API и зачем оно нужно ?
Спросят с вероятностью 13%
API (Application Programming Interface — программный интерфейс приложения) — это набор правил, спецификаций, инструментов и протоколов, который позволяет создавать ПО и приложения, обеспечивая взаимодействие между различными программными компонентами, системами и библиотеками.
Ключевые функции:
1️⃣Интерфейс: API определяет, каким образом программы и компоненты могут взаимодействовать друг с другом, без необходимости вникать в детали их внутренней реализации. Это позволяет разработчикам использовать функциональность, которую предоставляет API, не заботясь о сложности внутренних процессов.
2️⃣Абстракция: API абстрагирует сложность взаимодействия с нижележащими системными уровнями или внешними сервисами, предоставляя разработчикам простой и понятный интерфейс для использования.
3️⃣Стандартизация: API устанавливает стандартные методы для выполнения различных операций, что гарантирует совместимость и унификацию взаимодействия различных компонентов программного обеспечения.
Зачем он нужен?
1️⃣Интеграция систем: Позволяет различным системам и приложениям легко взаимодействовать друг с другом. Например, API веб-сервисов позволяет веб-приложениям запрашивать данные у серверов и выводить их пользователям в удобной форме.
2️⃣Расширение функциональности: С помощью сторонних API разработчики могут расширять функциональность своих приложений, используя уже готовые решения, такие как карты Google Maps, платежные системы PayPal или функции социальных сетей.
3️⃣Масштабируемость: Позволяет системам эффективно масштабироваться, предоставляя модульные компоненты, которые можно легко заменять или обновлять без влияния на другие части системы.
4️⃣Безопасность: С помощью можно контролировать доступ к различным функциям системы, обеспечивая безопасное взаимодействие между компонентами. API может служить прослойкой, которая проверяет и фильтрует запросы перед доступом к важным ресурсам.
5️⃣Разработка программного обеспечения: API упрощает разработку программ, позволяя разработчикам сосредоточиться на создании уникальных особенностей своего приложения, а не на реализации уже известных функций, доступных через API.
Примеры использования:
✅Веб-API: Позволяют веб-приложениям запрашивать данные с серверов. Например, RESTful API используется для обмена данными между клиентом и сервером через HTTP.
✅Операционные системы API: Как Windows API, позволяет разработчикам писать функции, которые могут взаимодействовать с ОС.
✅Библиотеки и фреймворки: Такие как jQuery в веб-разработке, предоставляют API, которые упрощают выполнение часто используемых задач, таких как AJAX-запросы.
API играет центральную роль в современной разработке ПО, делая возможной интеграцию и взаимодействие между различными программными продуктами и платформами.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
⚡️В сети начали находить курсы и книги известных онлайн школ в открытом доступе
Вот отсортированная база с тонной материала(постепенно пополняется):
🔗 БАЗА (3385 видео):
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(352 видео, 89 книги) — С++
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL
(163 видео, 29 книги) — Linux
(363 видео, 122 книги) — Python
(415 видео, 168 книги) — Frontend
(143 видео, 33 книги) — Flask
(167 видео, 43 книги) — Django
(197 видео, 49 книги) — Разработка ботов
(137 видео, 93 книги) — Data Science
(113 видео, 82 книги) — GameDev
(129 видео, 73 книги) — QA
Скачивать ничего не нужно — все выложили в Telegram и на YouTube с доступом по ссылке
В чем разница Deployment и DaemonSet ?
Спросят с вероятностью 26%
Deployment и DaemonSet являются двумя типами контроллеров, которые управляют развертыванием и обеспечением жизненного цикла подов (групп контейнеров). Они оба играют важные роли, но используются для разных целей и сценариев.
Deployment
Это контроллер, который обеспечивает декларативное обновление подов и ReplicaSets (другой тип контроллера, который управляет одновременным запуском нескольких экземпляров одного и того же пода). Deployment поддерживает непрерывное развертывание, откат к предыдущим версиям, а также масштабирование подов.
Особенности:
✅Масштабирование: Вы можете увеличивать или уменьшать количество подов в зависимости от нужд.
✅Обновления: Поддерживает стратегии развертывания, такие как Rolling Update (постепенное обновление), которое помогает минимизировать простои при обновлении приложения.
✅Самовосстановление: Автоматически перезапускает поды, которые перестали работать, находятся в ошибочном состоянии или не отвечают.
Пример:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
DaemonSet
Это контроллер, который гарантирует, что на каждом узле кластера Kubernetes запущен экземпляр заданного пода. Когда добавляется новый узел, на нем автоматически запускается под, управляемый DaemonSet, и если узел удаляется, поды удаляются автоматически. Это идеально подходит для запуска служб мониторинга, сбора логов или других утилит, которые должны быть запущены на каждом узле.
Особенности:
✅Гарантия запуска: Убедитесь, что каждый узел кластера запускает копию определённого пода.
✅Автоматическое размещение: Когда добавляются новые узлы, на них автоматически размещаются необходимые поды.
✅Службы уровня узла: Идеально подходит для запуска системных служб, таких как коллекторы логов, системы мониторинга и другие.
Пример DaemonSet в YAML-формате:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
containers:
- name: fluentd-elasticsearch
image: fluent/fluentd:v1.0
volumeMounts:
- name: varlog
mountPath: /var/log
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
readOnly: true
Deployment и DaemonSet выполняют различные функции в Kubernetes. Deployment лучше всего подходит для управления подами, которые представляют приложения, требующие масштабирования и обновлений. DaemonSet идеален для обеспечения работы сервисов на каждом узле кластера. Оба эти инструмента дополняют друг друга и используются в разных сценариях для эффективного управления и оркестрации контейнеров.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхПривет, ребят, хочу сделать так, чтобы для каждого вопроса было поясняющее видео в reels/shorts формате.
Ищу человека который с этим поможет, работу оплачу. Вопросы есть, нужен простой монтаж и озвучка. Все видосы делаются по шаблону.
Если интересует такая подработка напишите мне @kivaiko
Что такое blue green deployment ?
Спросят с вероятностью 13%
Blue-green deployment — это метод развертывания ПО, который предназначен для минимизации или устранения простоя при обновлении версии приложения. Этот подход включает в себя две идентичные среды, которые находятся в точном зеркальном отображении друг друга. Одна среда, обычно называемая "blue", активно служит трафиком пользователей, в то время как другая среда, "green", находится в готовности и используется для новой версии приложения.
Как он работает
1️⃣Подготовка двух сред: Настройте две параллельные среды ("blue" и "green"). Обе должны быть настроены так, чтобы могли поддерживать полную нагрузку вашего приложения.
2️⃣Развертывание в зеленую среду: Новая версия приложения развертывается в "green" среду, где она может быть тщательно протестирована и проверена на ошибки. В это время "blue" среда по-прежнему обрабатывает весь пользовательский трафик.
3️⃣Переключение трафика: После того как новая версия в "green" среде была проверена и готова к использованию, трафик пользователей перенаправляется со "старой" синей среды на "новую" зеленую. Это переключение обычно происходит путем изменения конфигурации DNS или с помощью балансировщика нагрузки.
4️⃣Мониторинг и откат при необходимости: После переключения трафика на "green" среду, она активно мониторится для выявления любых неожиданных проблем или сбоев. Если что-то идет не так, можно быстро выполнить откат, снова переключив трафик обратно на "blue" среду.
5️⃣Подготовка следующего обновления: После успешного переключения "green" среда становится новой "blue" средой для следующего цикла развертывания, а старая "blue" среда теперь будет использоваться для следующего обновления как "green".
Преимущества:
✅Минимизация простоя: Переключение между средами позволяет обновлять приложения без простоев.
✅Уменьшение риска: Тестирование новой версии в зеленой среде перед полноценным переключением трафика помогает убедиться в стабильности обновления.
✅Быстрый откат: Если новая версия содержит ошибки, можно быстро переключиться обратно на старую версию.
Недостатки:
✅Двойные затраты на инфраструктуру: Требуется поддерживать две рабочие среды, что удваивает затраты на ресурсы и управление.
✅Сложность управления данными: Синхронизация данных между двумя средами может быть сложной, особенно если приложение вносит значительные изменения в данные.
Blue-green deployment является эффективным способом обеспечения надежности и непрерывности бизнес-процессов при обновлении приложений, особенно в условиях критически важных продуктовых сред.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
🔥 Подъехали ништяки для тех, кто настраивает окружение и автоматизирует процессы 💪😎
Cloud․ru предлагает бесплатный доступ к облачным ресурсам через Free Tier. Это отличная возможность развернуть приложения совершенно бесплатно.
⚔️ Вы получаете доступ к виртуальной машине с конфигурацией 2vCPU и 4 ГБ RAM, а также 30 ГБ на SSD, что вполне достаточно для тестирования и разработки приложений. Также предоставляется 5 ГБ хранилища S3 с тысячами операций загрузки и извлечения данных.
➡️ Для выхода ВМ в интернет оплатите публичный IP за 146 (🍟) рублей или воспользуйтесь бонусом в 4000 рублей для новых клиентов при привязке карты или регистрации по Сбер ID.
🍀 Ловите удачу, просто перейдя по этой ссылке.
Какие есть способы задания переменных в Ansible ?
Спросят с вероятностью 13%
Переменные используются для хранения информации, которая может изменяться от одного выполнения плейбука к другому или от одного окружения к другому. Это делает Ansible более гибким и повторно используемым. Существует несколько способов определения и использования переменных в Ansible:
1️⃣Переменные в инвентарных файлах
Можно задать непосредственно в инвентарном файле. Это могут быть файлы в форматах INI или YAML. Пример в формате INI:
[webservers]
webserver1 ansible_host=192.168.1.100 http_port=80 max_requests=1000
В YAML формате это будет выглядеть так:
webservers:
hosts:
webserver1:
ansible_host: 192.168.1.100
http_port: 80
max_requests: 1000
2️⃣Файлы переменных в плейбуках
Могут быть организованы в файлы, обычно YAML, которые затем подключаются к плейбукам через директиву vars_files. Пример использования в плейбуке:
---
- hosts: all
vars_files:
- vars/main.yml
Где vars/main.yml содержит:
http_port: 80
max_requests: 1000
3️⃣Переменные в командной строке
Могут быть определены непосредственно при запуске плейбука через командную строку с помощью ключа -e или --extra-vars. Пример:
ansible-playbook playbook.yml -e "http_port=80 max_requests=1000"
4️⃣Переменные в плейбуках
Можно определить непосредственно в плейбуке под ключом vars:
---
- hosts: all
vars:
http_port: 80
max_requests: 1000
5️⃣Role Defaults и Vars
Каждая роль может иметь файлы defaults/main.yml и vars/main.yml. Переменные, определенные в defaults, имеют самый низкий приоритет и могут быть переопределены почти в любом месте. Переменные в vars имеют более высокий приоритет и переопределяются с трудом.
6️⃣Registered Variables
Переменные могут быть созданы во время выполнения плейбука с использованием модулей и зарегистрированы для использования в последующих задачах. Например:
- name: Get the date
command: date
register: current_date
7️⃣Facts
Собираются Ansible автоматически при выполнении плейбука и содержат информацию о удалённых системах. Facts можно использовать как переменные:
---
- hosts: all
tasks:
- name: Print OS family
debug:
msg: "The OS family is {{ ansible_os_family }}"
Каждый из этих способов имеет своё применение в зависимости от требований задачи, структуры данных и логики плейбука. Правильный выбор способа определения переменных помогает создать более читаемые, поддерживаемые и масштабируемые Ansible плейбуки и роли.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхИТ-сообщество с 14-летним стажем
⌨️ ITKB_channel — бесплатное обучение по Windows, Linux, DevOps, Security, Network, программирование
📚 ITKB_Archive — библиотека (книги, курсы, ИТ литература)
Что известно про rancher kubernetes ?
Спросят с вероятностью 13%
Rancher — это популярная платформа управления контейнерами, которая позволяет упростить процесс развертывания, управления и масштабирования приложений на основе контейнеров, включая тех, что работают в среде Kubernetes. Rancher обеспечивает интеграцию с различными инструментами и платформами, такими как Docker, Kubernetes, Microsoft Azure, Google Cloud Platform и Amazon Web Services.
Основные возможности и преимущества:
1️⃣Поддержка множества кластеров Kubernetes: Позволяет управлять несколькими кластерами Kubernetes, независимо от того, где они развернуты — будь то на ваших локальных серверах или в облаке.
2️⃣Удобный пользовательский интерфейс: Предоставляет графический интерфейс пользователя (GUI), который упрощает управление ресурсами Kubernetes, мониторингом, масштабированием и обновлениями.
3️⃣Интегрированная система безопасности: Включает средства для управления доступом, которые позволяют настроить политики безопасности на уровне пользователей и групп, а также интегрируется с внешними поставщиками идентификации через OpenID Connect, LDAP, Active Directory и другие.
4️⃣Управление каталогами приложений: Предоставляет каталоги, которые содержат готовые шаблоны приложений, упрощая развертывание стандартных сервисов и приложений.
5️⃣Проекты и пространства имен: Позволяет группировать ресурсы Kubernetes в проекты, что упрощает управление и изоляцию ресурсов между командами или приложениями.
6️⃣Масштабирование и автоматизация: Упрощает процесс масштабирования приложений и автоматизации операций с помощью различных инструментов и API.
Использование для управления Kubernetes
Предоставляет дополнительный слой абстракции и управления над кластерами Kubernetes, который включает:
✅Централизованное управление: Управляйте всеми вашими кластерами Kubernetes из единого интерфейса.
✅Автоматическое развертывание: Простое создание новых кластеров Kubernetes на различных облачных платформах или на локальных серверах.
✅Мониторинг и алерты: Встроенные средства для мониторинга состояния кластера и оповещения о проблемах.
✅Бэкап и восстановление: Инструменты для резервного копирования и восстановления состояния кластера.
Rancher является мощным инструментом для организаций, которые используют Kubernetes и стремятся упростить управление своей инфраструктурой контейнеров. Он обеспечивает дополнительные уровни управления, безопасности и масштабируемости, что делает его ценным решением для развертывания и управления контейнеризированными приложениями в различных средах.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
🚀 Приглашаем на звонок для начинающих DevOps'ов!
📅 Когда: 15го июня в 10.00 МСК
📍 Где: Онлайн, ссылка для подключения будет в группе DevOps фабрики https://t.me/devops_factory
Ты узнаешь:
🔹 Что учить, чтобы стать DevOps специалистом
🔹 Какой начальный уровень нужен
На звонке от DevOps фабрики рассмотрим:
Хард скиллы: какие технические знания и навыки необходимы
Софт скиллы: как развивать коммуникативные и управленческие умения
Обсудим, как потренироваться с нужными технологиями и куда расти, чтобы достичь успеха в этой сфере.
🎤 Задай свой вопрос: Что предпринять в твоем конкретном случае? Мы поможем разобраться!
Ссылку опубликую в канале : https://t.me/devops_factory
Не упусти шанс начать свой путь в DevOps с правильного старта!
Чем отличается Terraform от Ansible ELK stack ?
Спросят с вероятностью 33%
Terraform и Ansible — это инструменты для автоматизации, которые часто используются для разных целей. Каждый из них имеет свои особенности и лучше подходит для определённых задач.
Terraform
Это инструмент, разработанный HashiCorp, для создания, изменения и управления инфраструктурой как кодом (IaC). Он позволяет пользователям определять и предоставлять полную инфраструктуру (серверы, базы данных, сетевые устройства и т.д.) в различных облачных провайдерах (например, AWS, Azure, Google Cloud) с помощью конфигурационных файлов, которые описывают желаемое состояние инфраструктуры.
Основные характеристики:
✅Идемпотентность: Способен привести инфраструктуру в точное состояние, определённое в конфигурационных файлах, не внося повторных изменений в уже существующие ресурсы, если это не требуется.
✅Декларативный подход: Пользователь описывает "что" должно быть создано, а не "как" это должно быть сделано.
✅Управление состоянием: Отслеживает текущее состояние инфраструктуры и помогает управлять её изменениями.
Ansible
Это инструмент для автоматизации конфигурации, управления и оркестрации. В отличие от Terraform, Ansible лучше подходит для автоматической настройки и управления существующими ресурсами, такими как серверы, приложения и другие компоненты.
Основные характеристики:
✅Процедурный подход: Описывает серию "шагов" или "задач", которые необходимо выполнить для достижения желаемого состояния.
✅Идемпотентность: Как и Terraform, Ansible может повторно применять одни и те же настройки без внесения изменений, если текущее состояние уже соответствует желаемому.
✅Агентное-менее выполнение: Для своей работы Ansible использует существующую SSH-инфраструктуру и не требует установки дополнительных агентов на целевых системах.
ELK Stack
Это набор инструментов для сбора, агрегирования и анализа больших объёмов данных. ELK состоит из трёх основных компонентов: Elasticsearch (поисковая и аналитическая система), Logstash (инструмент для сбора, трансформации и хранения данных) и Kibana (инструмент для визуализации данных из Elasticsearch).
Основные характеристики:
✅Анализ данных: Используется для мониторинга, анализа логов и визуализации данных.
✅Интеграция данных: Может интегрироваться с различными источниками данных для сбора и агрегации информации.
Различия в использовании:
✅Terraform лучше использовать для создания и управления инфраструктурой на стадии инициализации проекта или при значительных изменениях инфраструктуры.
✅Ansible идеально подходит для непрерывного управления конфигурацией и автоматизации рутинных задач на уже существующих серверах и устройствах.
✅ELK Stack используется для мониторинга и анализа работы систем после их развёртывания, сбора логов и визуализации данных.
Terraform, Ansible и ELK Stack выполняют различные, но взаимодополняющие функции в управлении IT-инфраструктурой и обработке данных.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Привет, я Леха. Вопросы собеседований берутся с моего сайта easyoffer.ru. Его я делал как пет-проект, чтобы устроиться на работу, но сейчас проект уже перерастает в стартап и я пишу об этом в своем TG блоге Идущий к IT и на YouTube.
"Как считается вероятность вопросов?"Об этом писал в статье на Habr ➖Если нашли ошибку в посте пишите @aurumsunset ➖Если хотите купить рекламу на канале пишите @easyoffer_adv ➖Чтобы получить доступ к приватной группе, где мы выкладываем реальные записи собеседований переходите в бота ➖Аналогично для тестовых заданий вот этот бот
Чем отличаются роли от плейбуков ?
Спросят с вероятностью 33%
В контексте Ansible, который является одним из популярных инструментов автоматизации IT-инфраструктур, роли и плейбуки представляют собой ключевые компоненты, но они используются для различных целей и имеют разные области применения.
Плейбуки (Playbooks)
Это YAML-файлы, которые описывают задачи и процессы автоматизации, которые необходимо выполнить на одной или нескольких управляемых машинах. Они включают в себя одну или несколько "игр" (plays), каждая из которых может целиться на определённую группу хостов для выполнения заданных задач. Плейбук может описывать полную конфигурацию сервера, установку программного обеспечения, обновление системы и другие операционные задачи.
Пример простого плейбука:
- name: Update web servers
hosts: webservers
tasks:
- name: Ensure nginx is at the latest version
ansible.builtin.yum:
name: nginx
state: latest
Роли (Roles)
Предназначены для более удобной организации и повторного использования кода Ansible. Роль инкапсулирует чётко определённую функциональность, включая переменные, зависимости, файлы конфигурации и шаблоны, что позволяет переиспользовать эту функциональность в различных плейбуках и проектах. Структура роли строго организована, что помогает в её модульности и переносимости.
Стандартная структура роли включает:
✅tasks/ — Главные задачи роли.
✅handlers/ — Обработчики, которые вызываются по специальным триггерам.
✅defaults/ — Стандартные значения переменных, которые использует роль.
✅vars/ — Другие переменные, которые могут быть определены в роли.
✅files/ — Файлы, которые можно скопировать на управляемые машины.
✅templates/ — Шаблоны, которые можно обработать и скопировать на управляемые машины.
✅meta/ — Метаданные роли, включая зависимости от других ролей.
Основные отличия
✅Модульность: Роли предлагают высокий уровень модульности и переиспользования, в то время как плейбуки обычно определяют конкретные процедуры автоматизации для конкретных сценариев.
✅Организация: Плейбуки могут использовать роли для организации и сокращения количества кода, делая плейбуки более читаемыми и легкими для поддержки.
✅Повторное использование: Роли могут быть легко переиспользованы в разных проектах и плейбуках, в то время как плейбуки обычно специфичны для проекта.
Плейбуки являются основными файлами, которые вызывают роли и другие задачи для выполнения операций на управляемых машинах. Роли представляют собой модульные блоки, которые организуют код, связанный с определённой функциональностью, и позволяют его переиспользовать в различных плейбуках. Разделение задач и кода между плейбуками и ролями улучшает организацию, облегчает управление и повышает эффективность процесса автоматизации.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовыхЧто такое kubernetes ?
Спросят с вероятностью 33%
Kubernetes (часто сокращенно K8s) — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Разработанная изначально в Google на основе их опыта работы с контейнерами в продакшене, он стал стандартом для оркестрации контейнеров в индустрии.
Основные концепции
1️⃣Поды (Pods): Базовая единица, которую создает и управляет Kubernetes. Под может содержать один или несколько контейнеров, которые разделяют сетевые настройки и хранилище.
2️⃣Узлы (Nodes): Физические или виртуальные машины, на которых запускаются поды. Каждый узел управляется мастер-узлом и содержит необходимые службы для запуска подов.
3️⃣Контроллеры (Controllers): Элементы для управления состоянием кластера. Они следят за тем, чтобы фактическое состояние кластера соответствовало желаемому. Примеры: ReplicaSet, Deployment, StatefulSet.
4️⃣Сервисы (Services): Абстракция, которая определяет логический набор подов и политику доступа к ним. Сервисы позволяют обращаться к подам, используя DNS или IP-адреса, и управляют балансировкой нагрузки.
5️⃣Пространства имен (Namespaces): Изоляция частей кластера. Позволяет разделять ресурсы кластера между несколькими пользователями.
6️⃣Конфигурационные данные (ConfigMaps and Secrets): Объекты для хранения конфигурационной информации и конфиденциальных данных соответственно, которые могут быть использованы подами.
Архитектура
✅Мастер-узел (Master Node): Управляет кластером и отвечает за основные решения о развертывании приложений (например, когда, где и как запускать поды).
✅Рабочие узлы (Worker Nodes): На этих узлах запускаются приложения. Узел содержит компоненты, необходимые для этого: Docker, kubelet, kube-proxy и другие.
Почему он стал популярен
1️⃣Масштабируемость: Kubernetes эффективно управляет тысячами контейнеров, работающих одновременно.
2️⃣Надежность и устойчивость: Автоматическое восстановление от сбоев (например, перезапуск неисправных контейнеров).
3️⃣Гибкость и портативность: Поддерживает различные среды — облака, виртуальные машины, физические сервера.
4️⃣Управление конфигурацией и секретами: Упрощает развертывание и управление конфигурационными данными и секретами.
5️⃣Самообслуживание и автоматизация: Упрощает разработку и операционную деятельность за счет автоматизации многих задач, связанных с развертыванием и масштабированием приложений.
Kubernetes предлагает мощные инструменты для работы с контейнеризированными приложениями на любой масштабируемой и распределенной инфраструктуре. Он помогает компаниям эффективно развертывать, масштабировать и управлять приложениями, что делает его неотъемлемой частью экосистемы облачных вычислений.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Чем отличаются deployment, replicaset ?
Спросят с вероятностью 13%
Deployment и ReplicaSet являются ключевыми компонентами, используемыми для управления развертыванием и масштабированием контейнеризированных приложений. Хотя оба они связаны с управлением подами, между ними есть существенные различия в функциональности и предназначении.
ReplicaSet
Это контроллер, который обеспечивает поддержание заданного количества копий подов в любой момент времени. Основная цель ReplicaSet — гарантировать, что указанное количество экземпляров пода всегда запущено и работает. Если поды перестают работать или удаляются, ReplicaSet автоматически заменяет их, чтобы поддерживать нужное количество экземпляров.
Основные особенности:
✅Поддерживает стабильное количество подов, основываясь на шаблонах, определенных в спецификации.
✅Автоматически заменяет поды, которые были повреждены или удалены.
✅Не управляет обновлениями приложений в подах; требуется внешнее управление для обновления или изменения версий приложений.
Deployment
Это более высокоуровневый контроллер, который управляет развертываниями приложений в Kubernetes, включая их обновления и откаты. Deployment использует ReplicaSet для поддержания экземпляров, но добавляет множество дополнительных возможностей.
Основные особенности:
✅Управляет жизненным циклом приложений, включая развертывание, обновление, масштабирование и откаты.
✅Позволяет объявлять желаемое состояние приложения, и Kubernetes стремится поддерживать это состояние.
✅Поддерживает стратегии развертывания, такие как Rolling Update (постепенное обновление), что позволяет обновлять приложение с минимальными прерываниями.
✅Автоматически управляет ReplicaSets, создавая новые и удаляя старые при обновлении версии приложения.
Основные различия:
✅Уровень абстракции: Это более низкоуровневый компонент, фокусирующийся на поддержании количества подов. Deployment работает на более высоком уровне, управляя не только подами, но и их жизненным циклом, включая стратегии обновления и отката.
✅Обновление приложений: Не умеет управлять процессом обновления приложений; его задача — только поддержание числа работающих подов. Deployment предоставляет механизмы для безопасного обновления приложений, с минимальными прерываниями доступности сервиса.
✅Использование: В обычных операциях администрирования и управления приложениями в Kubernetes предпочтительнее использовать Deployment, так как он автоматически создает нужные ReplicaSets и обеспечивает больше возможностей для управления состоянием приложений.
Deployment предлагает более богатый и удобный способ управления приложениями, делая его предпочтительным выбором для большинства сценариев развертывания и масштабирования приложений.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Linux как секс!
Если зубрить его по книжкам, то кроме теории и деградации, ты ничему не научишься.
В канале BashDays ты найдешь лучшие Linux и Bash практики. Действующий девопс-инженер, самобытно и с долей юмора, травит темы:
- Рекавери файлов через grep
- Почему коты гадят в макбуки
- Как отключить логирование
- Неочевидные трюки на Bash
- Сниффер SSH на strace
И это только цветочки. А если заскучал, поиграй с друзьями в piu-piu и надери им бэкенд. Рекомендую!
В BashDays даже джуны становятся сеньорами.
Подписывайся, это самый простой способ прокачать свои хард-скиллы: — @bashdays
Что такое kafka ?
Спросят с вероятностью 33%
Apache Kafka — это распределённая платформа для потоковой обработки данных, ориентированная на высокую пропускную способность и надёжное хранение событий. Kafka разработана LinkedIn и впоследствии передана в Apache Software Foundation, где она стала одним из самых популярных проектов для обработки больших объёмов данных в реальном времени.
Основные компоненты:
1️⃣Продюсеры (Producers): Отправляют данные в Kafka. Продюсеры публикуют данные в топики (topics), которые можно сравнить с папками или категориями, где данные упорядочены и хранятся.
2️⃣Топики (Topics): Категории или каналы, в которые продюсеры публикуют свои данные. Топики в Kafka могут быть разделены на несколько сегментов, называемых партициями, что позволяет распределить данные между несколькими узлами для повышения производительности и надёжности.
3️⃣Партиции (Partitions): Сегменты внутри топика, которые позволяют данные топика быть распределёнными и параллельно обработанными. Каждая партиция может иметь одну или несколько реплик, что повышает доступность и устойчивость данных.
4️⃣Консьюмеры (Consumers): Подписываются на топики и читают данные, публикуемые продюсерами. Консьюмеры могут работать в группах для распределённой и параллельной обработки данных.
5️⃣Брокеры (Brokers): Серверы, которые хранят данные и обрабатывают запросы от продюсеров и консьюмеров. В распределённой среде Kafka может состоять из множества брокеров, управление которыми осуществляется через узел управления, называемый контроллером.
Особенности и преимущества:
✅Производительность: Способна обрабатывать сотни тысяч сообщений в секунду.
✅Масштабируемость: Систему можно масштабировать горизонтально, добавляя брокеров в кластер, что позволяет обрабатывать больше сообщений без простоя.
✅Надёжность: Данные автоматически реплицируются между брокерами, что обеспечивает высокий уровень доступности и устойчивость к сбоям.
✅Устойчивость к сбоям: Спроектирована так, чтобы выдерживать сбои отдельных компонентов без потери данных.
✅Временное хранение: Может хранить большие объёмы данных на определённый период времени, позволяя консьюмерам читать и перечитывать информацию по мере необходимости.
Использование
Применяется во многих областях, включая реальное логирование данных, мониторинг операций, потоковую обработку событий, интеграцию данных и создание распределённых систем реального времени. Она стала стандартом де-факто для организаций, стремящихся к эффективному сбору, хранению и обработке больших потоков данных.
Apache Kafka — это мощная и гибкая система для работы с потоками данных в реальном времени, которая поддерживает высокие нагрузки, обеспечивает надёжность и позволяет масштабировать обработку данных на уровне крупных предприятий. Она обеспечивает комплексное решение для сбора и передачи больших объёмов данных с минимальной задержкой.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Что будет происходить при kubectl apply ?
Спросят с вероятностью 13%
Команда kubectl apply — это инструмент для управления приложениями через командную строку для Kubernetes, который позволяет создавать и обновлять ресурсы в кластере на основе определений в YAML или JSON файлах. Это одна из наиболее часто используемых команд для работы, так как она поддерживает идемпотентность, что означает, что один и тот же файл конфигурации может быть применен несколько раз без изменения результата за пределами ожидаемого.
Как он работает:
1️⃣Чтение конфигурационного файла: Читает конфигурационный файл в форматах YAML или JSON, который описывает желаемое состояние ресурса или ресурсов, которые должны быть развернуты или обновлены в кластере.
2️⃣Сравнение с текущим состоянием: Сравнивает желаемое состояние, определенное в конфигурационном файле, с текущим состоянием ресурса в кластере. Это сравнение включает проверку всех атрибутов ресурса, чтобы определить, требуется ли создание нового ресурса, обновление существующего или не требуется никаких изменений.
3️⃣Обновление ресурса: Если конфигурация ресурса в файле отличается от того, что уже присутствует в кластере,
kubectl apply обновляет ресурс в соответствии с этой конфигурацией. Это может включать изменение свойств, добавление или удаление компонентов и так далее.
4️⃣Аннотации и управление изменениями: Когда вы используете kubectl apply, Kubernetes автоматически добавляет специальные аннотации к ресурсу. Эти аннотации содержат предыдущую конфигурацию ресурса в сериализованном виде, что позволяет Kubernetes определять изменения между запусками команды.
5️⃣Отслеживание изменений: Если ресурс был изменен другими способами (не через kubectl apply), Kubernetes сможет определить эти изменения и интегрировать их, если они не конфликтуют с конфигурацией, применяемой через kubectl apply.
kubectl apply -f deployment.yaml
Это приведет к созданию или обновлению Deployment в соответствии с определениями в файле deployment.yaml.
kubectl apply является мощным инструментом для управления жизненным циклом Kubernetes ресурсов. Он обеспечивает гибкость, позволяя разработчикам и администраторам контролировать и управлять инфраструктурой через код, что способствует более эффективному, предсказуемому и безопасному управлению приложениями.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых⚡️В сети начали находить курсы и книги известных онлайн школ в открытом доступе
Вот отсортированная база с тонной материала(постепенно пополняется):
🔗 БАЗА (3385 видео):
(343 видео, 87 книги) — Java
(176 видео, 32 книги) — Git
(293 видео, 63 книги) — C#
(352 видео, 89 книги) — С++
(167 видео, 53 книги) — PHP
(227 видео, 83 книги) — SQL
(163 видео, 29 книги) — Linux
(363 видео, 122 книги) — Python
(415 видео, 168 книги) — Frontend
(143 видео, 33 книги) — Flask
(167 видео, 43 книги) — Django
(197 видео, 49 книги) — Разработка ботов
(137 видео, 93 книги) — Data Science
(113 видео, 82 книги) — GameDev
(129 видео, 73 книги) — QA
Скачивать ничего не нужно — все выложили в Telegram и на YouTube с доступом по ссылке
Что показывает load average ?
Спросят с вероятностью 33%
Load average (средняя нагрузка) — это показатель, который используется для оценки загруженности системы за определённые промежутки времени. Этот показатель обычно отображается с помощью команды
uptime или top и представлен тремя числами, которые отражают среднюю нагрузку системы за последние 1, 5 и 15 минут.
Что означают эти значения?
Каждое из трёх чисел показывает среднее количество процессов, находящихся в состоянии ожидания выполнения или активно выполняющихся за последнюю минуту, последние 5 минут и последние 15 минут соответственно. Эти значения позволяют оценить текущую и историческую загруженность системы.
Как интерпретировать эти значения?
✅Значение равное количеству ядер CPU: Если значение load average равно количеству логических ядер CPU, это означает, что система загружена на 100%. Например, для системы с четырьмя ядрами значение 4.00 означает полную загрузку.
✅Значение меньше количества ядер CPU: Значения ниже количества ядер указывают на то, что у системы есть свободные ресурсы, и она не перегружена.
✅Значение выше количества ядер CPU: Если значение превышает количество логических ядер CPU, это означает, что процессы конкурируют за ресурсы CPU, что может приводить к задержкам в выполнении. Например, значение 6.00 на системе с 4 ядрами означает, что некоторые процессы ждут доступа к процессору.
Как используются эти данные?
Данные о средней нагрузке используются системными администраторами для мониторинга производительности серверов и компьютеров. Это помогает определить, требуется ли увеличение ресурсов, оптимизация нагрузки или же система справляется со своими задачами. Понимание изменений в значениях load average со временем также может помочь выявить потенциальные проблемы с производительностью до того, как они станут критическими.
Load average — это важный показатель, который отражает не только количество активных процессов, ожидающих выполнения в очереди процессора, но и те, что уже выполняются. Он предоставляет быстрый обзор текущего состояния системы и её способности справляться с задачами. Понимание и правильная интерпретация значений load average помогают управлять ресурсами системы более эффективно.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1119 вопросов на DevOps. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых