Библиотека собеса по DevOps | вопросы с собеседований
3.09K subscribers
134 photos
4 videos
2 files
252 links
Вопросы с собеседований по DevOps и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d7e18893

Для обратной связи: @proglibrary_feeedback_bot
加入频道
Что такое Ingress в Kubernetes и как он работает?

Ingress — это API-объект, который управляет внешним доступом HTTP/HTTPS к службам внутри кластера Kubernetes. Он позволяет маршрутизировать запросы на основе имени хоста и путей, выступая в качестве обратного прокси-сервера для нескольких приложений.

Пример определения Ingress YAML:
apiVersion:
networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host:
my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80


Библиотека собеса по DevOps
Что такое виртуализация?

В момент появления понятия виртуализации, оно представляло собой метод логического разделения мейнфреймов для одновременной работы нескольких приложений. Однако с развитием технологий появилась возможность одновременной работы нескольких операционных систем на одном сервере x86, что значительно изменило смысл виртуализации.

В результате виртуализация позволяет запускать две различные операционные системы на одном устройстве. Первая операционная система может использоваться для административных целей, в то время как остальные гостевые операционные системы загружаются как обычно, включая инициализацию и загрузку ядра. Этот метод также обеспечивает повышенный уровень безопасности, так как гостевая операционная система не имеет полного доступа к управляющей (host) операционной системе, что помогает избежать возможных уязвимостей в безопасности.

Есть три типа виртуализации:
✍🏻 Паравиртуализация
✍🏻 Эмуляция
✍🏻 Контейнерная виртуализация


Библиотека собеса по DevOps
Что такое пространства имен в Kubernetes?

Пространство имен — это виртуальный кластер в кластере Kubernetes. Он помогает организовать рабочие нагрузки в многопользовательских средах, изолируя ресурсы в кластере.

Ниже вы можете найти короткий фрагмент кода, который показывает, как создать пространство имен с помощью kubectl и как создать и получить Pod в этом пространстве имен:

kubectl create namespace dev
kubectl run nginx --image=nginx --namespace=dev
kubectl get pods --namespace=dev


Библиотека собеса по DevOps
Опишите процесс масштабирования контейнеров Docker

Контейнеры могут быть масштабированы с использованием команды docker-compose scale. Процесс масштабирования такой — масштабируем контейнер и запускаем n экземпляров:

$ docker-compose --file docker-compose-run-srvr.yml scale =

В вышеприведенном примере имя сервиса задается в файле docker-compose-run-srvr.yml, а также запускается n копий контейнеров, где n — любое целое положительное число.

После масштабирования контейнера для проверки можно использовать такую команду:

$ docker ps -a


Библиотека собеса по DevOps
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

👉 Курс здесь
Что вы знаете о сетевой политике Kubernetes?

Сетевая политика Kubernetes указывает, как модули в одном пространстве имен взаимодействуют друг с другом и с конечной точкой сети. Сетевые политики позволяют контролировать трафик на уровне IP-адреса и порта. С помощью сетевой политики Kubernetes вы можете определить правила, которые указывают, какой трафик может проходить между модулями, а какой трафик следует блокировать.

Библиотека собеса по DevOps
Как удалить развертывание Kubernetes с именем «my-deployment»?

👾
— kubectl delete deployment my-deployment
👍 — kubectl remove deployment my-deployment
🥰 — kubectl rm deployment my-deployment
— kubectl delete deploy my-deployment

Библиотека собеса по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👾6🙏1
Как можно безопасно слить узел K8s?

Мы можем использовать следующие команды:

— «kubectl cordon», чтобы пометить узел как «непланируемый». Это переводит узел в режим обслуживания и предотвращает планирование на нем новых модулей.
— Команда «kubectl drain –ignore-daemon-set» удаляет существующие модули с узла. Параметр «--ignore-daemon-set» пропустит все модули, которые являются частью DaemonSet, что гарантирует, что основные системные службы не будут нарушены.


Библиотека собеса по DevOps
👍1
Как можно защитить кластер Kubernetes?

Следуйте модели безопасности 4C для защиты кластера Kubernetes:
1. Безопасность облачного провайдера: используйте роли IAM и правила брандмауэра.
2. Безопасность кластера: включите RBAC, журналы аудита и безопасность сервера API.
3. Безопасность контейнера: сканируйте образы и используйте некорневых пользователей.
4. Безопасность кода: реализуйте управление секретами и используйте сетевые политики.


Библиотека собеса по DevOps
Что такое bearer token?

Bearer token, также известный как токен учетной записи службы, представляет собой JWT-токен, который генерируется автоматически при создании новой учетной записи службы. Он содержит информацию о конкретной учетной записи службы и подписывается корневым сертификатом кластера. Этот токен сохраняется в объекте типа secret, который затем монтируется в POD по стандартному пути и периодически обновляется. При использовании данного токена процесс, запущенный в контейнере, получает доступ к API Kubernetes и может выполнять только разрешенные действия.

