TGViewer
Channel Public Channel
DevOps Portal | Linux

DevOps Portal | Linux

@loose_code

Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Сотрудничество, реклама: @devmangx

Работаем с @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Subscribers
13.1K
Photos
1K
Videos
134
Links
1.1K

Showing posts older than #1880 · Back to latest

Older Posts 20 shown
Post #1878 3.64K
Наглядное руководство по основам Systemd

Статья подробно и наглядно раскрывает внутреннее устройство systemd, делая акцент на ключевых компонентах D-Bus и cgroups, и объясняет, как устроена их архитектура и взаимодействие на примерах и схемах

https://medium.com/@sebastiancarlos/systemds-nuts-and-bolts-0ae7995e45d3

👉 DevOps Portal
  • ❤ 7
  • 👍 4
Post #1876 3.93K
Это руководство показывает, как построить локальную data platform с использованием KinD для Kubernetes и Terraform для провижининга инфраструктуры, а также Argo CD в качестве GitOps-движка для деплоя и управления приложениями.

➤ Ссылка на руководство

👉 DevOps Portal
  • 🔥 5
  • ❤ 1
Post #1874 3.54K
Эта фича Kubernetes меняет то, как контейнеры работают с root-привилегиями

User Namespaces — это механизм безопасности, который сопоставляет ID пользователей и групп внутри контейнера с другим набором ID на хосте. По сути, это rootless-изоляция.

Ключевая идея такая.

Процесс, который запускается от root внутри контейнера, на хосте выполняется от имени непривилегированного пользователя, например с UID 100000.

Без User Namespaces контейнер, запущенный от root, использует ту же root-идентичность, что и хост.

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

Вот практический гайд, в котором разобрали следующее:
- что такое User Namespaces;
- как ядро выполняет маппинг root-пользователя на non-root пользователя;
- что меняется при установке hostUsers: false;
- как ограничивать диапазоны UID на хосте с помощью файла /etc/subuid;
- практический деплоймент для понимания User Namespace;
- ограничения User Namespace.

Читать здесь: https://newsletter.devopscube.com/p/kubernetes-user-namespaces

👉 DevOps Portal
  • ❤ 7
  • 🔥 4
Post #1873 3.65K
DevOps-инструмент недели: Kafbat UI

Запускать Kafka в проде – это здорово, ровно до того момента, когда нужно залезть внутрь и посмотреть, что там происходит

Kafbat UI — бесплатный open-source веб-интерфейс для мониторинга и управления кластерами Apache Kafka.
Он даёт единое окно управления всеми вашими Kafka-кластерами.

Брокеры, топики, партиции, consumer groups, schema registry, Kafka Connect – всё собрано в одном дашборде.

Можно просматривать сообщения в форматах JSON, Avro и Protobuf, фильтровать live-потоки через CEL-выражения, смотреть consumer lag по каждой партиции, а также создавать и перенастраивать топики без необходимости лезть в CLI.

GitHub-репозиторий:
Kafbat UI GitHub Repository

👉 DevOps Portal
  • ❤ 5
  • 👍 4
  • 🤔 1
Post #1871 3.42K
Новая фича Kubernetes 1.36: Image Volumes

Контейнерные образы уже давно используют не только для упаковки приложений, но и для хранения произвольных артефактов: статических ассетов, весов моделей, конфигов и т.д. Во многом потому, что контейнерные registry есть практически везде, а такой «хак» сильно упрощает доставку крупных наборов данных.

Но чтобы использовать такой image-артефакт, раньше приходилось сначала pull’ить образ, а затем распаковывать его содержимое в директорию, доступную приложению. В Kubernetes это обычно означало дополнительный init container с набором кастомных скриптов.

К счастью, в Kubernetes v1.36 появился более чистый подход — image volumes. Теперь можно напрямую монтировать файловую систему OCI-образа в Pod как read-only volume.

Небольшой hands-on челлендж, чтобы попробовать это в деле: https://labs.iximiuz.com/challenges/kubernetes-pod-image-volume

👉 DevOps Portal
  • ❤ 13
  • 👍 3
Post #1870 3.93K
Kubernetes начинался как слой планировщика поверх набора однохостовых Docker-демонов. Это значит, что долгое время Kubernetes-поды были всего лишь "полусклеенными" группами Docker-контейнеров.

Со временем появился Container Runtime Interface (CRI), который дал возможность подменять и настраивать container runtime’ы. Большинство кластеров перешло с тяжеловесного Docker на более специализированный containerd в качестве «высокоуровневого» runtime’а, при этом низкоуровневый OCI runtime (runc) остался без изменений.

Однако потребность в более изолированных подах продолжала расти, и вслед за этим появились "альтернативные" реализации – альтернативные по отношению к Docker-style контейнерам. Самые заметные из них – gVisor и Kata Containers.

gVisor запускает контейнеры поверх урезанного user-land kernel, написанного на Go, а Kata Containers оборачивает обычные Linux-контейнеры в microVM’ы для дополнительной изоляции.

Естественно, возникла необходимость указывать container runtime на уровне пода. Так и появился ресурс RuntimeClass.

С помощью RuntimeClass можно сообщить Kubernetes, какие container runtime’ы поддерживают ноды кластера. Это позволяет кластеру запускать как традиционные поды на базе Linux-контейнеров, так и более изолированные поды на gVisor или Kata Containers.

kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: nginx-kata-qemu
spec:
runtimeClassName: kata-qemu
containers:
- name: nginx
image: nginx:alpine
EOF


Узнайте, как регистрировать новые RuntimeClass’ы и запускать поды с произвольными именами runtime class, в практическом туториале от Márk Sági-Kazár: https://labs.iximiuz.com/tutorials/kubernetes-runtime-class-61506808

👉 DevOps Portal
  • ❤ 5
  • 👍 5
Post #1868 3.75K
Этот инструмент предоставляет доступ к операциям Kubernetes-кластера через Model Context Protocol, позволяя AI-агентам и инструментам безопасно читать состояние кластера и выполнять контролируемые действия, такие как команды kubectl

https://github.com/containers/kubernetes-mcp-server

👉 DevOps Portal
  • ❤ 3
Post #1866 3.53K
Новая серия практических челленджей от Kaloyan Preslavski, полностью сфокусированная на том, как работает планирование подов в Kubernetes

- Kubernetes Pod Scheduling: Requests ресурсов
https://labs.iximiuz.com/challenges/resource-requests-scheduling-e607f0d4
- Kubernetes Pod Scheduling: QoS-классы (Quality of Service Classes)
https://labs.iximiuz.com/challenges/qos-classes-ed21d34c
- Kubernetes Pod Scheduling: Priority и Preemption
https://labs.iximiuz.com/challenges/priority-preemption-9c62482f
- Kubernetes Pod Scheduling: LimitRange и ResourceQuota
https://labs.iximiuz.com/challenges/limitrange-resourcequota-7d992c42
- Kubernetes Pod Scheduling: Pod Affinity и Anti-Affinity
https://labs.iximiuz.com/challenges/pod-scheduling-affinity-8733a9e2
- Kubernetes Pod Scheduling: nodeSelector и Node Affinity
https://labs.iximiuz.com/challenges/nodeselector-node-affinity-e80db96a
- Kubernetes Pod Scheduling: Topology Spread Constraints
https://labs.iximiuz.com/challenges/topology-spread-constraints-a806af86
- Kubernetes Pod Scheduling: Taints, Tolerations и Node Affinity — почему иногда нужны сразу оба механизма
https://labs.iximiuz.com/challenges/taints-tolerations-node-affinity-3cd4d1de
- Kubernetes Pod Scaling: Horizontal Pod Autoscaler (HPA)
https://labs.iximiuz.com/challenges/hpa-scaling-5f978f78


Приятного хаккинга! 🤝

👉 DevOps Portal
  • ❤ 7
Post #1865 3.48K
Развёртывание Kubernetes-кластера с помощью kubeadm

Этот туториал от Márk Sági-Kazár не просто пошагово объясняет процесс, но и даёт возможность выполнить каждую команду в изолированной песочнице, чтобы убедиться в её корректности.

Изучай Kubernetes на практике:
https://labs.iximiuz.com/tutorials/provision-k8s-kubeadm-900d1e53

👉 DevOps Portal
  • ❤ 8
Post #1863 3.65K
Чеклист готовности Kubernetes к продакшену для команд, которые подготавливают workloads к запуску в production.

В него входят: интерактивный чеклист, подробные пояснения к каждому пункту проверки и PDF-воркшит для скачивания.

https://learnkube.com/production-best-practices

👉 DevOps Portal
  • 👍 6
  • ❤ 4
Post #1862 3.57K
Helm _helpers.tpl file – что это такое?

Если вы работаете с Helm чартами, то наверняка видели файл _helpers.tpl внутри директории /templates.

Многие просто игнорируют его, не понимая, зачем он нужен при деплое чарта.

В этом гайде разобрали:
- что такое _helpers.tpl и как он работает;
- что такое named templates / partial templates;
- практический пример использования;
- в каких случаях его лучше не использовать.

Читайте здесь: https://devopscube.com/_helpers-tpl-file-in-helm-charts/

👉 DevOps Portal
  • ❤ 5
  • 👍 2
Post #1860 3.13K
Этот туториал показывает, как добавить observability в EKS-кластер: перейти на паттерн App of Apps в ArgoCD и развернуть kube-prometheus-stack с корректно настроенным EBS CSI driver и конфигурацией kubelet cAdvisor

Читайте тут

👉 DevOps Portal
  • ❤ 3
Post #1857 3.19K
Apache Airflow на Kubernetes (MLOps)

Если вы хотите работать с проектами в области MLOps, Data Engineering или AI-инфраструктуры,
знание Apache Airflow может дать вам серьёзное преимущество.

Apache Airflow — это open-source платформа для построения и управления сложными воркфлоу и пайплайнами.

В этом блоге разобрали:

- Что такое Apache Airflow
- Как работают DAG’и
- Как устроены executors в Airflow
- Развёртывание Airflow в Kubernetes
- Настройку GitSync для управления DAG’ами
- Важные Day 2 operational insights и многое другое...

