cookie

Мы используем файлы cookie для улучшения сервиса. Нажав кнопку «Принять все», вы соглашаетесь с использованием cookies.

avatar

Библиотека собеса по DevOps | вопросы с собеседований

Вопросы с собеседований по DevOps и ответы на них. Список наших каналов: https://t.me/proglibrary/8353 Учиться у нас: https://proglib.io/w/907158ab Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Больше
Рекламные посты
2 050
Подписчики
-124 часа
+167 дней
+14830 дней
Время активного постинга

Загрузка данных...

Find out who reads your channel

This graph will show you who besides your subscribers reads your channel and learn about other sources of traffic.
Views Sources
Анализ публикаций
ПостыПросмотры
Поделились
Динамика просмотров
01
✍️Библиотека программиста» находится в поиске автора оригинальных статей Кто нужен? ● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги ● Энтузиасты, которым есть что сказать Тематика ● DevOps ● В четырех случаях из пяти вы предлагаете тему статьи Объем ● От 7 до 15 тыс. знаков без учета кода ● 2-3 статьи в месяц Оплата ● 8к руб. за статью ● Работаем с самозанятыми (компенсируем налог), ИП Я пишу «так себе», что делать? Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели. ✉️Пишите на [email protected]
2460Loading...
02
👨‍💻📎 27 сайтов с задачками для оттачивания навыков программирования Программистам без практики никуда. Поэтому время прокачать навыки: решение задач — хороший способ развить навыки разработки. Вам под силу эти задачи?➡️ 🔗 Ссылка на сайты
3247Loading...
03
✍️Библиотека программиста» находится в поиске автора оригинальных статей Кто нужен? ● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги ● Энтузиасты, которым есть что сказать Тематика ● DevOps ● В четырех случаях из пяти вы предлагаете тему статьи Объем ● От 7 до 15 тыс. знаков без учета кода ● 2-3 статьи в месяц Оплата ● 8к руб. за статью ● Работаем с самозанятыми (компенсируем налог), ИП Я пишу «так себе», что делать? Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели. ✉️Пишите на [email protected]
2992Loading...
04
Что такое финалайзеры (finalizers) и для чего они нужны? Это уникальные ключи в манифесте объекта, которые определяют операции, необходимые для выполнения перед удалением объекта. Например, они используются для предотвращения удаления pvc и pv при активном PODе.
5311Loading...
05
👀Что из этого сгенерировала нейросеть? Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть: 🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску 🌸Промты для разных задач 🌸Лайфхаки по использованию нейросетей 👉Подписывайтесь!
5440Loading...
06
Что такое CSI-плагин? Это концепция, которая обеспечивает единообразное использование сетевых файловых систем, построенных на различных технологических основах. Мы определяем storageClass, который соответствует дискам определенного типа, и разворачиваем provisioner в кластере — специальное программное обеспечение, способное заказывать сетевые диски в системе, способной их предоставлять (например, NAS или СХД). Затем мы создаем объект persistentVolumeClaim, указывая нужный storageClass. При появлении запроса на persistentVolumeClaim, provisioner заказывает диск необходимого размера в системе, которая их предоставляет, создает объект persistentVolume и связывает его с persistentVolumeClaim. При запуске POD на узле, соответствующий диск монтируется на этот узел по определенному пути, который затем монтируется на файловую систему POD.
5503Loading...
07
Каким образом мы можем разделять права в k8s? Для управления правами в Kubernetes используется механизм RBAC (Role Based Access Control). В этой системе выделяются три группы объектов: пользователь (user) или учетная запись сервиса (service account), которая определяет субъект доступа; роль (role) или кластерная роль (clusterRole), определяющая разрешения; и привязка роли (roleBinding) или кластерной роли (clusterRoleBinding) к конкретному субъекту.
5934Loading...
08
Что такое role/clusterRole? Роли определяют права с помощью наборов правил, которые включают: — Группы API, описанные в официальной документации по apiGroups и выводимые командой kubectl api-resources; — Ресурсы (например, pod, namespace, deployment и другие); — Глаголы (например, set, update и другие); — Имена ресурсов (resourceNames), которые используются в случае необходимости предоставления доступа к определенному ресурсу, а не ко всем ресурсам данного типа.
6654Loading...
09
В чем отличие меток (labels) от аннотаций (annotations)? Метки используются для создания механизмов поиска и группировки объектов, в то время как аннотации используются для добавления метаинформации к объекту. Например, с помощью аннотаций можно запретить service mesh внедрять sidecar-контейнеры в определенные поды.
7914Loading...
10
В чем разница между deployment и statefulset? В наименованиях PODов есть различия: в deployment в качестве суффикса используется случайный хеш, а в statefulset — порядковый номер. Каждый POD в statefulset имеет особое доменное имя, по которому к нему можно обратиться (это особенно полезно, например, для mongodb, где клиент должен знать имена всех узлов кластера). При работе с дисками (volume) statefulset использует алгоритм работы at most once, который ожидает завершения работы предыдущего POD с таким же именем, чтобы занять его привязанный диск, в то время как PODы deployment'а могут занять первый доступный диск. В стратегиях перезапуска PODов при обновлении также имеются различия.
8786Loading...
11
Готов построить успешную карьеру в сетевых технологиях или будешь дальше сидеть на среднем уровне? Открой секреты популярных протоколов для эффективной работы! Ждём тебя на открытом практическом уроке «OSPFv3 vs. OSFPv2 на практике: сравнение LSDB» от OTUS, где мы: ✅ разберемся со сходствами и отличиями протоколов OSPFv2 и OSPFv3 с практической точки зрения; ✅ реализуем их в сети на практике; ✅ рассмотрим полученные LSDB протоколов. Спикер — опытный сетевой инженер и архитектор, имеет экспертную сертификацию одного из ведущих мировых вендоров. Встречаемся 11 июня в 19:00 мск в рамках курса «Network Engineer». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS! ➡ Регистрируйся прямо сейчас, чтобы не пропустить бесплатный урок: https://meetup.otus.ru/netengine-lesson-11-06-2024/?utm_source=telegram&utm_medium=cpm&utm_campaign=netengine&utm_term=devops_interview_lib&utm_content=lesson_11-06-2024_usp-sysadmin_sysadmin_text_no-headline_aida_long_aibanner_lesson-banner_red_standart Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzqv3wP9Q
7910Loading...
12
🔥 Кто такой DevOps-инженер? Человек, что стоит на страже покоя. Человек, способный помирить программиста и системного администратора. Человек, способный сохранить бизнесу миллионы. В этом ролике кратко рассказывается про задачи DevOps и про необходимые навыки. Также самое интересное — зарплаты DevOps-инженера. Смотреть видео
7959Loading...
13
Что такое bearer token? Bearer token, также известный как токен учетной записи службы, представляет собой JWT-токен, который генерируется автоматически при создании новой учетной записи службы. Он содержит информацию о конкретной учетной записи службы и подписывается корневым сертификатом кластера. Этот токен сохраняется в объекте типа secret, который затем монтируется в POD по стандартному пути и периодически обновляется. При использовании данного токена процесс, запущенный в контейнере, получает доступ к API Kubernetes и может выполнять только разрешенные действия.
8703Loading...
14
🐳✈️ Docker ушёл из РФ! Инструкция по восстановлению доступа к Docker Hub для пользователей из России Docker заблокировал доступ к своему главному репозиторию Docker Hub для пользователей из России. Однако есть способы обойти это ограничение и продолжить работу. В этом посте мы расскажем, как настроить альтернативные репозитории и зеркала. Читать статью
61013Loading...
15
Что такое service account? Это уникальные элементы в API Kubernetes, которые называются учетными записями служб (ServiceAccounts) и связаны с определенным пространством имен и набором учетных данных, хранящихся в объектах Secrets в кластере. Эти пользователи (ServiceAccounts) предназначены главным образом для управления правами доступа к API Kubernetes для процессов, работающих в кластере Kubernetes.
1 0012Loading...
16
Что такое ARP? Как это работает? ARP означает протокол разрешения адресов (Address Resolution Protocol). Когда вы пытаетесь проверить IP-адрес в локальной сети, скажем, 192.168.1.1, ваша система должна преобразовать IP-адрес 192.168.1.1 в MAC-адрес. Это предполагает использование ARP для разрешения адреса, отсюда и его название. Системы хранят справочную таблицу ARP, в которой хранится информация о том, какие IP-адреса с какими MAC-адресами связаны. При попытке отправить пакет на IP-адрес система сначала сверится с этой таблицей, чтобы узнать, знает ли она уже MAC-адрес. Если значение кэшировано, ARP не используется.
1 1465Loading...
17
Что такое алерт в Prometheus? В Prometheus алерт — это уведомление, которое активируется при достижении определенного условия или порогового значения. Оповещения можно настроить на срабатывание, когда определенные показатели пересекают определенный порог или происходят определенные события. После срабатывания оповещения его можно перенаправить по различным каналам, таким как электронная почта, пейджер или чат, чтобы уведомить соответствующие группы или отдельных лиц о необходимости принятия соответствующих мер. Оповещения являются важнейшим компонентом любой системы мониторинга, поскольку они позволяют командам активно выявлять проблемы и реагировать на них до того, как они повлияют на пользователей или приведут к простою системы.
1 0724Loading...
18
⚡️Proglib запускает канал про ИИ для генерации звука Там мы будем рассказывать про все существующие нейросети, которые генерируют музыку и голос — с пошаговыми инструкциями, инструментами и лайфхаками. ⭐️генерация голоса и музыки ⭐️замена и перевод речи ⭐️распознавание звуков 👉Подписывайтесь!
1 0391Loading...
19
Что такое service mesh и для чего он нужен? Service mesh - это шаблон, который обеспечивает более гибкое управление трафиком в Kubernetes. Service mesh включает в себя control plane, который собирает информацию о кластере Kubernetes, запущенных в нем приложениях, а также дополнительных объектах (custom resources), которые могут быть описаны для настройки, и sidecar-контейнеры, которые обычно инжектируются в PODы автоматически с помощью mutation webhook. Sidecar-контейнеры являются прокси-серверами, перехватывающими входящий и исходящий трафик приложений в контейнерах и управляющими ими в соответствии с конфигурацией, полученной из control plane.
1 1305Loading...
20
Как мы можем ограничить трафик в Kubernetes? Для управления трафиком от приложений применяется объект networkpolicy. С его помощью можно контролировать как входящий, так и исходящий трафик на уровне неймспейса и компонентов, определенных в нем. Реализация поддержки данного объекта должна быть выполнена на уровне CNI-плагина.
1 0244Loading...
21
Что такое CRI? CRI означает интерфейс выполнения контейнера. Это спецификация, описывающая определенный уровень абстракции, позволяющая унифицированно использовать различные версии программного обеспечения для работы с контейнерами, такими как Containerd или CRI-O.
1 1405Loading...
22
Что такое CNI-плагин и для чего он нужен? Аббревиатура CNI расшифровывается как Container Network Interface. Это представляет собой уровень абстракции над реализацией сети, позволяя работать с верхнеуровневыми абстракциями, такими как IP-адрес PODа и Endpoint. CNI-плагин отвечает за то, как это будет реализовано на физическом уровне. Существует множество CNI-плагинов (например, Flannel, Calico, Cilium), которые предлагают различный функционал и сетевую производительность. Они могут быть простыми, использующими L3-маршрутизацию, iptables и IPVS, а также достаточно сложными, обеспечивающими шифрование внутреннего трафика, поддержку VLAN, маршрутизацию на основе IBGP, поддержку EGRESS и другие функции.
1 2006Loading...
23
Каким образом организована сеть в k8s? В Kubernetes существуют три типа сетей: 1. Сеть узлов (node network) — это сеть, в которую объединены узлы кластера. В зависимости от используемого CNI-плагина, узлы могут работать либо в одной подсети, либо в нескольких. 2. Сеть POD-ов (pod network) — это сеть, в которой получают IP-адреса запускаемые POD-ы. 3. Сеть сервисов (service network) — это сеть, в которой получают адреса сервисы Kubernetes. Сети POD-ов и сервисов организуются с помощью CNI-плагинов.
1 1098Loading...
24
Каким образом мы можем предоставить приложение, которое работает в нашем кластере, k8s нашим пользователям? Если наше приложение работает через HTTP, мы можем использовать ingress-контроллер, который является реверс-прокси, интегрированным с Kubernetes API. Этот контроллер позволяет на основе custom resources маршрутизировать трафик по HTTP. — Для ряда задач мы можем использовать Kubernetes service. Мы можем использовать тип externalIp, чтобы опубликовать порт сервиса на определенных IP-адресах наших нод. Тип nodePort позволяет опубликовать порт сервиса на всех нодах на произвольных портах в определенном диапазоне. Также есть опция trafficPriority: local, которая позволяет предпочитать PODы приложения, находящегося на локальной ноде при маршрутизации трафика. — Для работы в облаке мы можем использовать тип loadBalancer. Это создает сервис, аналогичный nodePort, но с добавлением load balancer, который маршрутизирует трафик на ноды кластера через порты, выбранные для nodePort. — Мы также можем использовать kubectl proxy для проброса порта сервиса локально на нашу машину, что может быть полезно для разработки. — Используя nodeNetwork: true (нужно проверить, когда будет доступ в интернет), мы можем разрешить приложению, работающему в контейнере, использовать сеть ноды и занимать сетевые порты непосредственно на интерфейсах ноды.
1 1066Loading...
25
Каким образом мы можем запустить в Kubernetes приложение (варианты: рабочую нагрузку, workload)? Запускать PODы поодиночке можно, но обычно для этого используются более функциональные сущности в Kubernetes, такие как: — Deployment, который используется для развертывания необходимого количества PODов на основе общего шаблона. — StatefulSet, похожий на Deployment, но оптимизированный для работы с stateful-приложениями. — DaemonSet, позволяющий развернуть один экземпляр приложения на каждом доступном узле и обычно используется для обслуживания узлов. — Job, для запуска конечного процесса в контейнере и ожидания его успешного завершения с заданием политик запуска, таких как длительность и количество рестартов в случае сбоя. — CronJob, аналогичный Job, но с возможностью запуска по расписанию и ведением логов успешных запусков. ReplicationController считается устаревшим и практически не используется, на его место пришел Deployment.
1 0487Loading...
26
Что такое POD? Группа контейнеров, соединенных общей сетью (общий localhost, общий внешний IP), может быть необходима для запуска взаимозависимых сервисов, которые используют общие файловые ресурсы или взаимодействуют друг с другом по сети (например, nginx + php-fpm).
1 0837Loading...
27
Для чего при старте PODа создаётся контейнер с процессом pause? Для PODа необходимо создать как минимум два контейнера. Один из них используется с pause для обеспечения общей сети (для этого создается network namespace в linux), что позволяет размещать все контейнеры PODа на одной ноде.
1 2315Loading...
28
Хотите тестировать приложения на Python быстрее? Создайте пакет в Python и интегрируйте его с проектами Django. О том, как это сделать, мы поговорим на открытом уроке «Как создать свою библиотеку и ускорить тестирование в Django REST framework». Приглашаем веб-разработчиков, Python-разработчиков, бэкенд-разработчиков, девопс-инженеров. ✅ Вы научитесь: ▫️Создавать пакет Python ▫️Пользоваться инструментами для тестирования приложений в Django REST Framework ▫️Писать тест-кейсы для юнит-тестов ▫️Интегрировать созданный пакет в проекты Django Занятие проведёт Python-разработчик и опытный преподаватель OTUS – Леонид Орлов. 🎁Бонус! Всем участникам – скидка 5% на любой курс OTUS 23 мая в 19:00 МСК ➡ Записаться на воркшоп Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqvpD4BC
5610Loading...
29
Что такое Kubernetes probes? Эти проверки выполняются в течение жизненного цикла PODа и описываются для каждого контейнера в PODе. Существует три типа проверок. Startup probe запускается сразу после запуска PODа и используется для приложений с длительной процедурой инициализации. Другие проверки не запускаются, пока эта не завершится. Readiness probe проверяет готовность PODа обрабатывать трафик (POD не добавляется в маршрутизацию трафика в сервисе, пока эта проверка не будет пройдена). Liveness probe проверяет, работает ли приложение (в случае неудачной проверки процесс в контейнере PODа перезапускается). Readiness и Liveness — независимые и запускаются после прохождения Startup probe. Существуют exec-, http-, tcp- и grpc-проверки. Проверки выполняются сервисом kubelet на узле, на котором запущен целевой POD.
1 29311Loading...
30
Каким образом мы можем управлять вычислительными ресурсами в k8s? Для эффективного управления ресурсами в кластере k8s используются resources requests / limits. Они могут быть настроены для CPU, памяти и, в последних версиях k8s, для GPU. Requests используются для определения типичного потребления ресурсов нашим приложением. На основе этих данных Kubernetes scheduler выбирает ноды для запуска PODов (сумма всех request'ов контейнеров во всех PODах не должна превышать доступные ресурсы на ноде). Limits служат как механизм предотвращения, ограничивая потребление ресурсов контейнером в PODе. При превышении лимита процессорного времени применяется thermal throttling, а при превышении лимита памяти — механизм OOM. Модель, при которой requests меньше limits, называется burstable QoS, а когда requests равны limits — guaranteed QoS. Кроме того, можно установить квоты ресурсов на namespace (CPU, память, количество запущенных PODов, размер диска persistent volume) и указать требования к resources requests на PODах в namespace с помощью limit ranges. Для управления ресурсами приложений также можно использовать автоскейлеры. В k8s доступны HPA (horizontal pod autoscaler), который регулирует количество PODов в зависимости от потребления CPU и/или памяти, и VPA (vertical pod autoscaler), который управляет resources requests / limits. Существуют также реализации автоскейлеров, которые могут использовать внешние метрики (например, длину очереди), такие как carpenter или KEDA. В облачном окружении можно использовать cluster autoscaler для добавления или удаления нод в зависимости от общей загрузки кластера.
1 0528Loading...
31
Каким образом мы можем управлять размещением PODов на конкретных нодах кластера k8s? Есть несколько вариантов. NodeSelector/node affinity — это механизм, который позволяет запускать PODы на узлах с определенным набором меток. Это может быть полезно, если, например, PODы требуют специфического оборудования, например, у нас есть группа узлов с GPU для задач машинного обучения. Taints/tolerations — это механизм, который позволяет запрещать запуск PODов на узле (taint — описывается на узле), если они не имеют соответствующего разрешения (toleration — описывается на POD'е). Это может быть полезно, если у нас в кластере есть несколько окружений — мы можем выделить узлы для production и с помощью taint запретить запуск PODов тестовых окружений на них. Pod affinity/antiAffinity — это механизм, который позволяет группировать PODы различных приложений на общих узлах (если им важен быстрый сетевой доступ) или, наоборот, заставлять их запускаться на разных узлах (например, для распределения PODов одного приложения по узлам кластера для повышения отказоустойчивости в случае сбоя на узле).
99013Loading...
32
Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов IT-мемы Proglib Academy — тут мы рассказываем про обучение и курсы 🤖Про нейросети Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка Библиотека нейротекста | ChatGPT, Gemini, Bing Библиотека нейровидео | Sora AI, Runway ML, дипфейки Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion #️⃣C# Книги для шарпистов | C#, .NET, F# Библиотека шарписта — полезные статьи, новости и обучающие материалы по C# Библиотека задач по C# — код, квизы и тесты Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel ☁️DevOps Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps Вакансии по DevOps & SRE Библиотека задач по DevOps — код, квизы и тесты Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования 🐘PHP Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP Вакансии по PHP, Symfony, Laravel Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по PHP — код, квизы и тесты 🐍Python Библиотека питониста — полезные статьи, новости и обучающие материалы по Python Вакансии по питону, Django, Flask Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Python — код, квизы и тесты ☕Java Книги для джавистов | Java Библиотека джависта — полезные статьи по Java, новости и обучающие материалы Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Java — код, квизы и тесты Вакансии для java-разработчиков 👾Data Science Книги для дата сайентистов | Data Science Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Data Science — код, квизы и тесты Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту 🦫Go Книги для Go разработчиков Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Go — код, квизы и тесты Вакансии по Go 🧠C++ Книги для C/C++ разработчиков Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++ Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по C++ — код, квизы и тесты Вакансии по C++ 💻Другие каналы Библиотека фронтендера Библиотека мобильного разработчика Библиотека хакера Библиотека тестировщика Вакансии по фронтенду, джаваскрипт, React, Angular, Vue Вакансии для мобильных разработчиков Вакансии по QA тестированию InfoSec Jobs — вакансии по информационной безопасности 📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈 Также у нас есть боты: Бот с IT-вакансиями Бот с мероприятиями в сфере IT Мы в других соцсетях: 🔸VK 🔸YouTube 🔸Дзен 🔸Facebook * 🔸Instagram * * Организация Meta запрещена на территории РФ
9684Loading...
33
Каким образом мы можем вывести ноду из работы для обслуживания? Мы можем остановить запуск PODов на узле с помощью команды kubectl cordon и высвободить узел от PODов при помощи команды kubectl drain.
1 0316Loading...
34
Что такое POD eviction? Этот механизм позволяет удалить ноду от избыточных PODов. Существуют evict'ы по ресурсам (когда нода не имеет достаточно памяти, дискового пространства или PID для процессов) и вызов API - когда мы запускаем kubectl drain node.
1 1605Loading...
35
Что такое priority classes? Этот механизм в Kubernetes позволяет определить приоритет PODов для наших процессов. Например, если у нас есть продакшн и тестовые окружения в одном кластере Kubernetes, мы можем установить более высокий приоритет для PODов продакшн с помощью priority class. Таким образом, если возникнет нехватка ресурсов на узле, в первую очередь будут удалены PODы тестовых окружений.
1 2616Loading...
36
Допустим, у нас postgresql в кластере k8s, и разработчики просят к ней доступ. Каким образом мы можем решить этот вопрос? В первую очередь, мы можем развернуть в кластере веб-интерфейс для работы с базой данных, например, pgAdmin, и опубликовать его через ingress для разработчиков. Также возможен вариант использования инструмента, который позволит разработчикам получить доступ к кластеру, например, Kubernetes Dashboard или Lens, с возможностью выполнения команд в POD и доступом к базе через утилиту командной строки. Если разработчикам требуется прямой сетевой доступ к базе данных (например, для использования своего любимого инструмента для работы с БД), мы можем создать аккаунт для разработчиков в кластере и использовать kubectl proxy для публикации порта базы данных на локальной машине разработчика. Также можно установить сервер VPN в кластере. В конечном итоге, можно опубликовать базу данных через Kubernetes Service или Ingress, но в этом случае необходимо обеспечить защиту соединения с базой данных (пользователи, доступы) и использовать шифрование протокола.
1 3747Loading...
37
Какие существуют хорошие практики для создания проб? Испытания должны оценивать работоспособность функционала приложения, используемого для обработки запросов пользователей. Например, если в приложении имеется панель администратора и веб-сайт, необходимо проверить ответ от сайта, который не просто передает простой код ответа, а запускает функцию, использующую механизмы приложения, аналогичные обработке реальных запросов пользователей. Пробы должны быть легкими и не нагружать инфраструктуру приложения, а также не запускаться слишком часто. Им следует избегать проверки функционала, зависящего от внешних сервисов, чтобы избежать каскадных сбоев. Особенно внимательно нужно относиться к liveness-пробам, которые могут вызвать дополнительные проблемы, особенно в периоды высокой нагрузки. Рекомендуется выделить отдельный пул воркеров для прохождения liveness-пробы. Для readiness-пробы лучше создавать сквозные проверки, например, проверять только location nginx, который проксирует php-fpm, одним запросом проверяя оба сервиса.
1 2322Loading...
✍️Библиотека программиста» находится в поиске автора оригинальных статей Кто нужен? ● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги ● Энтузиасты, которым есть что сказать Тематика ● DevOps ● В четырех случаях из пяти вы предлагаете тему статьи Объем ● От 7 до 15 тыс. знаков без учета кода ● 2-3 статьи в месяц Оплата ● 8к руб. за статью ● Работаем с самозанятыми (компенсируем налог), ИП Я пишу «так себе», что делать? Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели. ✉️Пишите на [email protected]
Показать все...
Фото недоступноПоказать в Telegram
👨‍💻📎 27 сайтов с задачками для оттачивания навыков программирования Программистам без практики никуда. Поэтому время прокачать навыки: решение задач — хороший способ развить навыки разработки. Вам под силу эти задачи?➡️ 🔗 Ссылка на сайты
Показать все...
✍️Библиотека программиста» находится в поиске автора оригинальных статей Кто нужен? ● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги ● Энтузиасты, которым есть что сказать Тематика ● DevOps ● В четырех случаях из пяти вы предлагаете тему статьи Объем ● От 7 до 15 тыс. знаков без учета кода ● 2-3 статьи в месяц Оплата ● 8к руб. за статью ● Работаем с самозанятыми (компенсируем налог), ИП Я пишу «так себе», что делать? Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели. ✉️Пишите на [email protected]
Показать все...
👍 1
Что такое финалайзеры (finalizers) и для чего они нужны? Это уникальные ключи в манифесте объекта, которые определяют операции, необходимые для выполнения перед удалением объекта. Например, они используются для предотвращения удаления pvc и pv при активном PODе.
Показать все...
Фото недоступноПоказать в Telegram
👀Что из этого сгенерировала нейросеть? Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть: 🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску 🌸Промты для разных задач 🌸Лайфхаки по использованию нейросетей 👉Подписывайтесь!
Показать все...
Что такое CSI-плагин? Это концепция, которая обеспечивает единообразное использование сетевых файловых систем, построенных на различных технологических основах. Мы определяем storageClass, который соответствует дискам определенного типа, и разворачиваем provisioner в кластере — специальное программное обеспечение, способное заказывать сетевые диски в системе, способной их предоставлять (например, NAS или СХД). Затем мы создаем объект persistentVolumeClaim, указывая нужный storageClass. При появлении запроса на persistentVolumeClaim, provisioner заказывает диск необходимого размера в системе, которая их предоставляет, создает объект persistentVolume и связывает его с persistentVolumeClaim. При запуске POD на узле, соответствующий диск монтируется на этот узел по определенному пути, который затем монтируется на файловую систему POD.
Показать все...
👍 1
Каким образом мы можем разделять права в k8s? Для управления правами в Kubernetes используется механизм RBAC (Role Based Access Control). В этой системе выделяются три группы объектов: пользователь (user) или учетная запись сервиса (service account), которая определяет субъект доступа; роль (role) или кластерная роль (clusterRole), определяющая разрешения; и привязка роли (roleBinding) или кластерной роли (clusterRoleBinding) к конкретному субъекту.
Показать все...
Что такое role/clusterRole? Роли определяют права с помощью наборов правил, которые включают: — Группы API, описанные в официальной документации по apiGroups и выводимые командой kubectl api-resources; — Ресурсы (например, pod, namespace, deployment и другие); — Глаголы (например, set, update и другие); — Имена ресурсов (resourceNames), которые используются в случае необходимости предоставления доступа к определенному ресурсу, а не ко всем ресурсам данного типа.
Показать все...
👍 1
В чем отличие меток (labels) от аннотаций (annotations)? Метки используются для создания механизмов поиска и группировки объектов, в то время как аннотации используются для добавления метаинформации к объекту. Например, с помощью аннотаций можно запретить service mesh внедрять sidecar-контейнеры в определенные поды.
Показать все...
1
В чем разница между deployment и statefulset? В наименованиях PODов есть различия: в deployment в качестве суффикса используется случайный хеш, а в statefulset — порядковый номер. Каждый POD в statefulset имеет особое доменное имя, по которому к нему можно обратиться (это особенно полезно, например, для mongodb, где клиент должен знать имена всех узлов кластера). При работе с дисками (volume) statefulset использует алгоритм работы at most once, который ожидает завершения работы предыдущего POD с таким же именем, чтобы занять его привязанный диск, в то время как PODы deployment'а могут занять первый доступный диск. В стратегиях перезапуска PODов при обновлении также имеются различия.
Показать все...