Зміст[Сховати][Показати]
- 1. Що таке Kubernetes?
- 2. Що ви маєте на увазі під контейнером у Kubernetes?
- 3. Які основні компоненти Kubernetes?
- 4. Що ви маєте на увазі під оркестровкою в kubernetes?
- 5. Що таке кластер Kubernetes?
- 6. Як Kubernetes спрощує розгортання в контейнерах?
- 7. Які принципові відмінності існують між Kubernetes і Docker Swarm?
- 8. Що таке простір імен у Kubernetes?
- 9. Що таке основний компонент Kubernetes etcd?
- 10. Які існують рішення для безпеки API на Kubernetes?
- 11. Які відмінності між програмами, розгорнутими на хостах і контейнерах?
- 12. Що ви насправді маєте на увазі під Minikube?
- 13. Як можна контролювати кластер Kubernetes?
- 14. Яку функцію виконують вузли Kubernetes?
- 15. Детально опишіть хіпстера.
- 16. Опишіть роботу головного вузла Kubernetes.
- 17. Чим контейнер відрізняється від стручка?
- 18. Що ви розумієте під балансувальником навантаження в Kubernetes?
- 19. Яку функцію виконує сервер Kube-API?
- 20. Що означають набори стану Kubernetes?
- 21. Як ви досліджуєте центральні колоди стручка?
- 22. ClusterIP: що це?
- 23. Розкажіть мені про контролери реплікації?
- 24. Як працює мережа Ingress і що це таке?
- 25. Prometheus в Kubernetes: для чого це?
- 26. Що таке безголовий сервіс?
- 27. Що мені потрібно для локального запуску архітектури Kubernetes?
- 28. Що ви розумієте під Stateful set?
- 29. Що означають міньйони в Kubernetes?
- 30. Які функції виконують служби в компонентах Kubernetes?
- 31. Що таке Хелм?
- 32. Поясніть ПВХ
- Висновок
Google спочатку створив Kubernetes, технологію оркестровки контейнерів з відкритим вихідним кодом, у 2014 році. Розгортання, масштабування та адміністрування контейнерних програм мали бути автоматизованими.
Kubernetes з часом розвинувся, щоб стати галузевим де-факто стандартом оркестровки контейнерів і широко використовується компаніями будь-якого розміру для керування своїми робочими навантаженнями в контейнерах.
Значення Kubernetes у сучасному світі полягає в його здатності запропонувати послідовний метод керування контейнерними програмами в масштабі, що охоплює різні кластери та хмарні середовища. Завдяки цьому підприємства можуть керувати, розширюватися та розгорнути свої програми швидко та ефективно.
Обслуговування контейнерних програм ще більше спрощується завдяки широкому набору функцій Kubernetes, який включає самовідновлення, автоматичне масштабування та поточні оновлення.
Оскільки все більше компаній використовують контейнеризацію та мікросервіси для прискорення розробки додатків і процедур розгортання, очікується, що сфера Kubernetes буде розширюватися в майбутньому.
Прийняття хмарних технологій і загальний перехід до багатохмарних і гібридних хмарних систем значною мірою залежатимуть від Kubernetes. Оскільки все більше і більше пристроїв підключається до Інтернету, Kubernetes також буде використовуватися все більше і більше в контексті краю обчислень та IoT.
Я припускаю, що ви вже знаєте про ці деталі, оскільки читаєте цю публікацію в розділі «Питання для співбесіди Kubernetes», яка інформуватиме вас про найпоширеніші запитання для співбесіди. Давайте почнемо.
1. Що таке Kubernetes?
Kubernetes є фреймворк з відкритим кодом для оркестровки та адміністрування контейнерних програм. Це дає змогу послідовно й ефективно розгортати, масштабувати та підтримувати контейнерні програми.
Kubernetes пропонує єдиний метод для масштабного керування контейнерними програмами та створений для роботи в різних кластерах і хмарних середовищах.
Самовідновлення, автоматичне масштабування та постійне оновлення – це лише деякі з можливостей, які роблять керування контейнерними програмами ще простіше.
2. Що ви маєте на увазі під контейнером у Kubernetes?
Контейнери — це портативний, легкий і самодостатній підхід до пакування та запуску програмного забезпечення. Упаковка та розгортання програми здійснюються послідовно й ефективно в Kubernetes за допомогою контейнерів.
Щоб триматися окремо від інших контейнерів і головної машини, кожен контейнер виконує лише один процес. Залежності програми, бібліотеки та файли конфігурації включені в образ контейнера, який служить визначенням контейнера.
Запланована кількість реплік контейнера завжди працює завдяки використанню Kubernetes оркестровки контейнерів для керування та масштабування контейнерів. Це спрощує розробникам керування та розгортання своїх програм у кількох кластерах і хмарних середовищах.
3. Які основні компоненти Kubernetes?
Ось основні компоненти kubeneters:
- Головний Kubernetes: цей компонент, який також містить диспетчер контролера та планувальник тощо (розподілене сховище ключів і значень), сервер API та інші компоненти, відповідає за керування кластером загалом.
- Вузли: це робочі станції, на яких виконуються контейнерні програми. Kubelet, який взаємодіє з головним для підтримки належного стану кластера, виконується на кожному вузлі разом із середовищем виконання контейнера (наприклад, Docker).
- Поди: Найменшим і основним елементом об’єктної моделі Kubernetes є модуль, який служить хостом для одного або кількох контейнерів.
- Сервіси. Сервіси пропонують узгоджену кінцеву точку для модулів і дозволяють балансувати навантаження та виявляти сервіси.
- Контролери реплікації: вони гарантують, що необхідна кількість реплік модулів завжди працює.
- Секрети та ConfigMaps: ці ресурси використовуються для підтримки конфігураційних даних і секретів для модулів та інших об’єктів кластера.
4. Що ви маєте на увазі під оркестровкою в kubernetes?
У Kubernetes термін «оркестровка» означає автоматизоване адміністрування та координацію контейнерів і ресурсів, до яких вони підключені. Це включає діяльність, включаючи створення мережі, масштабованість, розгортання та самовідновлення. Використовуючи такі об’єкти, як модулі, служби та контролери реплікації, Kubernetes керує програмами.
Контейнери, які можуть вмістити один або кілька контейнерів, є найменшими розгортаними одиницями. Служби керують балансування навантаження і виявлення служб, а також надати модулям надійну кінцеву точку. Репліка модуля завжди працює з необхідною кількістю копій завдяки контролерам реплікації.
5. Що таке кластер Kubernetes?
Набір вузлів, на яких виконуються контейнерні додатки в різних контекстах і на машинах — хмарних, фізичних, віртуальних і локальних — утворює кластер Kubernetes. Це полегшує просте керування та міграцію програм, а також їх створення.
6. Як Kubernetes спрощує розгортання в контейнерах?
Оскільки типова програма працюватиме в кластері контейнерів на багатьох хостах, усім цим контейнерам потрібно буде спілкуватися один з одним.
Отже, щоб досягти цього, потрібна великомасштабна система, яка може масштабувати, балансувати навантаження та контролювати контейнери. Ви повинні використовувати Kubernetes, щоб полегшити розгортання в контейнерах, оскільки він не залежить від хмари та може працювати з будь-яким державним або приватним постачальником.
7. Які принципові відмінності існують між Kubernetes і Docker Swarm?
Плануйте та кластеризуйте контейнери Docker за допомогою Docker Swarm, рідного інструменту оркестровки контейнерів із відкритим кодом від Docker. Наступні характеристики відрізняють Swarm від Kubernetes:
- Хоча Kubernetes і Docker Swarm не мають можливостей автоматичного масштабування, Docker масштабується в п’ять разів швидше, ніж Kubernetes.
- Kubernetes надає графічний інтерфейс у формі інформаційної панелі, але Docker Swarm її не має.
- Порівняно з Kubernetes, який складніше налаштувати, але він гарантує потужний кластер, Docker Swarm легше встановити, але він не має стабільного кластера.
- Хоча Kubernetes містить вбудовані можливості для журналювання та моніторингу, Docker потребує зовнішніх інструментів, таких як стек ELK.
- Поточні оновлення можна розгортати через Docker, але автоматичне відкочування не можна; За допомогою Kubernetes можна розгортати постійні оновлення, а також автоматичні відкати.
8. Що таке простір імен у Kubernetes?
Простір імен Kubernetes використовується в умовах, коли кілька користувачів працюють над численними проектами в широкій географічній зоні. Простір імен розділяє ресурси кластера між кількома користувачами.
9. Що таке основний компонент Kubernetes etcd?
Etcd є важливою частиною головного сервера Kubernetes. Крім того, він служить центром кластера Kubernetes, де елементи зберігаються в розподіленому сховищі ключ-значення.
Технологія реплікації використовується в поєднанні з алгоритмом для збереження даних, збережених у etcd, між серверами. Під час порівняння та обміну даними між серверами etcd використовується оптимістична валюта, щоб мінімізувати ситуації блокування та збільшити швидкість сервера.
10. Які існують рішення для безпеки API на Kubernetes?
Забезпечення безпеки API можна виконати в такий спосіб:
- Через засоби аутентифікації API
- Вибір відповідного режиму автентифікації для режиму автентифікації сервера API= Node, RBAC
- Відстеження помилок RBAC
- Переконайтеся, що TLS використовується для захисту трафіку
- Використання authorization-mode=Webhook, щоб переконатися, що Kubeless захищає свій API
- Скасування стандартних дозволів облікового запису служби
- Використання останнього випуску kube
- Переконайтеся, що інформаційна панель kube відповідає суворій політиці RBAC
- Впровадження політики безпеки модуля для обмеження доступу до контейнера та захисту вузла
11. Які відмінності між програмами, розгорнутими на хостах і контейнерах?
Операційна система та архітектура складають розгорнуті програми. Операційна система матиме ядро, в якому зберігаються численні бібліотеки, необхідні програмі.
Машина, яка запускає контейнери процесів, називається хостом контейнера. Оскільки цей тип програмного забезпечення відрізняється від інших програм, додатки повинні містити необхідні бібліотеки. Двійкові файли не можуть порушувати права будь-якого іншого програмного забезпечення, оскільки вони відокремлені від решти системи.
12. Що ви насправді маєте на увазі під Minikube?
За допомогою Minikube Kubernetes можна легко запускати локально. Це дозволяє віртуальній машині розмістити кластер Kubernetes з одним вузлом.
13. Як можна контролювати кластер Kubernetes?
Роботу та статус контейнерів, що працюють під керуванням Kubernetes, можна відстежувати різними методами. Prometheus, один із найбільш часто використовуваних інструментів, містить кілька частин, які розбиті в розділах нижче.
- Сервер Prometheus збирає та зберігає дані часових рядів.
- Він містить клієнтські бібліотеки, які полегшують інструментування коду програми.
- Він має push-шлюз, який підтримує тимчасові роботи.
- Існують експортери зі спеціалізованими функціями для різноманітних контейнерних сервісів, як-от StatsD, HAProxy, Graphite тощо.
- Крім того, ви отримаєте менеджер сповіщень для обробки сповіщень у різних системах підтримки.
14. Яку функцію виконують вузли Kubernetes?
Для роботи модулів Node пропонує важливі функції. Ноди, також відомі як міньйони, можуть працювати на будь-якому реальному чи віртуальному комп’ютері залежно від кластера.
У Kubernetes вузол є основним робочим комп’ютером, а головні компоненти наглядають за кожним вузлом окремо.
15. Детально опишіть хіпстера.
Heapster об’єднує дані в усьому кластері, який генерує Kubelet, який виконується на кожному вузлі. Цей інструмент керування контейнером підтримується цим кластером Kubernetes і функціонує як модуль, як і будь-який інший пакет у кластері.
По суті, це передбачає визначення місцезнаходження кожного вузла в кластері та використання вбудованого агента Kubernetes для запиту даних із вузлів Kubernetes кластера.
16. Опишіть роботу головного вузла Kubernetes.
Головний вузол підвищує керівні та керуючі вузли робочих вузлів. Це схоже на кластер Kubernetes. Вузли відповідають за керування кластером, а також за API, який використовується для налаштування та керування ресурсами колекції. Завдяки перевагам виділених модулів головні вузли Kubernetes можуть працювати разом із самим Kubernetes.
17. Чим контейнер відрізняється від стручка?
Як одиницю реплікації Kubernetes використовує pod, який є групою контейнерів. Контейнери — це набір кодів, які має створити пакет для програми. Контейнери можуть спілкуватися один з одним у межах одного модуля.
18. Що ви розумієте під балансувальником навантаження в Kubernetes?
Одним із найпоширеніших і прийнятних методів надання послуг є балансування навантаження. Залежно від робочого середовища, балансувальник навантаження є внутрішнім або зовнішнім балансувальником навантаження.
У той час як зовнішній балансувальник навантаження направляє трафік від зовнішнього навантаження до серверних модулів, внутрішній балансувальник навантаження автоматично балансує навантаження та призначає модулям необхідну конфігурацію.
19. Яку функцію виконує сервер Kube-API?
Для об’єктів API цей тип перевіряє та пропонує конфігураційну інформацію. Він складається з контролерів реплікації, служб і модулів. Крім того, він пропонує операції REST та інтерфейс кластера. Усі інші компоненти спілкуються один з одним через цей загальний зовнішній стан кластера.
20. Що означають набори стану Kubernetes?
Об’єкт API робочого навантаження, який називається набором із збереженням стану, використовується для керування додатками із збереженням стану. Він використовується для масштабування наборів модулів і керування розгортанням. У дисковому сховищі, яке пов’язане з набором стану, інформація про стан та інші стійкі дані модулів із збереженням стану зберігалися та підтримувалися в актуальному стані.
21. Як ви досліджуєте центральні колоди стручка?
Для отримання центральних журналів із контейнера можна використовувати один із двох стилів журналювання.
- Використовуйте агент журналювання на рівні вузла.
- Контейнер з коляскою в потоці
- Використовуйте лісозаготівельний агент разом із контейнером з коляскою.
- Безпосередньо експортуйте журнали з програми
22. ClusterIP: що це?
Служба Kubernetes за умовчанням, ClusterIP, пропонує внутрішню службу кластера (без зовнішнього доступу), до якої мають доступ інші програми у вашому кластері.
23. Розкажіть мені про контролери реплікації?
Для всіх модулів, які довго працюють, контролери реплікації виконують функції наглядачів. Це гарантує, що необхідна кількість модулів активна в будь-який момент і що кожен пакет або група модулів має узгоджену структуру.
Якщо стручків більше, ніж запланована кількість, надлишок стручків припиняється. Крім того, контролер негайно замінить будь-які несправні контейнери.
24. Як працює мережа Ingress і що це таке?
Користувачі можуть отримати доступ до ваших служб Kubernetes поза межами кластера Kubernetes завдяки елементу, який називається вхід. Встановлюючи правила, які визначають, які вхідні з’єднання досягають певних служб, користувачі можуть налаштувати доступ.
Цей об’єкт API пропонує правила маршрутизації, необхідні для керування доступом до служб у кластері Kubernetes відвідувачами з-за меж кластера через HTTPS/HTTP. Завдяки цьому користувачі можуть створювати правила маршрутизації трафіку швидко й ефективно без необхідності створювати кілька балансувальників навантаження або надавати кожну службу для вузлів.
25. Prometheus в Kubernetes: для чого це?
Набір інструментів з відкритим кодом під назвою Prometheus використовується для моніторингу та попередження програми залежно від показників. Він пропонує схему даних і мову запитів, а також може надавати інформацію про показники та дії. Це дозволяє використовувати мову для багатьох інструментальних цілей.
На додаток до Alertmanager і Grafana, оператор Prometheus пропонує простий моніторинг розгортань і служб K8s.
26. Що таке безголовий сервіс?
Безголовий сервіс — це той, який використовує IP-адресу, але надає інформацію про підключені модулі, а не балансування навантаження.
27. Що мені потрібно для локального запуску архітектури Kubernetes?
Для інтеграції Kubernetes кілька локальних інфраструктур зазнали модернізації. Щоб інтегрувати сховище, сервери та мережу в єдину систему, необхідний досвід високого рівня.
Вибір відповідного обладнання для мережі та зберігання є важливим для Kubernetes, оскільки воно забезпечує взаємодію з ресурсами для зберігання, балансувальниками навантаження тощо. Автоматизація компонентів мережі та зберігання є ключовим компонентом ціннісної пропозиції Kubernetes.
28. Що ви розумієте під Stateful set?
Елемент API робочого навантаження, відомий як набір стану, використовується для керування додатками із збереженням стану. Його також можна використовувати для масштабування наборів модулів і керування розгортанням. Дискове сховище, підключене до набору стану, містить інформацію про стан та інші дані для блоків із збереженням стану.
29. Що означають міньйони в Kubernetes?
У Kubernetes вузол називається робочою машиною; раніше він був відомий як міньйон. На основі кластера це може бути віртуальний комп’ютер або реальна машина.
Кожен вузол керується основними компонентами Kubernetes і містить служби, необхідні для роботи модулів. Середа виконання контейнера, kubelet і Kube-проксі входять до послуг, які пропонує вузол.
30. Які функції виконують служби в компонентах Kubernetes?
Завдяки наданню віртуальної IP-адреси послуга служить абстракцією для модулів. Віртуальна IP-адреса полегшує підключення користувачів до контейнерів, що працюють у контейнерах. Це компонент, який визначає, як контейнери розташовані в контейнерах.
31. Що таке Хелм?
Реєстр керування пакетами програм Helm, який підтримує CNF, доступний для Kubernetes. Попередньо налаштований Карти керма можна завантажити та розгорнути у вашій системі Kubernetes. Це одне з найпопулярніших рішень для керування пакетами для середовища Kubernetes. Команди DevOps можуть розгортати програми в середовищі виробництва та розробки, створювати їх версії та відстежувати їхній прогрес за допомогою наявних діаграм.
32. Поясніть ПВХ
PVC — це абревіатура від Persistent Volume Claim. Це сховище, яке Kubernetes запитує для контейнерів. Користувачеві не потрібні знання базового забезпечення. Простір імен, у якому формується пакет, і куди має бути зроблено цю претензію, мають збігатися.
Висновок
Питання та відповіді на інтерв’ю Kubernetes завершено.
Безсумнівно, є ще що дізнатися про Kubernetes, передову технологію, яка зробила можливим керувати та запускати тисячі контейнерів, але це надійне місце для початку. Довідку з підготовки до співбесіди див Серія інтерв'ю Хашдорка.
залишити коментар