fa
Feedback
DevOps | Вопросы собесов

DevOps | Вопросы собесов

رفتن به کانال در Telegram
5 498
مشترکین
-724 ساعت
-127 روز
-1630 روز
آرشیو پست ها
🤔 Что такое user space и kernel space? В операционных системах на базе Unix и Linux существует разделение между двумя важными областями памяти: пространством пользователя (user space) и пространством ядра (kernel space). Это разделение важно для обеспечения стабильности и безопасности системы. 🚩Kernel Space (Пространство ядра) Пространство ядра - это область памяти, в которой работает ядро операционной системы и его расширения, включая драйверы устройств. Ядро имеет полный доступ к аппаратным ресурсам системы и может выполнять привилегированные операции. 🟠Полный доступ к аппаратуре: Ядро имеет прямой доступ к памяти, процессору, устройствам ввода-вывода и другим аппаратным компонентам. 🟠Привилегированный режим выполнения: Код, выполняемый в пространстве ядра, работает в привилегированном режиме процессора, что позволяет ему выполнять критически важные и потенциально опасные операции. 🟠Управление ресурсами: Ядро управляет ресурсами системы, такими как память, процессорное время, файловые системы и сетевые соединения. 🟠Обработка системных вызовов: Ядро обрабатывает системные вызовы от приложений, которые выполняются в пространстве пользователя. Эти вызовы включают операции ввода-вывода, управление памятью, управление процессами и другие. 🚩User Space (Пространство пользователя) Пространство пользователя - это область памяти, в которой выполняются пользовательские приложения и процессы. Это пространство изолировано от пространства ядра для обеспечения безопасности и стабильности системы. 🟠Ограниченный доступ к аппаратуре: Приложения в пространстве пользователя не имеют прямого доступа к аппаратным ресурсам. Все обращения к аппаратуре происходят через системные вызовы, которые передаются ядру. 🟠Непривилегированный режим выполнения: Код, выполняемый в пространстве пользователя, работает в непривилегированном режиме процессора, что ограничивает его возможности и предотвращает выполнение опасных операций. 🟠Изоляция и безопасность: Процессы в пространстве пользователя изолированы друг от друга и от пространства ядра. Это предотвращает одну программу от вмешательства в работу другой и защищает ядро от потенциально вредоносных действий. 🚩Взаимодействие между Kernel Space и User Space Взаимодействие между пространством пользователя и ядра происходит через системные вызовы. Когда приложение в пространстве пользователя хочет выполнить операцию, требующую привилегий ядра (например, чтение файла или создание процесса), оно выполняет системный вызов. Ядро обрабатывает этот вызов и возвращает результат в пространство пользователя. Примером системного вызова является функция read() в языке программирования C, которая позволяет читать данные из файла. Тут open(), read(), и close() являются системными вызовами, которые передают управление от пространства пользователя к пространству ядра для выполнения операций с файлами.
#include <unistd.h>
#include <fcntl.h>

int main() {
    int fd = open("example.txt", O_RDONLY);
    if (fd == -1) {
        // Ошибка при открытии файла
        return 1;
    }

    char buffer[128];
    ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
    if (bytesRead == -1) {
        // Ошибка при чтении файла
        return 1;
    }

    // Обработка данных
    close(fd);
    return 0;
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 В чём разница между контейнеризацией и виртуализацией? Контейнеризация использует контейнеры для изоляции приложений и их зависимостей на уровне операционной системы, что делает контейнеры более лёгкими по сравнению с виртуальными машинами. Виртуализация, в свою очередь, создает полноценные виртуальные машины с собственными ОС поверх гипервизора, что требует больше ресурсов. Контейнеры запускаются на общем ядре ОС хоста, а виртуальные машины имеют свои ядра, что делает их независимыми, но более тяжёлыми. Контейнеры обеспечивают большую гибкость и скорость развертывания по сравнению с виртуальными машинами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Новые бесплатные курсы в канале Selectel Newsfeed. Подойдут всем: от новичков до продвинутых айтишников. Вас ждут обзоры, инс
+5
Новые бесплатные курсы в канале Selectel Newsfeed. Подойдут всем: от новичков до продвинутых айтишников. Вас ждут обзоры, инструкции и статьи, которые помогут разобраться в темах структурно и последовательно. Вступайте в сообщество IT-специалистов в Telegram от Selectel. Подписаться #реклама 16+ О рекламодателе

🤔 В чем разница между linux и unix? Разница между Linux и Unix заключается в их происхождении, разработке, лицензировании и архитектурных особенностях. Хотя они оба являются операционными системами, основывающимися на схожих концепциях, они имеют несколько ключевых различий. 🚩Происхождение и история 🟠Unix Происхождение: Unix был разработан в AT&T Bell Labs в конце 1960-х и начале 1970-х годов Кеном Томпсоном, Деннисом Ритчи и другими. История: Unix стал основой для многих других операционных систем, включая различные коммерческие и академические версии, такие как BSD (Berkeley Software Distribution), AIX (от IBM), HP-UX (от Hewlett-Packard), Solaris (от Sun Microsystems) и другие. 🟠 Linux Происхождение:Linux был разработан Линусом Торвальдсом в 1991 году как бесплатная и открытая альтернатива Unix. История: Linux основан на идеях и стандартах Unix, но он не содержит исходного кода Unix. Linux стал популярным благодаря своей открытой модели разработки и поддержке со стороны сообщества. 🚩Лицензирование 🟠Unix Лицензия: Unix традиционно был коммерческой операционной системой, распространяемой по проприетарной лицензии. Каждая версия Unix имела свои собственные лицензионные условия и коммерческие модели. 🟠Linux Лицензия: Linux распространяется под лицензией GNU General Public License (GPL), что делает его свободным и открытым программным обеспечением. Это позволяет пользователям свободно использовать, изменять и распространять Linux. 🚩Разработка и поддержка 🟠Unix Разработка: Разработка Unix велась различными коммерческими и академическими организациями. Каждая версия Unix разрабатывалась и поддерживалась своим собственным вендором. Поддержка: Поддержка Unix зависела от вендора, который предоставлял коммерческую поддержку для своей версии системы. 🟠Linux Разработка: Linux разрабатывается сообществом разработчиков по всему миру. Основной веткой ядра Linux управляет Линус Торвальдс и его команда, но различные дистрибутивы (например, Debian, Ubuntu, Fedora, CentOS, и т.д.) добавляют свои собственные компоненты и поддержку. Поддержка: Linux поддерживается как сообществом, так и коммерческими организациями (например, Red Hat, Canonical, SUSE), предоставляющими платную поддержку и услуги. 🚩Архитектурные особенности и использование 🟠Unix Архитектура: Unix системы часто следуют определенным стандартам, таким как POSIX, и имеют стабильное, проверенное временем ядро и архитектуру. Использование: Unix традиционно используется в крупных корпоративных средах, на серверах и мейнфреймах, в научных и инженерных приложениях. 🟠Linux Архитектура: Linux также следует стандартам POSIX и имеет модульную архитектуру, которая позволяет пользователям и разработчикам легко добавлять новые функции. Использование: Linux используется повсеместно — от серверов и суперкомпьютеров до встраиваемых систем и мобильных устройств (например, Android). Он также широко используется в настольных системах благодаря множеству дистрибутивов. Ставь 👍 и забирай 📚 Базу знаний

– Помощь с pet-проектом – Составление roadmap – Общая консультация – Проведение код-ревью и mock-собеседования – Помощь с тру
– Помощь с pet-проектом – Составление roadmap – Общая консультация – Проведение код-ревью и mock-собеседования – Помощь с трудоустройством Все это и многое другое может Ментор. Он обеспечит вам необходимый boost, ускорит и упростит вход в IT. 🔥 Здесь размещен список менторов, и многие из них предлагают бесплатную первую консультацию

– Помощь с pet-проектом – Составление roadmap – Общая консультация – Проведение код-ревью и mock-собеседования – Помощь с тру
– Помощь с pet-проектом – Составление roadmap – Общая консультация – Проведение код-ревью и mock-собеседования – Помощь с трудоустройством Все это и многое другое может Ментор. Он обеспечит вам необходимый boost, ускорит и упростит вход в IT. 🔥 Здесь размещен список менторов, и многие из них предлагают бесплатную первую консультацию

🤔 Без какой инструкции не может существовать докер файл? FROM — это ключевая инструкция в Dockerfile, без которой файл не может существовать. Она указывает базовый образ, от которого начинается сборка контейнера. Любой Dockerfile должен начинаться с этой инструкции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу Знаний

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

🤔 Какую информацию хранит i нода? I-нода (или индексный узел, inode) в файловой системе UNIX и подобных ей (например, в Linux) является структурой данных, которая хранит информацию о файлах и каталогах. I-нода не содержит имени файла, но хранит метаданные, необходимые для управления файлом. Вот основная информация, которую хранит i-нода: 🟠Идентификатор (индекс) i-ноды Уникальный идентификатор, по которому можно однозначно определить файл в пределах файловой системы. 🟠Тип файла: Определяет, является ли объект файлом, каталогом, символической ссылкой, устройством и т.д. 🟠Права доступа: Содержит информацию о правах доступа к файлу для владельца, группы и других пользователей (чтение, запись, выполнение). 🟠Ссылки (link count): Количество жестких ссылок на этот файл, то есть сколько раз этот файл упоминается в различных каталогах. 🟠Идентификатор пользователя (UID): Указывает владельца файла. 🟠Идентификатор группы (GID): Указывает группу, к которой принадлежит файл. 🟠Размер файла: Размер файла в байтах. 🟠Временные метки: ctime (Change Time): Время последнего изменения i-ноды (метаданных). mtime (Modification Time): Время последнего изменения содержимого файла. atime (Access Time): Время последнего доступа к файлу. 🟠Расположение данных: Прямые указатели: Указывают на блоки данных непосредственно. Одноуровневые непрямые указатели: Указывают на блоки, которые содержат прямые указатели. Двухуровневые непрямые указатели: Указывают на блоки, которые содержат одноуровневые непрямые указатели. Трехуровневые непрямые указатели: Указывают на блоки, которые содержат двухуровневые непрямые указатели.
i-нод номер: 12345
Тип: Файл
Права доступа: rw-r--r--
Ссылки: 1
UID: 1000
GID: 1000
Размер: 2048 байт
ctime: 2023-07-31 12:34:56
mtime: 2023-07-31 12:00:00
atime: 2023-07-31 11:30:00
Прямые указатели: [2, 3, 4, ...]
Одноуровневый непрямой указатель: [5]
Двухуровневый непрямой указатель: [6]
Трехуровневый непрямой указатель: [7]
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что порождает init процесс? `init` — это первый процесс, который запускается ядром операционной системы после её загрузки. Он порождается непосредственно ядром как процесс с идентификатором PID 1 и отвечает за инициализацию системы, запуск всех остальных процессов и управление ними. `init` остаётся родительским процессом для всех орфанных процессов, обеспечивая их завершение или управление. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Yandex DataLens Festival, 2-18 декабря Для аналитиков, тимлидов, разработчиков, продактов и маркетологов. Эксперты Яндекса по
Yandex DataLens Festival, 2-18 декабря Для аналитиков, тимлидов, разработчиков, продактов и маркетологов. Эксперты Яндекса поделятся опытом. Онлайн и бесплатно Зарегистрироваться #реклама 16+ yandex.cloud О рекламодателе Реклама на Яндексе

🤔 Как реализовать идеальный деплой кода в production с помощью argocd? Argo CD — это инструмент для непрерывной доставки (CD) на основе GitOps, который автоматизирует развертывание приложений в Kubernetes. Он позволяет синхронизировать состояние кластера с состоянием в репозитории Git, что обеспечивает декларативное управление инфраструктурой и приложениями. 🚩Настройки идеального деплоя кода в production 1⃣Установка Argo CD Первым шагом является установка Argo CD в ваш Kubernetes кластер.
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
2⃣Доступ к интерфейсу Argo CD После установки необходимо настроить доступ к интерфейсу Argo CD. Вы можете использовать kubectl port-forward для локального доступа:
kubectl port-forward svc/argocd-server -n argocd 8080:443
3⃣Настройка аутентификации Получите начальный пароль для пользователя admin:
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
4⃣Создание приложения Argo CD Создайте репозиторий в Git, который будет содержать манифесты Kubernetes для вашего приложения. Репозиторий должен содержать все необходимые файлы для развертывания приложения (например, файлы Deployment, Service, ConfigMap и т.д.). 5⃣Добавление приложения в Argo CD Используйте веб-интерфейс или командную строку для создания нового приложения в Argo CD, которое будет синхронизироваться с вашим Git-репозиторием. 6⃣Синхронизация и развертывание Argo CD автоматически синхронизирует состояние вашего кластера с состоянием в Git-репозитории. Если вы включили автоматическую синхронизацию, изменения в репозитории будут автоматически развернуты в кластере. 7⃣Настройка уведомлений Argo CD можно настроить для отправки уведомлений о статусе развертываний через интеграции с такими инструментами, как Slack, email, или вебхуками. 8⃣Мониторинг и обратная связь Используйте веб-интерфейс Argo CD для мониторинга состояния приложений и синхронизации. Также можно настроить метрики и мониторинг через Prometheus и Grafana для более глубокого анализа. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие существуют Probe? В Kubernetes существуют три типа Probe: `Liveness Probe`, `Readiness Probe` и `Startup Probe`. `Liveness Probe` проверяет, жив ли контейнер и работает ли он корректно, перезапуская его при необходимости. `Readiness Probe` определяет, готов ли контейнер обрабатывать запросы, и управляет включением/выключением его из баланса нагрузки. `Startup Probe` используется для проверки успешного старта контейнера перед выполнением других Probe. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Цены на все Серверы онлайн! Удобный конфигуратор! Серверы STSS Flagman✅ Огромный выбор решений 👍 Консультации лучших эксперт
Цены на все Серверы онлайн! Удобный конфигуратор! Серверы STSS Flagman✅ Огромный выбор решений 👍 Консультации лучших экспертов 👌 Непревзойденный сервис ❤️ Получить предложение #реклама stss.ru О рекламодателе

🤔 Как прикрутить авторизацию кластеру? Для настройки авторизации в кластере Kubernetes можно использовать несколько механизмов, включая роль RBAC (Role-Based Access Control), аутентификацию с использованием токенов, сертификатов, и интеграцию с внешними системами аутентификации, такими как OpenID Connect (OIDC). Рассмотрим основные шаги для настройки RBAC и аутентификации с помощью токенов. 🚩Настройка RBAC (Role-Based Access Control) 1⃣Создание роли (Role) или кластерной роли (ClusterRole) Роли определяют, какие действия разрешены над какими ресурсами в определенном namespace (Role) или во всем кластере (ClusterRole).
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: read-pods
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
2⃣Создание роли связывания (RoleBinding) или кластерного связывания роли (ClusterRoleBinding) Связывание роли привязывает роль к конкретному пользователю, группе или субъекту службы (ServiceAccount).
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-pods-binding
subjects:
- kind: User
  name: jane
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: read-pods
  apiGroup: rbac.authorization.k8s.io
🚩Настройка аутентификации с использованием токенов Kubernetes поддерживает несколько методов аутентификации, включая использование токенов. Один из способов — использование токенов ServiceAccount. 1⃣Создание ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-service-account
  namespace: default
2⃣Создание связывания роли для ServiceAccount
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods-binding
  namespace: default
subjects:
- kind: ServiceAccount
  name: my-service-account
  namespace: default
roleRef:
  kind: Role
  name: read-pods
  apiGroup: rbac.authorization.k8s.io
3⃣Получение токена ServiceAccount
kubectl get secret $(kubectl get serviceaccount my-service-account -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode
🚩Интеграция с внешними системами аутентификации (OIDC) Для интеграции с внешними системами аутентификации, такими как OpenID Connect (OIDC), нужно настроить параметры API-сервера Kubernetes. Настройка API-сервера Добавьте параметры конфигурации OIDC в команду запуска kube-apiserver
--oidc-issuer-url=https://accounts.google.com \
--oidc-client-id=<client-id> \
--oidc-username-claim=email \
--oidc-groups-claim=groups
Ставь 👍 и забирай 📚 Базу знаний

📢 Хотите стать востребованным DevOps специалистом? 🚀 Пройдите короткий опрос из 12 вопросов и получите 3 бесплатных урока п
📢 Хотите стать востребованным DevOps специалистом? 🚀 Пройдите короткий опрос из 12 вопросов и получите 3 бесплатных урока по ключевым темам DevOps! Эти темы помогут вам освоить самые актуальные технологии и методы: - Технология контейнеризации. Введение в Docker - Методология DevOps: стратегии деплоев - Подход инфраструктура как код (Infrastructure as Code) Представьте, что вы сможете автоматизировать процессы, улучшить производительность и повысить свою ценность на рынке труда! Наши бесплатные уроки помогут вам сделать первые шаги к этим результатам! После прохождения опроса вам на почту придут все три урока! 📧Пройти опрос: https://otus.pw/7L9W/ Также сейчас действует скидка 15% на покупку курса "DevOps практики и инструменты" до 24.11.  Успейте приобрести курс со скидкой: https://otus.pw/8x3G/?erid=LjN8KB4Wh #реклама О рекламодателе

🤔 Зачем нужен OOM OOM (Out Of Memory) — это механизм, срабатывающий, когда системе не хватает памяти для работы, что приводит к завершению процессов с высокой нагрузкой. Он защищает систему от полного исчерпания памяти, освобождая ресурсы, чтобы другие процессы могли продолжать работать. OOM-killer используется для выбора и завершения наименее критичных процессов, предотвращая полное зависание системы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

🤔 Разница между докером и kubernetes? 🟠Назначение: Docker: Создание и запуск контейнеров. Kubernetes: Оркестрация и управление кластерами контейнеров. 🟠Уровень абстракции: Docker: Работает с контейнерами и образами. Kubernetes: Работает с подами, службами и другими абстракциями для управления контейнерами. 🟠Масштабируемость: Docker: Локальное масштабирование контейнеров. Kubernetes: Автоматическое масштабирование и управление контейнерами на кластерах. 🟠Управление состоянием: Docker: Не отслеживает состояние контейнеров. Kubernetes: Автоматически восстанавливает и управляет состоянием контейнеров. Ставь 👍 и забирай 📚 Базу знаний

🤔 По какой причине inode могут закончиться Inodes заканчиваются, когда файловая система достигает максимального количества файлов, которые можно создать, даже если еще есть свободное место на диске. Это может произойти при наличии большого количества мелких файлов, которые занимают inodes, особенно в файловых системах с ограниченным количеством inodes. Когда inodes исчерпаны, создание новых файлов становится невозможным, несмотря на наличие доступного дискового пространства. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний