40 лучших вопросов и ответов на собеседовании по Kubernetes в 2024 году
Kubernetes происходит от греческого слова, означающего «капитан», «рулевой» или «губернатор». Этот термин теперь также используется в мире DevOps и локальной разработки программного обеспечения для обозначения мощного пакета решений, который позволяет инженерам по эксплуатации легко масштабировать и обслуживать серверные (и коробочные) установки. Кубернетес был создан Джо Бедой, Крейгом Маклаки и Бренданом Бернсом, к которым позже присоединились инженеры Google, прежде чем официально выпустить его в 2014 году. Сегодня Kubernetes поддерживается Cloud Native Computing Foundation (CNCF) и превратился в быстрорастущую и широко используемая экосистема.
Сейчас вам, наверное, интересно, что делает Kubernetes? Что ж, ответ на этот вопрос не может быть полностью объяснен в рамках этой статьи. В конце концов, существуют целые курсы по Kubernetes, которые призваны ответить на этот вопрос, в том числе и о том, как его использовать.
Однако здесь мы рассмотрим некоторые часто задаваемые вопросы и ответы на собеседованиях по Kubernetes. Эти вопросы и ответы помогут вам подготовиться к любому собеседованию или сертификационному экзамену, который вам, возможно, придется сдать после завершения обучения Kubernetes. Итак, без лишних слов, давайте сразу приступим.
40 лучших вопросов и ответов на собеседовании по Kubernetes
1. Что такое Кубернетес?
Kubernetes — это инструмент или система оркестрации контейнеров с открытым исходным кодом, которая используется для автоматизации таких задач, как управление, мониторинг, масштабирование и развертывание контейнерных приложений. Он используется для простого управления несколькими контейнерами (поскольку он может обрабатывать группировку контейнеров), что обеспечивает возможность обнаружения и управления логическими единицами.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
2. Что такое К8?
K8s — это еще один термин для Kubernetes.
3. Что такое оркестровка, когда речь идет о программном обеспечении и DevOps?
Оркестрация означает интеграцию нескольких сервисов, которая позволяет им автоматизировать процессы или своевременно синхронизировать информацию. Скажем, например, у вас есть шесть или семь микросервисов для запуска приложения. Если разместить их в отдельных контейнерах, это неизбежно создаст препятствия для общения. В такой ситуации поможет оркестровка, позволяющая всем службам в отдельных контейнерах работать бесперебойно для достижения единой цели.
4. Как связаны Kubernetes и Docker?
Docker — это платформа с открытым исходным кодом, используемая для разработки программного обеспечения. Его основное преимущество заключается в том, что он упаковывает настройки и зависимости, необходимые программному обеспечению/приложению для запуска, в контейнер, что обеспечивает переносимость и ряд других преимуществ. Kubernetes позволяет вручную связывать и оркестровать несколько контейнеров, работающих на нескольких хостах, созданных с помощью Docker.
5. Каковы основные различия между Docker Swarm и Kubernetes?
Docker Swarm — это собственная платформа оркестрации контейнеров Docker с открытым исходным кодом, которая используется для кластеризации и планирования контейнеров Docker. Swarm отличается от Kubernetes следующим образом:
- Docker Swarm более удобен в настройке, но не имеет надежного кластера, тогда как Kubernetes сложнее настроить, но преимущество заключается в наличии уверенности в надежном кластере.
- Docker Swarm не умеет автоматически масштабироваться (как и Kubernetes); однако масштабирование Docker происходит в пять раз быстрее, чем Kubernetes.
- У Docker Swarm нет графического интерфейса; Kubernetes имеет графический интерфейс в виде информационной панели.
- Docker Swarm выполняет автоматическую балансировку нагрузки трафика между контейнерами в кластере, тогда как Kubernetes требует ручного вмешательства для балансировки нагрузки такого трафика.
- Docker требует сторонних инструментов, таких как стек ELK, для ведения журналов и мониторинга, в то время как Kubernetes имеет встроенные инструменты для тех же целей.
- Docker Swarm может легко делиться томами хранилища с любым контейнером, в то время как Kubernetes может делиться томами хранилища только с контейнерами в одном поде.
- Docker может развертывать чередующиеся обновления, но не может выполнять автоматические откаты; Kubernetes может развертывать чередующиеся обновления, а также автоматические откаты.
6. Каковы основные компоненты архитектуры Kubernetes?
Существует два основных компонента: главный узел и рабочий узел. Каждый из этих компонентов содержит отдельные компоненты.
7. Что такое узел в Kubernetes?
Узел — это наименьшая фундаментальная единица вычислительного оборудования. Он представляет собой одну машину в кластере, которая может быть физической машиной в центре обработки данных или виртуальной машиной от облачного провайдера. Каждая машина может заменить любую другую машину в кластере Kubernetes. Мастер в Kubernetes управляет узлами, имеющими контейнеры.
8. Что содержит статус узла?
Основными компонентами статуса узла являются адрес, состояние, емкость и информация.
9. Какой процесс выполняется на главном узле Kubernetes?
Серверный процесс Kube-api запускается на главном узле и служит для масштабирования развертывания большего количества экземпляров.
10. Что такое модуль в Kubernetes?
Поды — это структуры высокого уровня, которые обертывают один или несколько контейнеров. Это связано с тем, что контейнеры не запускаются непосредственно в Kubernetes. Контейнеры в одном модуле используют локальную сеть и одни и те же ресурсы, что позволяет им легко взаимодействовать с другими контейнерами в том же модуле, как если бы они находились на одном компьютере, сохраняя при этом определенную степень изоляции.
11. В чем заключается работа кубе-планировщика?
Планировщик kube назначает узлы вновь созданным подам.
12. Что такое кластер контейнеров в Kubernetes?
Кластер контейнеров — это набор элементов машины, которые являются узлами. Кластеры инициируют определенные маршруты, чтобы контейнеры, работающие на узлах, могли взаимодействовать друг с другом. В Kubernetes контейнерный движок (а не сервер API Kubernetes) предоставляет хостинг для сервера API.
13. Что такое Google Container Engine?
Google Container Engine — это платформа управления с открытым исходным кодом, специально разработанная для контейнеров и кластеров Docker и обеспечивающая поддержку кластеров, работающих в общедоступных облачных сервисах Google.
14. Что такое наборы демонов?
Набор демонов — это набор модулей, который запускается на хосте только один раз. Они используются для атрибутов уровня хоста, таких как сеть, или для мониторинга сети, который вам, возможно, не придется запускать на хосте более одного раза.
15. Что такое «Heapster» в Kubernetes?
Heapster — это система мониторинга производительности и сбора показателей для данных, собранных Kublet. Этот агрегатор поддерживается изначально и работает как любой другой модуль в кластере Kubernetes, что позволяет ему обнаруживать и запрашивать данные об использовании со всех узлов кластера.
16. Что такое пространство имен в Kubernetes?
Пространства имен используются для разделения ресурсов кластера между несколькими пользователями. Они предназначены для сред, где много пользователей разбросаны по проектам или командам, и предоставляют определенный объем ресурсов.
17. Назовите исходные пространства имен, с которых стартует Kubernetes?
- По умолчанию
- Это была система
- Это было – публично
18. Что такое диспетчер контроллеров Kubernetes?
Диспетчер контроллеров — это демон, который используется для внедрения основных циклов управления, сбора мусора и создания пространства имен. Это позволяет запускать несколько процессов на главном узле, даже если они скомпилированы для запуска как одного процесса.
19. Какие бывают типы менеджеров-контролеров?
Основными менеджерами контроллеров, которые могут работать на главном узле, являются контроллер конечных точек, контроллер учетных записей служб, контроллер пространства имен, контроллер узла, контроллер токенов и контроллер репликации.
20. Что такое т. д.?
Kubernetes использует ectd в качестве распределенного хранилища «ключ-значение» для всех своих данных, включая метаданные и данные конфигурации, и позволяет узлам в кластерах Kubernetes читать и записывать данные. Хотя etcd был специально создан для CoreOS, он также работает в различных операционных системах (например, Linux, BSB и OS X), поскольку имеет открытый исходный код. Etcd представляет состояние кластера в определенный момент времени и является каноническим центром управления состоянием и координации кластера Kubernetes.
21. Какие сервисы существуют в Kubernetes?
Различные типы сервисов Kubernetes включают в себя:
- Кластерный IP-сервис
- Служба узла порта
- Служба создания внешнего имени и
- Служба балансировки нагрузки
22. Что такое ClusterIP?
ClusterIP — это служба Kubernetes по умолчанию, которая предоставляет службу внутри кластера (без внешнего доступа), к которой могут получить доступ другие приложения внутри вашего кластера.
23. Что такое NodePort?
Служба NodePort — это наиболее фундаментальный способ передачи внешнего трафика непосредственно в вашу службу. Он открывает определенный порт на всех узлах и перенаправляет любой трафик, отправленный на этот порт, в службу.
24. Что такое LoadBalancer в Kubernetes?
Служба LoadBalancer используется для предоставления услуг Интернету. Например, балансировщик сетевой нагрузки создает один IP-адрес, который перенаправляет весь трафик в вашу службу.
25. Что такое безголовый сервис?
Безголовый сервис используется для взаимодействия с механизмами обнаружения сервисов без привязки к ClusterIP, что позволяет вам напрямую обращаться к модулям без необходимости доступа к ним через прокси. Это полезно, когда не требуется ни балансировка нагрузки, ни единый IP-адрес службы.
26. Что такое кубелет?
Kubelet — это сервисный агент, который контролирует и обслуживает набор модулей, отслеживая характеристики модулей через API-сервер Kubernetes. Он сохраняет жизненный цикл модуля, гарантируя, что все заданные контейнеры работают должным образом. Kubelet запускается на каждом узле и обеспечивает связь между главным и подчиненным узлами.
27. Что такое Кубектл?
Kubectl — это CLI (интерфейс командной строки), который используется для запуска команд в кластерах Kubernetes. Таким образом, он управляет менеджером кластера Kubernetes с помощью различных команд создания и управления в компоненте Kubernetes.
28. Приведите примеры рекомендуемых мер безопасности для Kubernetes.
Примеры стандартных мер безопасности Kubernetes включают определение квот ресурсов, поддержку аудита, ограничение доступа к etcd, регулярные обновления безопасности среды, сегментацию сети, определение строгих политик использования ресурсов, непрерывное сканирование на наличие уязвимостей безопасности и использование образов из авторизованных репозиториев.
29. Что такое Kube-прокси?
Kube-proxy — это реализация балансировщика нагрузки и сетевого прокси, используемая для поддержки абстракции сервисов с другими сетевыми операциями. Kube-прокси отвечает за направление трафика в нужный контейнер на основе IP и номера порта входящих запросов.
30. Как получить статический IP-адрес для балансировщика нагрузки Kubernetes?
Статический IP-адрес для балансировщика нагрузки Kubernetes можно получить путем изменения записей DNS, поскольку Kubernetes Master может назначить новый статический IP-адрес.
Посмотрите следующее видео, чтобы получить более глубокое представление о вопросах и ответах на собеседовании по Kubernetes:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)