Anonymous Quiz
35%
AES-256
17%
RSA-1024
41%
SHA-256
6%
Blowfish
Что такое volume и persistent volume и какие есть типы этих вольюмов ?
Спросят с вероятностью 13%
"volume" и "persistent volume" относятся к системам хранения данных, которые используются для управления данными приложений. Они играют важную роль в управлении состоянием и данными в среде контейнеров, где основной контейнер может быть временным и эфемерным.
Volume
Это директория, возможно, с данными, которая доступна контейнеру в поде. Эта директория может быть подключена из различных источников или создана внутри самого Kubernetes.
Типы:
✅emptyDir: Временный каталог, который удаляется при удалении пода. Используется для хранения данных, которые не нужно сохранять после остановки пода.
✅hostPath: Монтирует файловую систему хоста в под, что может быть полезно для доступа к системным файлам хоста.
✅configMap, secret: Используются для хранения конфигурационных данных и конфиденциальной информации, соответственно.
✅nfs: Подключает NFS-шару.
✅persistentVolumeClaim (PVC): Используется для монтирования постоянного хранилища в под.
Persistent Volume (PV)
Это ресурс в кластере, который администратор кластера предварительно настраивает. Он представляет собой сегмент хранилища, который был выделен для хранения и доступен для использования всеми подами.
Типы:
✅GCE Persistent Disks: Диски, предоставляемые Google Cloud.
✅AWS EBS: Блочные устройства хранения от Amazon Web Services.
✅Azure Disk Storage: Дисковое хранилище от Microsoft Azure.
✅NFS: Общий доступ к файлам через сетевую файловую систему.
✅iSCSI: Подключение к блочным устройствам хранения через интернет.
✅Local: Предоставляет хранилище с локальных узлов кластера.
✅CephFS, GlusterFS: Файловые системы, ориентированные на высокопроизводительное распределенное хранение.
Persistent Volume Claim (PVC)
Это запрос на хранилище, который делает пользователь кластера. Это похоже на пользовательский запрос на хранилище в облачных сервисах. PVC конкретизирует размер и параметры доступа к PV.
Использование и преимущества
Позволяет управлять данными более гибко:
✅Данные не теряются при остановке контейнера: PVs предоставляют постоянное хранилище, которое сохраняется независимо от жизненного цикла подов.
✅Эффективное использование ресурсов: Volumes могут быть монтированы по нескольким подам, что облегчает общий доступ к данным.
✅Безопасность: Секреты и конфигурации могут быть безопасно внедрены в контейнеры.
Volume обеспечивает временное хранение и подключение различных источников данных к контейнерам, тогда как Persistent Volume предоставляет постоянное и надежное хранилище, доступное для подов через механизм claims. Это позволяет приложениям работать с данными более гибко и безопасно.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
"volume" и "persistent volume" относятся к системам хранения данных, которые используются для управления данными приложений. Они играют важную роль в управлении состоянием и данными в среде контейнеров, где основной контейнер может быть временным и эфемерным.
Volume
Это директория, возможно, с данными, которая доступна контейнеру в поде. Эта директория может быть подключена из различных источников или создана внутри самого Kubernetes.
Типы:
✅emptyDir: Временный каталог, который удаляется при удалении пода. Используется для хранения данных, которые не нужно сохранять после остановки пода.
✅hostPath: Монтирует файловую систему хоста в под, что может быть полезно для доступа к системным файлам хоста.
✅configMap, secret: Используются для хранения конфигурационных данных и конфиденциальной информации, соответственно.
✅nfs: Подключает NFS-шару.
✅persistentVolumeClaim (PVC): Используется для монтирования постоянного хранилища в под.
Persistent Volume (PV)
Это ресурс в кластере, который администратор кластера предварительно настраивает. Он представляет собой сегмент хранилища, который был выделен для хранения и доступен для использования всеми подами.
Типы:
✅GCE Persistent Disks: Диски, предоставляемые Google Cloud.
✅AWS EBS: Блочные устройства хранения от Amazon Web Services.
✅Azure Disk Storage: Дисковое хранилище от Microsoft Azure.
✅NFS: Общий доступ к файлам через сетевую файловую систему.
✅iSCSI: Подключение к блочным устройствам хранения через интернет.
✅Local: Предоставляет хранилище с локальных узлов кластера.
✅CephFS, GlusterFS: Файловые системы, ориентированные на высокопроизводительное распределенное хранение.
Persistent Volume Claim (PVC)
Это запрос на хранилище, который делает пользователь кластера. Это похоже на пользовательский запрос на хранилище в облачных сервисах. PVC конкретизирует размер и параметры доступа к PV.
Использование и преимущества
Позволяет управлять данными более гибко:
✅Данные не теряются при остановке контейнера: PVs предоставляют постоянное хранилище, которое сохраняется независимо от жизненного цикла подов.
✅Эффективное использование ресурсов: Volumes могут быть монтированы по нескольким подам, что облегчает общий доступ к данным.
✅Безопасность: Секреты и конфигурации могут быть безопасно внедрены в контейнеры.
Volume обеспечивает временное хранение и подключение различных источников данных к контейнерам, тогда как Persistent Volume предоставляет постоянное и надежное хранилище, доступное для подов через механизм claims. Это позволяет приложениям работать с данными более гибко и безопасно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Anonymous Quiz
61%
kubectl apply -f
26%
kubectl deploy -f
8%
kubectl create -f
5%
kubectl start -f
Что такое service monitor в кубере ?
Спросят с вероятностью 13%
ServiceMonitor является частью экосистемы Prometheus, используемой вместе с оператором Prometheus для более удобного и автоматизированного мониторинга ресурсов в Kubernetes. Этот ресурс предназначен для упрощения процесса сбора метрик с различных сервисов, работающих внутри кластера Kubernetes.
Основная функция:
Это автоматизация процесса обнаружения сервисов и их метрик для Prometheus. В классическом использовании Prometheus, конфигурация целей сбора метрик обычно требует ручного определения. Автоматизирует этот процесс, позволяя Prometheus динамически обнаруживать сервисы в кластере и собирать с них метрики, основываясь на заданных критериях и метках.
Как он работает
Настраивается через манифест Kubernetes, в котором указываются:
✅Селекторы для выбора сервисов, с которых нужно собирать метрики.
✅Параметры, описывающие, какие порты, пути и схемы (HTTP или HTTPS) следует использовать для сбора метрик.
Автоматически связывается с сервисами, подходящими под его селекторы, и настраивает Prometheus на сбор метрик с этих сервисов.
В этом примере:
✅selector.matchLabels определяет, что ServiceMonitor должен применяться к сервисам, у которых метка
✅endpoints указывает, что метрики следует собирать с порта
Преимущества:
1️⃣Автоматизация: Автоматизирует процесс конфигурации мониторинга, что упрощает управление мониторингом в больших и динамически изменяющихся средах Kubernetes.
2️⃣Централизация управления: Все настройки мониторинга могут быть централизованно управляемы через Kubernetes манифесты, что облегчает изменение и распространение изменений.
3️⃣Масштабируемость: Подход подходит для масштабируемых приложений, автоматически адаптируясь к изменениям в числе экземпляров сервиса или его конфигурации.
Использование ServiceMonitor вместе с Prometheus значительно упрощает задачу мониторинга, позволяя более эффективно управлять производительностью и здоровьем приложений в кластере.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
ServiceMonitor является частью экосистемы Prometheus, используемой вместе с оператором Prometheus для более удобного и автоматизированного мониторинга ресурсов в Kubernetes. Этот ресурс предназначен для упрощения процесса сбора метрик с различных сервисов, работающих внутри кластера Kubernetes.
Основная функция:
Это автоматизация процесса обнаружения сервисов и их метрик для Prometheus. В классическом использовании Prometheus, конфигурация целей сбора метрик обычно требует ручного определения. Автоматизирует этот процесс, позволяя Prometheus динамически обнаруживать сервисы в кластере и собирать с них метрики, основываясь на заданных критериях и метках.
Как он работает
Настраивается через манифест Kubernetes, в котором указываются:
✅Селекторы для выбора сервисов, с которых нужно собирать метрики.
✅Параметры, описывающие, какие порты, пути и схемы (HTTP или HTTPS) следует использовать для сбора метрик.
Автоматически связывается с сервисами, подходящими под его селекторы, и настраивает Prometheus на сбор метрик с этих сервисов.
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: example-service-monitor
labels:
team: frontend
spec:
selector:
matchLabels:
app: example-app
endpoints:
- port: web
interval: 30s
В этом примере:
✅selector.matchLabels определяет, что ServiceMonitor должен применяться к сервисам, у которых метка
app
соответствует example-app
.✅endpoints указывает, что метрики следует собирать с порта
web
каждые 30 секунд.Преимущества:
1️⃣Автоматизация: Автоматизирует процесс конфигурации мониторинга, что упрощает управление мониторингом в больших и динамически изменяющихся средах Kubernetes.
2️⃣Централизация управления: Все настройки мониторинга могут быть централизованно управляемы через Kubernetes манифесты, что облегчает изменение и распространение изменений.
3️⃣Масштабируемость: Подход подходит для масштабируемых приложений, автоматически адаптируясь к изменениям в числе экземпляров сервиса или его конфигурации.
Использование ServiceMonitor вместе с Prometheus значительно упрощает задачу мониторинга, позволяя более эффективно управлять производительностью и здоровьем приложений в кластере.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Anonymous Quiz
16%
Canary Deployment
41%
Blue-Green Deployment
40%
Rolling Deployment
3%
Recreate Deployment
Какие протоколы есть ?
Спросят с вероятностью 13%
Существует множество протоколов, каждый из которых выполняет определённые функции. Протоколы можно классифицировать по различным уровням сетевой модели OSI (Open Systems Interconnection) или по уровням модели TCP/IP. Вот краткий обзор некоторых из наиболее значимых протоколов в этих моделях:
Протоколы уровня приложений (Application Layer)
✅HTTP (Hypertext Transfer Protocol): используется для передачи веб-страниц и других данных в интернете.
✅HTTPS (HTTP Secure): расширение HTTP с поддержкой шифрования для безопасной передачи данных.
✅FTP (File Transfer Protocol): протокол для передачи файлов между системами через TCP/IP сети.
✅SMTP (Simple Mail Transfer Protocol): используется для отправки электронной почты.
✅IMAP (Internet Message Access Protocol) и POP3 (Post Office Protocol version 3): протоколы для получения электронной почты с сервера.
✅DNS (Domain Name System): протокол для преобразования доменных имен в IP-адреса.
Протоколы транспортного уровня (Transport Layer)
✅TCP (Transmission Control Protocol): обеспечивает надёжную, упорядоченную и безошибочную доставку данных.
✅UDP (User Datagram Protocol): обеспечивает передачу без установления соединения, что быстрее, но менее надёжно по сравнению с TCP.
Протоколы сетевого уровня (Network Layer)
✅IP (Internet Protocol): основной протокол для передачи пакетов данных через сеть. Включает IPv4 и IPv6.
✅ICMP (Internet Control Message Protocol): используется для передачи сообщений об ошибках и другой информационной диагностики.
✅ARP (Address Resolution Protocol): протокол для определения MAC-адреса по IP-адресу устройства в локальной сети.
Протоколы канального уровня (Data Link Layer)
✅Ethernet: наиболее распространённая технология для локальных сетей.
✅PPP (Point-to-Point Protocol): используется для прямого соединения двух узлов.
✅MAC (Media Access Control): управляет доступом к передающей среде.
Протоколы физического уровня (Physical Layer)
✅В этой категории протоколы обычно не называются, но они включают стандарты для передачи электрических, оптических или иных сигналов по физическим медиам, таким как медные кабели, волоконно-оптические кабели и радиоволны.
Каждый из этих протоколов выполняет определенные функции, необходимые для обеспечения эффективной и надежной передачи данных между компьютерами и другими устройствами в сети. Важно понимать, как они взаимодействуют друг с другом, чтобы построить эффективную и безопасную сетевую инфраструктуру.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
Существует множество протоколов, каждый из которых выполняет определённые функции. Протоколы можно классифицировать по различным уровням сетевой модели OSI (Open Systems Interconnection) или по уровням модели TCP/IP. Вот краткий обзор некоторых из наиболее значимых протоколов в этих моделях:
Протоколы уровня приложений (Application Layer)
✅HTTP (Hypertext Transfer Protocol): используется для передачи веб-страниц и других данных в интернете.
✅HTTPS (HTTP Secure): расширение HTTP с поддержкой шифрования для безопасной передачи данных.
✅FTP (File Transfer Protocol): протокол для передачи файлов между системами через TCP/IP сети.
✅SMTP (Simple Mail Transfer Protocol): используется для отправки электронной почты.
✅IMAP (Internet Message Access Protocol) и POP3 (Post Office Protocol version 3): протоколы для получения электронной почты с сервера.
✅DNS (Domain Name System): протокол для преобразования доменных имен в IP-адреса.
Протоколы транспортного уровня (Transport Layer)
✅TCP (Transmission Control Protocol): обеспечивает надёжную, упорядоченную и безошибочную доставку данных.
✅UDP (User Datagram Protocol): обеспечивает передачу без установления соединения, что быстрее, но менее надёжно по сравнению с TCP.
Протоколы сетевого уровня (Network Layer)
✅IP (Internet Protocol): основной протокол для передачи пакетов данных через сеть. Включает IPv4 и IPv6.
✅ICMP (Internet Control Message Protocol): используется для передачи сообщений об ошибках и другой информационной диагностики.
✅ARP (Address Resolution Protocol): протокол для определения MAC-адреса по IP-адресу устройства в локальной сети.
Протоколы канального уровня (Data Link Layer)
✅Ethernet: наиболее распространённая технология для локальных сетей.
✅PPP (Point-to-Point Protocol): используется для прямого соединения двух узлов.
✅MAC (Media Access Control): управляет доступом к передающей среде.
Протоколы физического уровня (Physical Layer)
✅В этой категории протоколы обычно не называются, но они включают стандарты для передачи электрических, оптических или иных сигналов по физическим медиам, таким как медные кабели, волоконно-оптические кабели и радиоволны.
Каждый из этих протоколов выполняет определенные функции, необходимые для обеспечения эффективной и надежной передачи данных между компьютерами и другими устройствами в сети. Важно понимать, как они взаимодействуют друг с другом, чтобы построить эффективную и безопасную сетевую инфраструктуру.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Anonymous Quiz
8%
Docker Compose
1%
Nomad
86%
Kubernetes
5%
Swarm
❤1👍1
На каких технологиях базируется контейнеризация докер в том числе ?
Спросят с вероятностью 13%
Контейнеризация — это метод виртуализации на уровне операционной системы, который позволяет запускать и управлять приложениями и их зависимостями в изолированных "контейнерах". Docker, одна из наиболее популярных платформ для контейнеризации, использует ряд технологий Linux и функций ядра для обеспечения изоляции и безопасности контейнеров. Вот основные технологии, на которых она базируется:
1️⃣Пространства имён (Namespaces)
Являются ключевой функцией ядра Linux, которая ограничивает видимость и доступность системных ресурсов между различными процессами. Каждый контейнер работает в собственном наборе пространств имён, изолированно от других контейнеров и хост-системы. Основные пространства имён включают:
✅PID (Process ID): Изоляция процессов.
✅NET (Network): Управление сетевыми интерфейсами.
✅IPC (Inter-process Communication): Управление доступом к IPC ресурсам.
✅Mount: Управление точками монтирования файловых систем.
✅UTS (UNIX Time Sharing): Изоляция имени хоста и домена.
✅User: Изоляция пользователей и групп.
2️⃣Контрольные группы (Control Groups, cgroups)
Позволяют ограничивать и изолировать ресурсы системы, такие как ЦПУ, память, ввод-вывод и сеть, которые используются процессами. Docker использует cgroups для контроля над тем, сколько ресурсов системы может использовать каждый контейнер.
3️⃣Union File Systems
Это файловая система, которая поддерживает создание слоёв для файлов и папок, что позволяет контейнерам быть "легковесными". Docker использует UnionFS для предоставления базового образа контейнера, к которому можно добавлять изменения, не модифицируя исходный образ. Примеры таких файловых систем включают AuFS, OverlayFS и другие.
4️⃣Docker Engine
Это сервер с открытым API, который выполняет задачи по созданию, запуску и управлению Docker контейнерами. Он использует вышеупомянутые технологии для обеспечения изоляции и безопасности.
5️⃣Docker Image и Dockerfile
Строит свои контейнеры на основе образов (images), которые описаны в специальных файлах конфигурации — Dockerfile. Эти образы состоят из слоёв, каждый из которых представляет собой набор изменений относительно предыдущего слоя. Dockerfile содержит набор инструкций для сборки образа, что включает установку программного обеспечения, копирование файлов и другие команды.
Технологии позволяют создавать легковесные, но в то же время полнофункциональные и изолированные среды для приложений. Это делает контейнеризацию мощным инструментом и облегчает развертывание, масштабирование и управление приложениями.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
Контейнеризация — это метод виртуализации на уровне операционной системы, который позволяет запускать и управлять приложениями и их зависимостями в изолированных "контейнерах". Docker, одна из наиболее популярных платформ для контейнеризации, использует ряд технологий Linux и функций ядра для обеспечения изоляции и безопасности контейнеров. Вот основные технологии, на которых она базируется:
1️⃣Пространства имён (Namespaces)
Являются ключевой функцией ядра Linux, которая ограничивает видимость и доступность системных ресурсов между различными процессами. Каждый контейнер работает в собственном наборе пространств имён, изолированно от других контейнеров и хост-системы. Основные пространства имён включают:
✅PID (Process ID): Изоляция процессов.
✅NET (Network): Управление сетевыми интерфейсами.
✅IPC (Inter-process Communication): Управление доступом к IPC ресурсам.
✅Mount: Управление точками монтирования файловых систем.
✅UTS (UNIX Time Sharing): Изоляция имени хоста и домена.
✅User: Изоляция пользователей и групп.
2️⃣Контрольные группы (Control Groups, cgroups)
Позволяют ограничивать и изолировать ресурсы системы, такие как ЦПУ, память, ввод-вывод и сеть, которые используются процессами. Docker использует cgroups для контроля над тем, сколько ресурсов системы может использовать каждый контейнер.
3️⃣Union File Systems
Это файловая система, которая поддерживает создание слоёв для файлов и папок, что позволяет контейнерам быть "легковесными". Docker использует UnionFS для предоставления базового образа контейнера, к которому можно добавлять изменения, не модифицируя исходный образ. Примеры таких файловых систем включают AuFS, OverlayFS и другие.
4️⃣Docker Engine
Это сервер с открытым API, который выполняет задачи по созданию, запуску и управлению Docker контейнерами. Он использует вышеупомянутые технологии для обеспечения изоляции и безопасности.
5️⃣Docker Image и Dockerfile
Строит свои контейнеры на основе образов (images), которые описаны в специальных файлах конфигурации — Dockerfile. Эти образы состоят из слоёв, каждый из которых представляет собой набор изменений относительно предыдущего слоя. Dockerfile содержит набор инструкций для сборки образа, что включает установку программного обеспечения, копирование файлов и другие команды.
Технологии позволяют создавать легковесные, но в то же время полнофункциональные и изолированные среды для приложений. Это делает контейнеризацию мощным инструментом и облегчает развертывание, масштабирование и управление приложениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Anonymous Quiz
39%
OAuth
3%
Basic Auth
25%
API Key
34%
JWT
Как посмотреть размер папки на диске ?
Спросят с вероятностью 13%
Для того чтобы узнать размер папки на диске, можно воспользоваться различными методами в зависимости от операционной системы. Вот несколько способов для наиболее распространённых ОС:
Windows
Использование проводника (Explorer)
1️⃣Откройте Проводник Windows.
1️⃣Наведите на папку, размер которой вы хотите узнать.
3️⃣Кликните правой кнопкой мыши и выберите "Свойства".
4️⃣В открывшемся окне "Свойства" вы увидите размер папки в разделе "Размер".
Использование командной строки
1️⃣Откройте командную строку (Cmd) или PowerShell.
2️⃣Введите следующую команду, заменив
Для PowerShell можно использовать:
Здесь
macOS и Linux
Использование терминала
1️⃣Откройте терминал.
2️⃣Введите команду
Здесь:
✅
✅
Объяснение команды du
Используется в Unix-подобных операционных системах для измерения размера файлового пространства, используемого файлами и папками. Она может быть настроена для вывода размера отдельных файлов в папке или для подсчёта общего размера всех файлов в папке.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
Для того чтобы узнать размер папки на диске, можно воспользоваться различными методами в зависимости от операционной системы. Вот несколько способов для наиболее распространённых ОС:
Windows
Использование проводника (Explorer)
1️⃣Откройте Проводник Windows.
1️⃣Наведите на папку, размер которой вы хотите узнать.
3️⃣Кликните правой кнопкой мыши и выберите "Свойства".
4️⃣В открывшемся окне "Свойства" вы увидите размер папки в разделе "Размер".
Использование командной строки
1️⃣Откройте командную строку (Cmd) или PowerShell.
2️⃣Введите следующую команду, заменив
ПутьКПапке
на путь к интересующей вас папке:du -sh ПутьКПапке
Для PowerShell можно использовать:
Get-ChildItem ПутьКПапке -Recurse | Measure-Object -Property Length -Sum
Здесь
Get-ChildItem
перечисляет все файлы в папке, а Measure-Object
считает их размер.macOS и Linux
Использование терминала
1️⃣Откройте терминал.
2️⃣Введите команду
du
, чтобы узнать размер папки. Вот пример команды, которая показывает размер папки в читаемом виде (суммарный размер всех файлов):du -sh /путь/к/папке
Здесь:
✅
-s
означает "summary" (суммировать размер всех файлов в папке),✅
-h
означает "human-readable" (отображать размер в удобочитаемом формате, например, в КБ, МБ, ГБ).Объяснение команды du
Используется в Unix-подобных операционных системах для измерения размера файлового пространства, используемого файлами и папками. Она может быть настроена для вывода размера отдельных файлов в папке или для подсчёта общего размера всех файлов в папке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯1
Anonymous Quiz
20%
1
11%
2
57%
auto
12%
4
👍1
Как уменьшить размер Docker image ?
Спросят с вероятностью 13%
Уменьшение размера Docker образа (Docker image) является важной задачей в процессе оптимизации Docker контейнеров, поскольку это помогает сократить время загрузки, улучшить производительность и уменьшить расход ресурсов хранения и сети. Вот несколько эффективных методов этого:
1️⃣Выбор подходящего базового образа
✅Используйте облегчённые (lightweight) базовые образы, такие как Alpine Linux, которые по умолчанию содержат минимум установленного программного обеспечения. Это значительно уменьшает размер конечного образа.
2️⃣Минимизация слоёв образа
✅Объединяйте RUN-команды в Dockerfile. Каждая инструкция
3️⃣Удаление ненужных файлов
✅Удаляйте временные файлы и зависимости, которые не нужны в финальном образе, в той же инструкции
4️⃣Использование многоэтапной сборки (multi-stage builds)
✅Многоэтапная сборка позволяет использовать один Dockerfile для создания нескольких промежуточных образов, из которых можно копировать только нужные файлы в финальный образ. Это особенно полезно для языков, требующих компиляции, таких как Java или C, где исходный код и компиляторы не нужны в рабочем образе.
5️⃣Использование .dockerignore
✅Добавляйте файл `.dockerignore` в ваш проект, чтобы исключить ненужные файлы и директории из контекста сборки (например, временные файлы, локальные конфигурационные файлы, каталоги с зависимостями типа
6️⃣Оптимизация добавления ресурсов
✅Минимизируйте количество инструкций
7️⃣Выбор правильных инструкций
✅Используйте
Используя эти методы, вы можете значительно сократить размер вашего Docker образа, что приведёт к более быстрому развёртыванию, меньшему потреблению ресурсов и улучшению общей безопасности вашего приложения.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Спросят с вероятностью 13%
Уменьшение размера Docker образа (Docker image) является важной задачей в процессе оптимизации Docker контейнеров, поскольку это помогает сократить время загрузки, улучшить производительность и уменьшить расход ресурсов хранения и сети. Вот несколько эффективных методов этого:
1️⃣Выбор подходящего базового образа
✅Используйте облегчённые (lightweight) базовые образы, такие как Alpine Linux, которые по умолчанию содержат минимум установленного программного обеспечения. Это значительно уменьшает размер конечного образа.
2️⃣Минимизация слоёв образа
✅Объединяйте RUN-команды в Dockerfile. Каждая инструкция
RUN
, COPY
, и ADD
создаёт новый слой. Объединение этих команд в одну или несколько инструкций может значительно сократить количество слоёв и размер образа.RUN apt-get update && \
apt-get install -y package1 package2 && \
rm -rf /var/lib/apt/lists/*
3️⃣Удаление ненужных файлов
✅Удаляйте временные файлы и зависимости, которые не нужны в финальном образе, в той же инструкции
RUN
, которая их создаёт. Это включает кэши пакетных менеджеров, временные файлы и документацию.4️⃣Использование многоэтапной сборки (multi-stage builds)
✅Многоэтапная сборка позволяет использовать один Dockerfile для создания нескольких промежуточных образов, из которых можно копировать только нужные файлы в финальный образ. Это особенно полезно для языков, требующих компиляции, таких как Java или C, где исходный код и компиляторы не нужны в рабочем образе.
# Этап сборки
FROM golang:1.14 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
# Финальный этап
FROM alpine:latest
COPY --from=builder /app/myapp /app/myapp
ENTRYPOINT ["/app/myapp"]
5️⃣Использование .dockerignore
✅Добавляйте файл `.dockerignore` в ваш проект, чтобы исключить ненужные файлы и директории из контекста сборки (например, временные файлы, локальные конфигурационные файлы, каталоги с зависимостями типа
node_modules
и т.д.), что уменьшает время сборки и размер образа.6️⃣Оптимизация добавления ресурсов
✅Минимизируйте количество инструкций
ADD
иак умень по возможности комбинируя копируемые файлы в одну инструкцию, чтобы сократить количество слоёв.7️⃣Выбор правильных инструкций
✅Используйте
COPY
вместоеньшить если вам не нужны дополнительные функции ADD
, такие как автоматическое распаковывание архивов и добавление файлов из URL.Используя эти методы, вы можете значительно сократить размер вашего Docker образа, что приведёт к более быстрому развёртыванию, меньшему потреблению ресурсов и улучшению общей безопасности вашего приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🤯1
Anonymous Quiz
5%
Лучшая производительность
16%
Императивное управление
72%
Декларативное управление
7%
Меньше зависимостей
Anonymous Quiz
70%
Docker Engine
3%
Docker Hub
21%
Docker Compose
5%
Docker Swarm
Forwarded from Идущий к IT
10$ за техническое собеседование на английском языке:
1. Отправьте запись технического собеседования на английском языке файлом на этот аккаунт
2. Добавьте ссылку на вакансию или пришлите название компании и должность
3. Напишите номер кошелка USDT (Tether) на который отправить 10$
🛡 Важно:
– Запись будет использована только для сбора данных о вопросах
– Вы останетесь анонимны
– Запись нигде не будет опубликована
🤝 Условия:
– Внятный звук, различимая речь
– Допустимые профессии:
• Любые программисты
• DevOps
• Тестировщики
• Дата сайнтисты
• Бизнес/Системные аналитики
• Прожекты/Продукты
• UX/UI и продукт дизайнеры
1. Отправьте запись технического собеседования на английском языке файлом на этот аккаунт
2. Добавьте ссылку на вакансию или пришлите название компании и должность
3. Напишите номер кошелка USDT (Tether) на который отправить 10$
– Запись будет использована только для сбора данных о вопросах
– Вы останетесь анонимны
– Запись нигде не будет опубликована
– Внятный звук, различимая речь
– Допустимые профессии:
• Любые программисты
• DevOps
• Тестировщики
• Дата сайнтисты
• Бизнес/Системные аналитики
• Прожекты/Продукты
• UX/UI и продукт дизайнеры
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Зомби-процесс (или дефункциональный процесс) — это процесс, который завершился, но его запись еще не была удалена из таблицы процессов, так как родительский процесс не прочитал его статус с помощью системного вызова
wait()
. Не используют системные ресурсы, кроме записи в таблице процессов, но могут стать проблемой, если их слишком много.Удаление зомби-процесса
Напрямую это сделать невозможно, так как он уже завершен. Вместо этого необходимо воздействовать на его родительский процесс, чтобы тот выполнил
wait()
и освободил запись зомби-процесса.Шаги:
Сначала нужно определить идентификатор (PID) и его родительского процесса (PPID).
ps aux | grep 'Z'
Пример вывода:
user 1234 0.0 0.0 0 0 ? Z 13:00 0:00 [my_zombie_process] <defunct>
В данном примере 1234 — это PID зомби-процесса.
2️⃣ Найти родительский процесс (PPID):
Чтобы узнать родительский процесс, используйте команду ps -o ppid=:
ps -o ppid= -p 1234
Пример вывода:
5678
Здесь 5678 — это PID родительского процесса.
3️⃣ Перезапустить или завершить родительский процесс:
➕ Если родительский процесс важен и его нельзя завершить, попробуйте его перезапустить. Это может вызвать выполнение wait(), и зомби-процесс будет очищен.
➕ Если перезапуск невозможен или не помогает, можно попытаться завершить родительский процесс. Используйте команду kill для этого:
sudo kill -HUP 5678
Команда
kill -HUP
отправляет сигнал перезапуска родительскому процессу, что может вызвать выполнение wait()
. Если это не помогает, можно использовать сигнал SIGTERM
или SIGKILL
:sudo kill -TERM 5678
sudo kill -KILL 5678
Внимание: Прежде чем завершать родительский процесс, убедитесь, что это не повредит системе или важным службам.
ps aux | grep 'Z'
ps -o ppid= -p <PID_зомби>
sudo kill -HUP <PPID>
Если это не помогает:
sudo kill -TERM <PPID>
sudo kill -KILL <PPID>
Зомби-процесс — это завершившийся процесс, запись которого не удалена, так как родительский процесс не выполнил
wait()
. Чтобы удалить зомби-процесс, нужно воздействовать на его родительский процесс.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
Сиротский процесс (orphan process) и зомби-процесс (zombie process) представляют собой два разных состояния процессов в операционной системе Unix/Linux. Давайте рассмотрим, в чем их отличие.
Сиротский процесс
Это процесс, чей родительский процесс завершился до того, как завершился сам процесс. В этом случае сиротский процесс автоматически принимается на попечение процессом
init
(PID 1) или systemd
, который становится его новым родителем. init
или systemd
затем отслеживает такие процессы и выполняет wait()
, чтобы предотвратить появление зомби-процессов.init
или systemd
.Зомби-процесс
Это процесс, который завершился, но его запись в таблице процессов все еще существует, потому что его родительский процесс не вызвал системный вызов
wait()
для получения кода завершения и других данных. Зомби-процессы не используют системные ресурсы, кроме записи в таблице процессов, но если родительский процесс не выполняет wait()
, то такие записи могут накапливаться.wait()
, чтобы забрать статус завершения процесса B.Отличия:
wait()
, чтобы забрать статус завершения.init
или systemd
).Сиротский процесс — это процесс, чей родитель завершился, и он был передан под управление
init
или systemd
. Зомби-процесс — это завершившийся процесс, запись о котором все еще существует, потому что родительский процесс не вызвал wait()
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥1
Anonymous Quiz
1%
Grafana
79%
Jenkins
3%
Prometheus
17%
Ansible
🔥12
DevOps и Agile — это два различных подхода к разработке и доставке программного обеспечения, хотя они часто используются вместе. Оба подхода имеют свои цели и методы, которые могут дополнять друг друга, но фокусируются на разных аспектах разработки.
Agile
Это методология разработки программного обеспечения, которая акцентирует внимание на гибкости, скорости и итеративном подходе к разработке. Основные принципы Agile изложены в Манифесте Agile, который включает четыре ключевых ценности и двенадцать принципов.
Основные характеристики:
Примеры:
DevOps
Это культурный и методологический подход, направленный на интеграцию и сотрудничество между командами разработки (Dev) и эксплуатации (Ops) для более быстрой и надежной доставки программного обеспечения.
Основные характеристики:
Примеры:
Основные различия
Agile — это методология разработки, фокусирующаяся на итеративном подходе и гибкости, а DevOps — это культурный и методологический подход, направленный на интеграцию разработки и эксплуатации для обеспечения быстрой и надежной доставки программного обеспечения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Anonymous Quiz
23%
Git
3%
Docker
54%
Puppet
20%
Jenkins
👍2
Одной из файловых систем с динамическим управлением inodes является XFS.
XFS и динамическое управление inodes
Это высокопроизводительная файловая система, разработанная для использования в ситуациях, требующих высокой производительности и масштабируемости. Она использует динамическое управление inodes, что позволяет избежать проблем с нехваткой inodes, которые могут возникать в других файловых системах, где количество inodes фиксировано при создании файловой системы.
Для создания файловой системы XFS на диске
/dev/sdX1
используется утилита mkfs.xfs
:mkfs.xfs /dev/sdX1
Проверка использования inodes на XFS
Для этого на файловой системе XFS можно использовать команду
df -i
:df -i /mnt/myxfs
Пример вывода:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdX1 0 0 0 - /mnt/myxfs
На XFS файловых системах команда
df -i
может показывать значения inodes как 0, что указывает на динамическое управление inodes.Файловая система XFS использует динамическое управление inodes, выделяя их по мере необходимости и позволяя эффективно использовать дисковое пространство. Это предотвращает проблемы с нехваткой inodes, которые могут возникать в файловых системах с фиксированным числом inodes.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6