DevOps | Вопросы собесов
5.22K subscribers
28 photos
2 videos
841 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Тесты t.me/+2P7cpjeyfDVlZjcy
Вакансии t.me/+i5KFWEWJ21hhYWEy
Download Telegram
🤔 Что будет если в докерфайле сразу указать и entry point и cmd?

В Dockerfile можно указать как ENTRYPOINT, так и CMD. Они оба определяют, какая команда будет выполнена при запуске контейнера, но имеют разные цели и взаимодействие между собой.

🚩`ENTRYPOINT` и `CMD` в Dockerfile

🟠`ENTRYPOINT`:
Устанавливает основную команду и аргументы, которые не могут быть переопределены во время запуска контейнера с помощью docker run, за исключением явного использования опции --entrypoint.

🟠`CMD`:
Устанавливает команду и аргументы по умолчанию для запуска контейнера. Эти параметры могут быть переопределены при запуске контейнера, если передать другие аргументы в docker run.

🚩Совместное использование

Когда в Dockerfile указаны оба, ENTRYPOINT и CMD, они работают совместно. CMD предоставляет аргументы по умолчанию для команды, указанной в ENTRYPOINT. Таким образом, CMD будет использоваться в качестве аргументов для ENTRYPOINT, если при запуске контейнера не указаны другие аргументы.
FROM ubuntu:latest

ENTRYPOINT ["echo"]
CMD ["Hello, World!"]


🚩Основные сценарии использования

🟠Фиксированная команда с изменяемыми аргументами:
ENTRYPOINT используется для фиксированной команды, которую контейнер должен всегда выполнять, а CMD для указания аргументов по умолчанию.
🟠Предоставление аргументов по умолчанию:
CMD используется для задания аргументов по умолчанию для команды, указанной в ENTRYPOINT.

🚩Взаимодействие с `docker run`

🟠Если указан только ENTRYPOINT, то команда и аргументы из ENTRYPOINT будут выполнены при запуске контейнера.
🟠Если указан только CMD, то команда и аргументы из CMD будут выполнены при запуске контейнера.
🟠Если указаны оба, то команда из ENTRYPOINT будет выполнена с аргументами из CMD по умолчанию. Если при запуске контейнера указать дополнительные аргументы, они заменят аргументы из CMD.
FROM python:3.9

ENTRYPOINT ["python", "-m"]
CMD ["http.server"]


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125
🤔 Какие задачи выполнял с использованием Terraform?

Terraform использовался для автоматизации развертывания инфраструктуры в облаке, создания виртуальных машин и настройки сетевых ресурсов. Кроме того, применял его для управления масштабированием сервисов и поддержания инфраструктуры как кода. Это позволило сделать процессы инфраструктурных изменений более управляемыми и предсказуемыми.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2
🤔 Чем юниксовая система отличается от линуксовой?

Unix и Linux — это две операционные системы, которые часто сравнивают из-за их схожести и общего происхождения. Однако у них есть значительные различия, касающиеся их истории, лицензирования, архитектуры и использования.

🚩Основные отличия между Unix и Linux

🟠Лицензирование
Unix: Большинство версий Unix являются коммерческими и проприетарными. Для их использования требуется лицензия. Некоторые версии, такие как BSD (Berkeley Software Distribution), являются открытыми и лицензируются по лицензии BSD.
Linux: Распространяется по лицензии GNU General Public License (GPL), что означает, что он бесплатен и открыт для использования, модификации и распространения. Исходный код доступен всем, что позволяет пользователям вносить изменения и улучшения.

🟠Архитектура и компоненты
Unix: Часто имеют монолитное ядро, где основные системные службы интегрированы в одно ядро. Обеспечивает многозадачность, многопользовательский режим и защищенную память. Включает стандартные утилиты и шеллы, такие как Bourne Shell (sh).
Linux: Также имеет монолитное ядро, но с модульной архитектурой, что позволяет загружать и выгружать модули в ядро без перезагрузки системы. Включает широкий набор утилит и инструментов GNU, таких как Bash (Bourne Again Shell).

🟠Совместимость и стандарты
Unix: Следуют стандартам POSIX (Portable Operating System Interface), что обеспечивает совместимость между различными версиями Unix. Существует несколько проприетарных версий Unix.
Linux: Также совместим с POSIX, что обеспечивает высокую степень совместимости с Unix-системами. Существует множество дистрибутивов Linux (Debian, Ubuntu, CentOS, Fedora и т.д.), каждый из которых имеет свои особенности и наборы пакетов, но все они основаны на общем ядре Linux.