Читайте здесь: https://devopscube.com/apache-airflow-on-kubernetes/

Изучение Airflow значительно упрощает понимание таких платформ, как Kubeflow, потому что их ключевые концепции очень похожи:
- DAG’и
- Оркестрация задач
- Выполнение пайплайнов и т.д.

👉 DevOps Portal
  • ❤ 5
  • 🔥 2
  • 👍 1
Post #1856 3.43K
Stakpak — это опенсос AI-агент для терминала, заточенный под DevOps: генерирует инфраструктурный код, дебажит Kubernetes и автоматизирует деплои. При этом использует подстановку секретов, чтобы LLM никогда не получала доступ к вашим реальным данным

https://github.com/stakpak/agent

👉 DevOps Portal
  • 👍 15
  • ❤ 6
Post #1854 3.89K
Настройка Kubernetes-кластера на Kubeadm 1.36 (пошагово)

Вот почему стоит развернуть собственный self-hosted Kubernetes-кластер.

Когда вы поднимаете кластер с нуля,

вы начинаете гораздо лучше понимать, как устроены control plane-компоненты и worker-ноды Kubernetes.

Кроме того, если вы готовитесь к экзаменам CKA или CKS, управление кластером через Kubeadm входит в официальный syllabus этих сертификаций.

Вот обновлённый гайд по настройке Kubeadm 1.36, где весь процесс разобран пошагово.

https://devopscube.com/setup-kubernetes-cluster-kubeadm/

Для DevOps-инженера крайне важно глубоко понимать все компоненты, из которых состоит Kubernetes-кластер.

Рекомендую в процессе обучения использовать именно self-hosted Kubernetes-кластер, а не готовые managed-решения, которые легко доступны "из коробки".

👉 DevOps Portal
  • ❤ 10
  • 👍 8
Post #1852 3.57K
Podman — альтернатива Docker без демона

Podman – это container runtime, который имитирует Docker на уровне основных команд (run, exec, kill и т.д.), но при этом под капотом использует daemonless-архитектуру. У такого подхода есть свои плюсы (например, меньше moving parts, более простой rootless-сетап) и минусы (например, без демона некоторые операции с контейнерами требуют дополнительной интеграции с systemd).

Вот несколько практических челленджей, если хотите попробовать Podman и сравнить его с Docker:

- Запуск и инспектирование контейнера в Podman
https://labs.iximiuz.com/challenges/start-container-with-podman
- Автоматический рестарт контейнера Podman после перезагрузки хоста
https://labs.iximiuz.com/challenges/podman-101-container-restart-on-host-reboot
- Запуск и инспектирование контейнера в Docker (для сравнения)
https://labs.iximiuz.com/challenges/start-container-with-docker

👉 DevOps Portal
  • 👍 6
  • ❤ 3
Post #1851 4.31K
Как собрать продакшн-готовый образ контейнера для Go-приложения

Достаточно ли тебе FROM scratch? Посмотри эти практические задания, чтобы разобраться с типичными проблемами контейнеризации Go:

- Cтатическая линковка: https://labs.iximiuz.com/challenges/dockerize-golang-application-static-linking

- Динамическая линковка https://labs.iximiuz.com/challenges/dockerize-golang-application-dynamic-linking


👉 DevOps Portal
  • ❤ 10
Post #1849 4.24K
Все используют балансировщик нагрузки, но немногие понимают алгоритмы балансировки

Вот несколько популярных:

🔹Round Robin — распределяет входящие запросы по серверам по очереди в фиксированном циклическом порядке.

🔹IP Hash — использует хеш-функцию от IP-адреса клиента, чтобы стабильно направлять его на один и тот же сервер.

🔹Least Connections — перенаправляет новые запросы на сервер с наименьшим количеством активных соединений.

🔹Weighted Round Robin — распределяет запросы с учётом веса (веса или производительности) каждого сервера, передавая больше трафика более мощным узлам.

🔹Least Response Time — направляет запросы на сервер с наименьшей средней задержкой или временем отклика.

🔹Random — выбирает сервер случайным образом для каждого входящего запроса, без определённой логики или последовательности.

👉 DevOps Portal
  • ❤ 13
  • 👍 2
Post #1847 3.33K
Совет по Kubernetes: Ресайзинг подов в месте их работы

Вот как это работает 👇

Функция изменения размера пода In-Place Pod Resize позволяет изменять запросы и ограничения по CPU и памяти на работающем поде без его удаления или воссоздания.

Когда необходимо изменить размер,

Kubelet обновляет cgroup контейнера на уровне Linux напрямую, без удаления пода или перезапуска контейнера, если только это не запрашивается явно.

Флаг --subresource resize сообщает Kubernetes, что обновляются только изменяемые поля пода (CPU и память).

Вот подробный гайд, в котором разобрано:

- как это работает под капотом
- как изменить размер пода на месте с использованием VPA.
- проблемы с уменьшением памяти и многое другое...

Читать здесь: https://devopscube.com/vpa-in-place-pod-resize/

👉 DevOps Portal
  • ❤ 8
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →