DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3P8kFH
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام DevOps Portal | Linux
تُعد قناة DevOps Portal | Linux (@loose_code) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 13 744 مشتركاً، محتلاً المرتبة 9 246 في فئة التكنولوجيات والتطبيقات والمرتبة 47 183 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 13 744 مشتركاً.
بحسب آخر البيانات بتاريخ 31 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 653، وفي آخر 24 ساعة بمقدار 8، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 18.75%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 10.49% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 576 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 441 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 8.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل devops, kubernetes, docker, linux, ebpf.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 01 نوفمبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
Ошибки Pod/контейнера🔹CrashLoopBackOff — Причина: Контейнер продолжает падать из-за ошибок в приложении. — Первый шаг: Проверьте логи с помощью kubectl logs <pod> и отладьте приложение. 🔹ImagePullBackOff — Причина: Kubernetes не может загрузить образ контейнера из реестра. — Первый шаг: Проверьте название образа, учетные данные (если образ приватный) и убедитесь, что реестр доступен. 🔹ErrImagePull — Причина: Kubernetes не удалось загрузить образ контейнера. — Первый шаг: Убедитесь, что образ существует в реестре и его имя написано правильно. 🔹OOMKilled — Причина: Контейнер превысил лимит памяти. — Первый шаг: Увеличьте лимит памяти в спецификации pod или оптимизируйте приложение. 🔹ContainerCreating в течение длительного времени — Причина: Проблемы с монтированием томов, образами или kubelet. — Первый шаг: Проверьте привязки томов, статус образа и логи узла. 🔹Неудачная проверка Readiness/Liveness — Причина: Пробы неправильно настроены или приложение не отвечает. — Первый шаг: Проверьте настройки проб и убедитесь, что приложение готово.
Ошибки планирования Pod🔹0/1 узлов доступны: 1 Недостаточно CPU — Причина: Узлы кластера не имеют требуемых ресурсов CPU. — Первый шаг: Масштабируйте кластер или отрегулируйте запросы ресурсов для pod. 🔹0/1 узлов доступны: Нет совпадений для селектора узла — Причина: Селекторы узлов в спецификации pod не совпадают с метками узлов. — Первый шаг: Обновите метки узлов или измените селектор узла в pod. 🔹0/1 узлов доступны: Правила Pod Affinity/Anti-affinity — Причина: Правила размещения pod препятствуют планированию. — Первый шаг: Проверьте и отрегулируйте правила affinity/anti-affinity в спецификации pod.
Ошибки с постоянным хранилищем🔹VolumeMountConflict — Причина: Несколько pod пытаются смонтировать том в режиме ReadWriteOnce. — Первый шаг: Отрегулируйте режимы доступа к томам или конфигурацию хранилища. 🔹PersistentVolumeClaim в состоянии Pending — Причина: Нет подходящего PersistentVolume. —Первый шаг: Проверьте конфигурацию PV и убедитесь, что она соответствует требованиям PVC. 🔹Неудачное прикрепление тома — Причина: Ошибка прикрепления тома к узлу. — Первый шаг: Проверьте класс хранилища и логи облачного провайдера на наличие ошибок.
Ошибки RBAC и аутентификации🔹Forbidden: Пользователь <user> не может просматривать ресурс <resource> — Причина: У пользователя или сервисного аккаунта нет необходимых прав. — Первый шаг: Создайте или обновите RoleBinding/ClusterRoleBinding. 🔹Unauthorized — Причина: Неверный или просроченный kubeconfig. — Первый шаг: Обновите токены, убедитесь в наличии правильных сертификатов или повторно войдите в кластер. 🔹Secret не найден — Причина: Секрет, указанный в спецификации pod, не существует. — Первый шаг: Создайте секрет или обновите pod, чтобы использовать существующий секрет.
Ошибки в управляющей плоскости и узлах рабочих🔹etcdserver: запрос истек по времени — Причина: Кластер etcd не работает должным образом или перегружен. — Первый шаг: Проверьте логи и метрики etcd и убедитесь в правильном распределении ресурсов. 🔹Evicted — Причина: Давление на ресурсы узла (например, недостаточно диска, памяти или CPU). — Первый шаг: Освободите ресурсы или масштабируйте кластер. 🔹Узел испытывает давление на диск — Причина: Недостаточно места на диске узла. — Первый шаг: Очистите неиспользуемые образы или логи и мониторьте использование диска. 🔹Узел испытывает давление на память — Причина: Слишком высокое использование памяти. — Первый шаг: Определите процессы, потребляющие много памяти (top или htop), и оптимизируйте их или остановите. Рассмотрите возможность добавления памяти в узел. 🔹Узел испытывает давление по PID — Причина: Достигнут максимальный лимит процессов (PIDs). — Первый шаг: Увеличьте лимит PID в /etc/systemd/system.conf. Проверьте "блуждающие" процессы и оптимизируйте использование ресурсов.
docker build могут повторно использовать кэш менеджера пакетов.
🔹Кэшированные файлы не попадут в финальный образ.
🔹Кэш будет работать, даже если один из вышеуказанных слоев изменится.
И все, что для этого нужно, это использовать инструкцию RUN --mount=type=cache. Вот пример для сборки образа с Python 👆
👉 DevOps Portalwatch -d -n 1 sensors
Это отображает данные о температуре CPU, GPU, Wi-Fi, NVMe SSD и HDD в реальном времени.
Подробнее: https://cyberciti.biz/faq/howto-linux-get-sensors-information/
👉 DevOps Portalls — отличный инструмент командной строки для вывода списка файлов и каталогов в Linux.
Однако lsd — это еще более современная альтернатива ls. Она добавляет значки, цветной вывод и делает представление информации более удобным и наглядным.
$ lsd -lah
Если команда lsd не установлена в вашей системе по умолчанию, обратитесь к документации вашей системы для инструкций по установке.
👉 DevOps Portalkubelet (агент узла), могут общаться со всеми Pod'ами на своем узле.
— Сервисы: стабильный доступ к Pod'ам
🔹 API Service: Предоставляет стабильный IP/имя хоста для группы Pod'ов (например, backend-серверов).
Пример: Frontend веб-приложения может подключаться к backend-сервису, не беспокоясь об изменении IP-адресов отдельных Pod'ов.
🔹 EndpointSlices: Kubernetes автоматически обновляет их для отслеживания активных Pod'ов, обслуживающих сервис.
— Маршрутизация трафика и прокси
🔹 Service Proxy: Направляет трафик к нужным Pod'ам.
— По умолчанию: kube-proxy (встроенный прокси Kubernetes).
— Альтернативы: Некоторые сетевые плагины заменяют kube-proxy своими прокси (например, Cilium).
— Внешний доступ к сервисам
🔹 Gateway API/Ingress:
1. Ingress: Устаревший способ предоставления внешнего доступа к сервисам (например, через HTTP-маршруты).
2. Gateway API: Современный и гибкий метод управления внешним трафиком (поддерживает сложную маршрутизацию и многокомандные настройки).
🔹 Тип LoadBalancer: Самый простой способ предоставить внешний доступ к сервису (работает с облачными провайдерами, такими как AWS или GCP).
— Сетевая безопасность (NetworkPolicy)
🔹 Контроль трафика: Определяет правила, например: "Только Pod'ы frontend могут взаимодействовать с Pod'ом базы данных."
🔹 Не всегда поддерживается: Зависит от сетевого плагина (например, Calico поддерживает NetworkPolicy, а простые плагины могут не поддерживать).
— Без ручной настройки сети
🔹 Автоматическое подключение: В отличие от старых систем (например, Docker links), Kubernetes автоматически управляет сетями.
🔹 Pod'ы как виртуальные машины: Подходите к Pod'ам как к отдельным серверам — не нужно вручную сопоставлять порты или управлять подключениями.
— Как Kubernetes реализует сети
🔹 Kubernetes задает правила: Указывает, что должно быть сделано (например, Pod'ы должны общаться напрямую).
🔹 Внешние инструменты выполняют работу:
1. Container Runtime Interface (CRI): Настраивает сетевые пространства Pod'ов (общие для контейнеров внутри Pod'а).
2. CNI-плагины: Управляют реальной сетью Pod'ов (например, Calico, Flannel).
3. Сервисные прокси: Обрабатывают маршрутизацию трафика (например, kube-proxy или прокси плагинов).
— Ключевые моменты для понимания
🔹Сеть Pod'ов vs. Host-сеть:
1. Сеть Pod'ов: Режим по умолчанию (Pod'ы получают уникальные IP).
2. Host-сеть: Pod'ы используют IP узла (редко используется, например, для инструментов мониторинга сети).
🔹 Устаревшие vs. современные инструменты:
1. Ранее требовалась ручная привязка портов (например, docker run -p 80:80).
2. Kubernetes автоматизирует этот процесс — ручная работа не требуется.
🔹 Примеры Gateway API:
1. Облачные: AWS Gateway API Controller, Google Cloud Gateway.
2. Универсальные: Istio, NGINX Gateway.
👉 DevOps Portalmount -o remount,rw,nosuid,nodev,noexec,relatime,hidepid=2 /proc
Теперь снова запускаем от обычного пользователя htop и наблюдаем, что выборка процессов пропала, и осталось +- 2, bash и htop.
Естественно после ребута сервера, все это пропадет. Чтобы этого не произошло — монтируем /proc в fstab.
Вставляем в /etc/fstab
proc /proc proc defaults,nosuid, nodev, noexec,relatime,hidepid=2 0 0
Встречаются приложения которые могут отвалиться. Для этого нужно зафиксить маунт с опцией gid=VALUE.
Значением gid параметра может быть имя группы в системе, членам которой доступ к процессам будет разрешён. И затем маунтить /proc таким образом:
proc /proc proc defaults, hidepid=2, gid=devopsport 0 0
Добавляем пользователя от имени которого будет работать приложение/демон в эту группу и проверяем — если всё сделано верно, то приложение заработает как обычно.
👉 DevOps Portalsetfacl -m u::rwx,g::rx,o::x /usr/bin/chmod
🔹 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmod**
🔹 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod. Создаём пустой файл с правами утилиты ls.
cp --attributes-only /usr/bin/ls ./new_chmod
Копируем содержимое утилиты chmod в созданный файл:
cat /usr/bin/chmod > ./new_chmod
Можно использовать:
/new_chmod +x /usr/bin/chmod🔹 Почти то же самое что и предыдущий вариант только проще:
install -m 755 /usr/bin/chmod ./new_chmod
или так:
rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod
🔹 Если умеете программировать, то, пример с Python:
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"
👉 DevOps Portal