Библиотека собеса по DevOps
Как можно выполнить техническое обслуживание в одном поде?

Вот шаги для выполнения обслуживания в одном модуле:
✔️ Получить имя модуля, для которого вы хотите выполнить обслуживание, с помощью команды;
✔️ Перевести модуль в режим обслуживания, добавив к нему метку;
✔️ Убедиться, что метка была применена к модулю;
✔️ Выполнить обслуживание модуля по мере необходимости;
✔️ Удалить метку обслуживания с модуля, когда закончите;
✔️ Убедиться, что метка была удалена.


Библиотека собеса по DevOps
Что такое хранимая процедура и чем она отличается от функции в SQL?

Хранимая процедура — это предварительно скомпилированный набор операторов SQL, которые могут быть выполнены как единое целое для выполнения определенной задачи. В отличие от функций, хранимые процедуры могут возвращать несколько наборов результатов и изменять объекты базы данных, тогда как функции обычно возвращают одно значение и не могут изменять данные.

Библиотека собеса по DevOps
Вы видите в Kibana после нажатия на «Discover» «561 hits». Что это значит?

Общее количество документов, соответствующих результатам поиска. Если не используется запрос, то просто общее количество документов.

Библиотека собеса по DevOps
Назовите три типичные причины ошибок Pod и способы их устранения

Модули могут зависнуть в состояниях Pending, CrashLoopBackOff или ImagePullBackOff:

✔️ Модуль завис в состоянии Pending: Проверьте доступность узла и ограничения ресурсов. Для получения дополнительной информации см. события модуля.
✔️ CrashLoopBackOff: Проверьте журналы приложения и проверьте правильность конфигурации.
✔️ ImagePullBackOff: Убедитесь, что указаны правильное имя образа и учётные данные для извлечения. Для получения дополнительной информации см. события модуля.

Вы можете проверить события модуля с помощью команды describe:
kubectl describe pod <pod-name>


Библиотека собеса по DevOps
Что такое sidecar-контейнеры Kubernetes и как они используются?

Контейнер sidecar работает параллельно с основным контейнером приложения внутри того же модуля. Он обычно используется для:

Ведения журнала и мониторинга
(например, сбора журналов с помощью Fluentd).
Прокси-серверов безопасности (например, запуск прокси-сервера Envoy от Istio для сервисной сетки).
Управления конфигурацией (например, синхронизации настроек приложения).
Пример контейнера sidecar для обработки журналов:

apiVersion: v1
kind: Pod
metadata:
name: app-with-sidecar
spec:
containers:
- name: main-app
image: my-app
volumeMounts:
- mountPath: /var/log
name: shared-logs
- name: log-collector
image: fluentd
volumeMounts:
- mountPath: /var/log
name: shared-logs
volumes:
- name: shared-logs
emptyDir: {}


Библиотека собеса по DevOps
👍1😁1👾1
Что такое пейджинг по требованию?

Пейджинг по требованию — это метод управления памятью, при котором страницы загружаются в физическую память только при доступе к ним процесса. Он оптимизирует использование памяти, загружая страницы по требованию, что снижает задержку запуска и накладные расходы на пространство. Однако он вносит некоторую задержку при первом доступе к страницам. В целом, это экономически эффективный подход к управлению ресурсами памяти в операционных системах.

Библиотека собеса по DevOps
В чем разница между var x int = 2 и x := 2 в Go?

Результат тот же — переменная со значением 2. С помощью var x int = 2 мы устанавливаем тип переменной как целое число, а с помощью x := 2 мы позволяем Go самому определить тип.

Библиотека собеса по DevOps
Знаете ли вы, что такое «теорема CAP»? (так называемая теорема Брюера)

Согласно теореме CAP, распределенное хранилище данных не может одновременно предоставлять более двух из следующих данных:
Доступность: на каждый запрос приходит ответ (не обязательно самые последние данные); Согласованность: на каждый запрос приходит ответ с самыми последними данными.


Библиотека собеса по DevOps
1
Что такое сокет? Где можно увидеть список сокетов в вашей системе?

Сокет — это программная конечная точка, которая обеспечивает двустороннюю связь между процессами по сети. Сокеты предоставляют стандартизированный интерфейс для сетевой связи, позволяя приложениям отправлять и получать данные по сети. Чтобы просмотреть список открытых сокетов в системе Linux: netstat -an Эта команда отображает список всех открытых сокетов, а также их протокол, локальный адрес, внешний адрес и состояние.

Библиотека собеса по DevOps
Какие типы гипервизоров существуют?

Хостинговые гипервизоры и гипервизоры без операционной системы.

Библиотека собеса по DevOps