🟠Применение и популярность
Unix: Используется в крупных корпоративных и научных средах. Часто применяется в критически важных системах благодаря своей надежности и стабильности.
Linux: Широко используется в серверах, суперкомпьютерах, встраиваемых системах, настольных ПК и мобильных устройствах (например, Android). Популярен среди разработчиков и энтузиастов благодаря своей открытости, гибкости и сообществу.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍171
🤔 Чем отличается COPY от ADD?

COPY копирует файлы из локальной системы в контейнер. ADD, кроме копирования файлов, может извлекать архивы и загружать данные по URL. Использование ADD предоставляет дополнительные возможности, но рекомендуется применять COPY для простого копирования файлов.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6
🤔 Какие коды ответа мы получаем от веб-сервера?

Коды ответа (HTTP status codes) от веб-сервера представляют собой числовые коды, которые отправляются клиенту (обычно веб-браузеру) в ответ на его запрос. Эти коды помогают клиенту понять, что произошло с его запросом: был ли он успешен, произошла ли ошибка, требуется ли дополнительное действие и т.д.

🚩HTTP-коды ответа разделены на пять основных категорий:

🟠1xx (Информационные):
Запрос принят, продолжается обработка.
100 Continue: Сервер получил начальную часть запроса, и клиент должен продолжать.
101 Switching Protocols: Сервер принимает запрос на изменение протокола.

🟠2xx (Успех):
Запрос успешно обработан.
200 OK: Запрос успешно обработан, и сервер возвращает запрошенные данные.
201 Created: Запрос успешно выполнен, и в результате создан новый ресурс.
202 Accepted: Запрос принят для обработки, но обработка еще не завершена.
204 No Content: Запрос успешно выполнен, но сервер не возвращает никакого содержимого.

🟠3xx (Перенаправление):
Для завершения обработки запроса требуется дальнейшее действие со стороны клиента.
301 Moved Permanently: Запрашиваемый ресурс был перемещен на новый постоянный URL.
302 Found: Запрашиваемый ресурс временно доступен по другому URL.
304 Not Modified: Запрашиваемый ресурс не изменился со времени последнего доступа (кэширование).
307 Temporary Redirect: Запрашиваемый ресурс временно доступен по другому URL. Клиент должен использовать исходный метод для нового запроса.

🟠4xx (Ошибка клиента):
Ошибка в запросе клиента.
400 Bad Request: Сервер не может обработать запрос из-за неверного синтаксиса.
401 Unauthorized: Запрос требует аутентификации.
403 Forbidden: Сервер понял запрос, но отказывается его выполнять.
404 Not Found: Запрашиваемый ресурс не найден на сервере.
405 Method Not Allowed: Метод, указанный в запросе, не разрешен для запрашиваемого ресурса.
409 Conflict: Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса.

🟠5xx (Ошибка сервера):
Ошибка на стороне сервера при попытке обработки запроса.
500 Internal Server Error: Общая ошибка сервера. Сервер не может выполнить запрос.
501 Not Implemented: Сервер не поддерживает функциональность, необходимую для выполнения запроса.
502 Bad Gateway: Сервер, действуя как шлюз или прокси, получил неверный ответ от вышестоящего сервера.
503 Service Unavailable: Сервер временно недоступен, обычно из-за перегрузки или технического обслуживания.
504 Gateway Timeout: Сервер, действуя как шлюз или прокси, не дождался ответа от вышестоящего сервера.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
🤔 Какие задачи выполнял с использованием Terraform?

С Terraform создавал инфраструктуру как код, включая виртуальные машины, сети и системы хранения данных. Применял его для автоматизации управления ресурсами в облачных средах, что обеспечивало быструю и согласованную настройку инфраструктуры. Также использовал для внедрения изменений и управления версиями инфраструктуры.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1😁1
🤔 С какими самыми частыми ошибками сталкивались на линуксе?

🟠Ошибки при обновлении и установке пакетов
Конфликты зависимостей или поврежденные пакеты.

1⃣Использование команды для исправления сломанных зависимостей.
sudo apt-get install -f   


2⃣Очистка кэша пакетов и повторная установка.
sudo apt-get clean
sudo apt-get update


🟠Проблемы с сетью
Нет доступа к интернету или неправильная настройка сети.

1⃣Проверка состояния сетевых интерфейсов.
ip a    


2⃣Перезапуск сетевого сервиса.
sudo systemctl restart NetworkManager    


3⃣Проверка конфигурации DNS
cat /etc/resolv.conf    


🟠Проблемы с правами доступа
Недостаточно прав для выполнения команды или доступа к файлу.

1⃣Использование команды sudo для выполнения команд с привилегиями суперпользователя.
sudo <command>    


2⃣Изменение прав доступа к файлу или директории.
sudo chmod 755 /path/to/directory
sudo chown user:user /path/to/file


🟠Проблемы с загрузкой системы
Система не загружается или застревает на экране загрузки.

1⃣Восстановление загрузчика GRUB.
sudo grub-install /dev/sda
sudo update-grub


2⃣Проверка и исправление файловой системы.
sudo fsck /dev/sda1    


🟠Проблемы с пространством на диске
Недостаточно места на диске для выполнения операций.

1⃣Проверка использования дискового пространства.
df -h    


2⃣Очистка временных файлов и кэша.
sudo apt-get clean
sudo rm -rf /var/cache/apt/archives/*


🟠Проблемы с разрешениями для NFS
Нет доступа к файловой системе NFS.

1⃣Проверка статуса NFS сервера и клиента.
sudo systemctl status nfs-server
sudo systemctl status nfs-client


2⃣Перезапуск NFS сервиса.
sudo systemctl restart nfs-server
sudo systemctl restart nfs-client


🟠Проблемы с зависимостями Python
Проблемы с установкой пакетов Python из-за конфликтов версий.
Использование виртуальных окружений для изоляции зависимостей.
python3 -m venv myenv
source myenv/bin/activate
pip install <package>


🟠Проблемы с SELinux
Блокировка доступа к файлам или портам из-за правил SELinux.

1⃣Просмотр логов SELinux для диагностики.
sudo ausearch -m avc -ts recent    


2⃣Временное переключение SELinux в режим permissive.
sudo setenforce 0    


🟠Проблемы с загрузкой модулей ядра
Модуль ядра не загружается или вызывает ошибку.

1⃣Проверка списка загруженных модулей.
lsmod    


2⃣Загрузка модуля вручную.
sudo modprobe <module>    


🟠Проблемы с настройкой фаервола
Неправильные правила фаервола блокируют трафик.

1⃣Просмотр текущих правил фаервола.
sudo iptables -L    


2⃣Добавление или изменение правил.
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT    


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤯1
🤔 В чём отличие Deployment от Delivery?

Continuous Deployment подразумевает автоматический выпуск каждой успешной сборки в продакшн. Continuous Delivery предполагает автоматическую подготовку к выпуску, но для выпуска требуется ручное одобрение. Deployment обеспечивает более быстрый и непрерывный процесс, в то время как Delivery фокусируется на стабильности.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
🤔 Какие утилиты в linux обычно используете для траблшутинга?

🟠`top` и `htop`
Эти утилиты показывают информацию о системных процессах в реальном времени, включая использование CPU, памяти и дискового ввода-вывода.
top
htop


🟠`ps`
Показывает список активных процессов.
ps aux  


🟠`netstat` и `ss`
Показывают сетевые соединения, таблицы маршрутизации, интерфейсы и другую сетевую информацию
netstat -tuln
ss -tuln


🟠`lsof`
Показывает открытые файлы и порты.
lsof
lsof -i :80


🟠`df` и `du`
Показывают информацию о дисковом пространстве. df показывает общий объем использования диска, а du - использование дискового пространства отдельными файлами и директориями.
df -h
du -sh /var/log/*


🟠`ping` и `traceroute`
Используются для диагностики сетевых проблем. ping проверяет доступность хоста, а traceroute показывает путь пакетов к хосту.
ping google.com
traceroute google.com


🟠`curl` и `wget`
Используются для отправки HTTP-запросов и загрузки файлов с веб-серверов. Полезны для проверки доступности веб-сервисов.
curl -I https://www.example.com
wget https://www.example.com/file.zip


🟠`journalctl`
Используется для просмотра системных журналов, управляемых systemd.
journalctl -xe
journalctl -u nginx.service


🟠`dmesg`
Показывает сообщения ядра. Полезно для диагностики аппаратных и загрузочных проблем.
dmesg | grep error  


🟠`strace`
Трассирует системные вызовы и сигналы. Полезно для диагностики проблем с приложениями.
strace -p <PID>  


🟠`tcpdump`
Анализатор сетевых пакетов. Полезно для диагностики сетевых проблем.
tcpdump -i eth0 


🟠`vmstat` и `iostat`
vmstat показывает статистику виртуальной памяти, процессов и CPU. iostat показывает статистику ввода-вывода на устройстве.
vmstat 1
iostat 1


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🤔1
🤔 В чём разница между контейнеризацией и виртуализацией?

Контейнеризация использует контейнеры для изоляции приложений и их зависимостей на уровне операционной системы, что делает контейнеры более лёгкими по сравнению с виртуальными машинами. Виртуализация, в свою очередь, создает полноценные виртуальные машины с собственными ОС поверх гипервизора, что требует больше ресурсов. Контейнеры запускаются на общем ядре ОС хоста, а виртуальные машины имеют свои ядра, что делает их независимыми, но более тяжёлыми. Контейнеры обеспечивают большую гибкость и скорость развертывания по сравнению с виртуальными машинами.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔3🔥2
🤔 Как проверяете свободное место на диске?

🟠df
disk freе показывает объем свободного и используемого пространства на файловой системе.
df -h  


-h: Показывает информацию в человекочитаемом формате (например, 1K, 234M, 2G).
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1 50G 20G 30G 40% /
tmpfs 1.9G 1.2M 1.9G 1% /dev/shm


🟠du
disk usage показывает использование дискового пространства файлами и директориями. Это полезно для поиска крупных файлов и директорий.
du -sh /var/log/* 


-s: Показывает общий размер каждой аргументированной директории.
-h: Человекочитаемый формат.
12M /var/log/apache2
4.0K /var/log/boot.log
56M /var/log/kern.log


🟠lsblk
Показывает информацию о блочных устройствах, включая диски и их разделы.
lsblk  


Вывод команды
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 50G 0 part /
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part /mnt/data


🟠ncdu
NCurses Disk Usage — интерактивная командная утилита для анализа дискового пространства.
ncdu /  


Вывод команды
--- / ---
. 16.0 GiB [##########] /usr
. 8.0 GiB [##### ] /var
. 4.0 GiB [## ] /home


🟠btrfs filesystem df
Используется для файловых систем Btrfs и показывает использование дискового пространства.
sudo btrfs filesystem df /mnt  


Вывод команды
Data, single: total=10.00GiB, used=8.54GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=532.25MiB


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🤔 Что такое Prometheus?

Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая собирает метрики с различных источников, храня их в виде временных рядов данных. Он поддерживает гибкий язык запросов PromQL для анализа собранных метрик и построения графиков. Prometheus активно используется для мониторинга инфраструктуры и приложений, а также интегрируется с системами алертинга, такими как Alertmanager. Он особенно полезен для мониторинга микросервисов и облачных приложений.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥51
🤔 Как будете решать проблему если у вас коллега постоянно удаляет файлы rm rf но файлы не исчезают и место на диске не освобождается?

Это может быть связано с тем, что файлы все еще открыты каким-либо процессом. В таких случаях система не освобождает пространство до тех пор, пока процесс не завершится. Вот шаги для диагностики и решения этой проблемы:

1⃣Проверка использования диска
Используйте команду df для проверки использования дискового пространства.
df -h   


Проверьте, сколько места занимают файлы в проблемной директории.
du -sh /path/to/directory   


2⃣Поиск процессов, держащих удаленные файлы открытыми
Найдите процессы, которые держат открытыми удаленные файлы.
lsof | grep deleted   

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
myprocess 1234 user 10r REG 8,1 12345678 567890 /path/to/deleted/file (deleted)


3⃣Завершение процессов
Найдите процесс, держащий файл открытым, по PID (идентификатор процесса) из вывода lsof. Завершите процесс, чтобы освободить место на диске.
kill -9 <PID>    

kill -9 1234     


4⃣Проверка освобожденного пространства
После завершения процесса, повторно проверьте использование дискового пространства.
df -h   


Убедитесь, что место в директории освободилось.
du -sh /path/to/directory   


🚩Примеры

Поиск удаленных файлов
lsof | grep deleted   


Завершение процесса
kill -9 <PID>   


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍192🤯1
🤔 Что такое inode?

Inode — это структура данных в файловых системах Unix, которая хранит информацию о файле, включая его метаданные (размер, права доступа, время изменения), но не сам контент файла или его имя. Каждый файл или директория имеет свой собственный inode, и доступ к содержимому файла осуществляется через указатели inode. Inode не хранит информацию о самих данных файла, только о его расположении на диске. Число inode ограничено при создании файловой системы, что может повлиять на её емкость.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥6
🤔 Что за команда truncate?

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

🚩Возможности команды

🟠Создание новых файлов
Если указанный файл не существует, команда truncate создаст его с нулевым размером или с заданным размером.
🟠Уменьшение размера файлов
При уменьшении размера файла данные, находящиеся за новой границей, будут потеряны.
🟠Увеличение размера файлов
При увеличении размера файла он будет дополнен нулями до указанного размера.

Синтаксис команды truncate
truncate [OPTIONS] FILE...


🚩Параметры

🟠-s, --size=SIZE: Задает размер файла. Размер может быть указан в байтах или с использованием суффиксов (K, M, G, T, P, E, Z, Y).
🟠-r, --reference=RFILE: Задает размер файла на основе другого файла (RFILE).

🚩Создание файла с заданным размером

Создание файла размером 1 МБ
truncate -s 1M myfile   


Создание файла размером 512 байт
truncate -s 512 myfile   


🚩Увеличение размера существующего файла

Увеличение файла до 2 ГБ
truncate -s 2G myfile   


🚩Уменьшение размера существующего файла

Уменьшение файла до 100 КБ:
truncate -s 100K myfile  


🚩Установка размера файла на основе другого файла

Установка размера файла myfile на размер файла referencefile
truncate -r referencefile myfile   


🚩Практические примеры

Создаст пустой файл с именем emptyfile.
truncate -s 0 emptyfile


Увеличит размер файла logfile на 500 МБ.
truncate -s +500M logfile


Уменьшит размер файла largefile на 100 КБ.
truncate -s -100K largefile


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3
🤔 Что такое зомби процессы?

Зомби-процессы — это процессы, которые завершились, но их запись в таблице процессов остаётся, так как родительский процесс не обработал их код завершения. Они занимают минимальные системные ресурсы, но их наличие может указывать на проблемы в управлении процессами родительским процессом. Зомби-процессы можно устранить только завершением родительского процесса или с помощью сигналов. Наличие большого количества зомби-процессов может привести к исчерпанию доступных PID в системе.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥7
🤔 Каким образом диплоили приложение с помощью openshift?

Деплой в OpenShift выполняется через контейнерное изображение, которое загружается в репозиторий. Затем приложение разворачивается с помощью команд oc или через веб-интерфейс, после чего OpenShift управляет контейнерами, обеспечивая масштабирование и обновления без простоя.

🚩Шаги

1⃣Установка и настройка OpenShift CLI (oc)
Установите OpenShift CLI (oc), чтобы взаимодействовать с кластером OpenShift.
# Скачать и установить OpenShift CLI
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz
tar -xvf openshift-client-linux.tar.gz
sudo mv oc /usr/local/bin/


2⃣Создание проекта
Создайте новый проект в OpenShift, который будет использоваться для развертывания вашего приложения.
# Войти в OpenShift
oc login https://<openshift-cluster-url> --token=<your-token>

# Создать проект
oc new-project my-project


3⃣Подготовка Dockerfile или S2I (Source-to-Image)
Создайте Dockerfile для вашего приложения или используйте S2I для автоматической сборки образов.
FROM node:14

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

EXPOSE 8080
CMD ["node", "server.js"]


4⃣Создание и настройка билда
Создайте BuildConfig для сборки вашего образа Docker.
# Создать BuildConfig из Dockerfile
oc new-build --strategy=docker --binary --name=my-app

# Запустить билд
oc start-build my-app --from-dir=. --follow


Если вы используете S2I
# Создать BuildConfig с использованием S2I
oc new-app nodejs:14~https://github.com/username/my-app.git --name=my-app


5⃣Развертывание приложения
Создайте DeploymentConfig для развертывания вашего приложения.
# Создать DeploymentConfig из ранее созданного BuildConfig
oc new-app my-app

# Или, если используется S2I
oc new-app nodejs:14~https://github.com/username/my-app.git --name=my-app


6⃣Настройка маршрутизации (Routes)
Создайте Route для доступа к вашему приложению извне.
# Создать маршрут
oc expose svc/my-app

# Проверить созданный маршрут
oc get routes


Пример деплоя с полным процессом
# Вход в OpenShift
oc login https://<openshift-cluster-url> --token=<your-token>

# Создание проекта
oc new-project my-project

# Создание билда
oc new-build --strategy=docker --binary --name=my-app
oc start-build my-app --from-dir=. --follow

# Развертывание приложения
oc new-app my-app

# Настройка маршрута
oc expose svc/my-app

# Проверка статуса маршрута
oc get routes


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🤔 Что показывает load average?

Load average показывает среднее количество процессов, ожидающих выполнения на ядре процессора за последние 1, 5 и 15 минут. Он включает в себя процессы, которые активны и находятся в очереди на выполнение, или ожидают ресурсов, таких как диск или сеть. Load average помогает оценить нагрузку на систему: значение, превышающее количество ядер, может указывать на перегрузку системы. Высокий load average без соответствующей активности процессора может свидетельствовать о блокировке ресурсов.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3
🤔 Что такое umask?

Это команда и настройка в Unix-подобных операционных системах, которая определяет права доступа по умолчанию для новых файлов и каталогов, создаваемых пользователем. umask устанавливает маску, которая определяет, какие разрешения будут отключены для вновь создаваемых файлов и каталогов.

🟠Базовые права доступа
Для файлов: 666 (чтение и запись для всех). Для каталогов: 777 (чтение, запись и выполнение для всех).
🟠Маска umask
Значение umask указывается в восьмеричной системе счисления и вычитается из базовых прав доступа для определения окончательных прав доступа.

🚩Как работает

Когда создается новый файл или каталог, операционная система сначала применяет базовые права доступа, а затем вычитает значение umask из этих прав.

🚩Пример расчета прав доступа

1⃣Создание файла
Базовые права доступа: 666
Значение umask: 022
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)

2⃣Создание каталога
Базовые права доступа: 777
Значение umask: 022
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)

🚩Установка и проверка

1⃣Проверка текущего значения umask
umask 


2⃣Установка нового значения umask
umask 027  


🚩Примеры использования

Проверка текущего значения
$ umask
0022


Установка нового значения. После выполнения этой команды новые файлы будут создаваться с правами 640 (rw-r-----), а новые каталоги с правами 750 (rwxr-x---).
$ umask 027


🚩Создание файла с umask 0022

Новый файл myfile будет создан с правами 644.
$ umask 0022
$ touch myfile
$ ls -l myfile
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile


Создание каталога с umask 0027. Новый каталог mydir будет создан с правами 750.
$ umask 0027
$ mkdir mydir
$ ls -ld mydir
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir


🚩Использование umask в скриптах

Чтобы задать значение umask для всех команд в скрипте, можно указать его в начале скрипта.
#!/bin/bash
umask 027
# Все команды ниже будут создавать файлы и каталоги с правами, определенными umask 027
touch file1
mkdir dir1


Ставь
👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
🤔 Что такое kafka?

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

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍8
🤔 Когда вы создаёте файл какие права создаются по умолчанию?

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

🟠Файлы: 666 (rw-rw-rw-)
Это означает, что по умолчанию все пользователи могут читать и записывать в файл.

🟠Каталоги: 777 (rwxrwxrwx)
Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог.

🚩Значение umask: 022

Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение umask указывается в восьмеричной системе счисления.

🟠Создание файла
Базовые права доступа: 666
Значение umask: 022
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)

🟠Создание каталога
Базовые права доступа: 777
Значение umask: 022
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)

🚩Создание файла с umask 0022

1⃣Установка umask
umask 0022   


2⃣Создание файла
touch myfile   


3⃣Проверка прав доступа
ls -l myfile   


Вывод
Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile    


🚩Создание каталога с umask 0027

1⃣Установка umask
umask 0027   


2⃣Создание каталога
mkdir mydir   


3⃣Проверка прав доступа
ls -ld mydir   


Вывод
Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir     


🚩Дополнительные замечания

🟠umask в скриптах
Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1


🟠Проверка прав доступа в разных ситуациях
Для файлов: По умолчанию права доступа 666 минус umask.
Для каталогов: По умолчанию права доступа 777 минус umask.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9