Кубертатный период
481 subscribers
144 photos
10 videos
3 files
319 links
DevOps Underdog
Download Telegram
🤿 Погружение в kube-scheduler

📆 Как работает планировщик Kubernetes можно подробно почитать тут. Этапы планирования Pod'а описаны на рисунке.

🔮 Заскедуленный в данный момент Pod входит в так называемый цикл планирования, как только он выводится из очереди планировщика (после этапов Filtering и Scoring). Очередь сортируется по приоритету Pod'ов, и вы можете узнать больше о том, как работает, здесь. Каждый цикл планирования выполняется последовательно для каждого Pod'а и пытается назначить текущий Pod какому-либо узлу (Node) в кластере.

🧐 О том как работают некоторые стадии в цикле планирования можно почитать здесь:
CycleState Object
Filter Stage
PreFilter Stage
PostFilter Stage
Binding Cycle

🏕 Что интересно, так это то, что все в Kubernetes планируется нативным же образом через планировщик, например:
• Запросы ресурсов (Filter plugin)
• Taints и tolerations (Filter plugin)
Pod preemption (PostFilter plugin)

🧐И самое любопытное, интерактивное представление о работе Kubernetes планировщика в Kube Scheduler Simulator

#kubernetes #kubescheduler
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👨‍💻21
👁 Уже все наверное написали про Kubernetes 1.29 релиз под названием Mandala
Прокомментировал основные изменения.

KEP-2395: Removing In-Tree Cloud Provider Code

😋 Целью этих изменений является предоставление облачным провайдерам возможность разрабатывать и выпускать выпуски независимо от основного цикла выпуска Kubernetes. Отделение кода поставщика облачных услуг позволяет разделить ответственность между «ядром Kubernetes» и поставщиками облачных услуг. Кроме того, это гарантирует, что все поставщики облачных услуг в экосистеме будут последовательно и расширяемо интегрироваться с Kubernetes.
Ждем семейство дистрибутивов Kubernetes?

KEP 1287: In-Place Update of Pod Resources

😵 Данное изменение позволяет изменять запросы и ограничения ресурсов контейнера без необходимости перезапуска контейнера.

KEP 753: Sidecar Containers

◀️Про Sidecar контейнеры я уже писал ранее.

Stable
KEP 3299: KMS v2 Improvements OR KMSv2
KEP 2485: ReadWriteOncePod PersistentVolume Access Mode
KEP 727: Kubelet Resource Metrics Endpoint
“The Kubelet Summary API is a source of both Resource and Monitoring Metrics. Because of it’s dual purpose, it does a poor job of both.”

Beta
KEP 2799: Reduction of Secret-based Service Account Tokens

Alpha
KEP 3866: nftables kube-proxy backend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👨‍💻21
Forwarded from Golang
⚡️ Антипаттерны архитектуры

Откройте для себя распространенные антишаблоны архитектуры, узнайте, как их избегать и преодолевать "подводные камни" проектирования!

Антипаттерн (англ. anti-pattern) — это распространённый подход к решению класса часто встречающихся проблем, являющийся неэффективным, рискованным или непродуктивным. В отличие от шаблона проектирования, рассмотрение антипаттерна включает в себя как неправильное решение проблемы с его признаками и последствиями, так и выход из ситуации.

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

Проект
Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👨‍💻1
Gateway API in Kubernetes with Cilium

Cilium используется сразу в нескольких важных ролях:

☝️ Замена kube-proxy с использованием eBPF для улучшения производительности и безопасности
0️⃣ Container Network Interface (CNI) для взаимодействия Pod’ов в рамках кластера
🔜 Advanced Load Balancing and Layer 2 Network Solutions: для эффективного управления траффиком и построения надежной сетевой инфраструктуры
🍀 Gateway Class Provider for Gateway API: для масштабируемых и универсальных решений роутинга

📍Gateway API предоставляет новый подход для маршрутизации трафика сервисов в Kubernetes. Появились новые абстракции GatewayClass, Gateway, HTTPRoute, TCPRoute и другие. Это похоже на обновленную, более сложную версию Ingress, предлагающую более широкий спектр функций и более совершенный пользовательский интерфейс в управлении сетью сервисов Kubernetes.

ℹ️ Подробнее как Cilium реализует Gateway API можно почитать тут — https://docs.cilium.io/en/stable/network/servicemesh/gateway-api/gateway-api/

#cilium
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2
CNCF: Observability Whitepaper

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

Необходимо помнить, что observability — это не просто использование всех модных инструментов, нужно понимать, какие данные выходят из системы и как их интерпретировать, чтобы не получить огромный кусок никому не нужных данных. Текущие инструменты позволяют наблюдать за приложение и средой непосредственно в production окружении.

1️⃣ Метрики: в CNCF две популярные модели данных — Prometheus и OpenTelemetry. Стоит обратить внимание на раздел Metric Cardinality: слишком подробные метрики могут привести к непредсказуемому росту метрик и размера данных используемых для их хранения.
2️⃣ Логи можно преобразовать в метрики и трассировки для наблюдения изменений в течение времени. Логи также нужно визуализировать и анализировать. Не храните персональные данные и сенситивную информацию в хранилище логов.
3️⃣ Трейсы: OpenTelemetry или .NET используют W3C в качестве стандартного формата распространения. По этому пути идут все больше облачных провайдеров, и при отсутствии других задач рекомендуется использовать стандарт W3C.
4️⃣ Профилирование: текущие инструменты становятся все более популярными в облачных средах; они добавляют небольшие накладные расходы, что делает профилирование на production как никогда более доступным вариантом.
5️⃣ Дампы: в Linux kernel 2.6+ появился новый метод работы с дампами ядра — так называемые обработчики дампов ядра. Другими словами, это означает, что вместо того, чтобы делегировать сбор файла операционной системе, выходные данные процесса после падения передаются на стандартный ввод приложения, который уже отвечает за запись файла.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21😍1
WireGuard Easy

You have found the easiest way to install & manage WireGuard on any Linux host!
👍2😱2🤝1
🌐 Нам нужна экосистема управления пакетами в Kubernetes

🤔 Почему при написании Helm-чартов приходится задумываться об отступах? Почему конфигурация для nodeAffinity, tolerations, serviceMonitors и других ресурсов различна для каждого чарта? И почему в чартах часто отсутствуют даже базовые компоненты? Это должно быть стандартизировано.

🔄 Почему так многие чарты не включают CRD? Это усложняет установку и управление CRD отдельно.

🔍 Зачем чарты генерируют неоднозначный вывод? Мне нужна предсказуемость — для конкретного входного набора и версии чарта должен получаться одинаковый вывод с helm template.

👩‍💻 Зачем разбираться в Golang, чтобы расшифровать ошибки типизации в файле values.yaml?

🛻 Почему Helm так часто используется как инструмент развертывания? Мне не хочется отслеживать состояние развертывания в самом кластере Kubernetes, когда существуют более эффективные варианты.

🤔 А какой, по вашему мнению, существенной функциональности не хватает в Kubernetes?
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2👨‍💻2
This media is not supported in your browser
VIEW IN TELEGRAM
KFtray

KFtray - инструмент для управления портами приложений в Kubernetes. Может пригодиться для тестирования API и локальной разработки.
2🤯2😁1
Forwarded from Эшер II A+
⚡️⚡️⚡️ У зоны RU сломался DNSSEC
🤯4👍2😱2🔥1
Змейка, которая кушает поды. Будьте осторожны, играя в проде :)

Своего рода Chaos Engineering

https://github.com/deggja/serpent
😁5👍21🥴1
GenAI / LLM для аналитики для полного и точного перевода простого языка в SQL (text-to-SQL)

https://www.waii.ai/

Думается, что скоро подобное будет появляться и на широком рынке.
🤣2👨‍💻2😁1
🤑 Инструменты для оптимизации затрат в облаках

Robusta KRR: Собирает данные о потреблении ресурсов подов из Prometheus и предлагает оптимальные значения requests и limits для CPU и памяти.

Goldilocks by Fairwinds: Аналогичный инструмент, который помогает оптимизировать настройки ресурсов подов в Kubernetes.

Opencost: Мониторинг затрат в облаке для провайдеров AWS, GCP и Azure.

Kube-downscaler: Инструмент с открытым исходным кодом, который автоматически масштабирует нагрузку в Kubernetes в соответствии с расписанием. Это позволяет снизить затраты за счет оптимизации использования ресурсов в периоды низкой активности.

🔍 Платные решения:
ScaleOps: Kubernetes Resource Optimization
StormForge: Automated Kubernetes Resource Management
Harness: Cloud Cost Management Software
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥31
😮 Исходники Omni от Siderolabs (Talos) теперь в открытом доступе вместе с возможностью self-hosted.

🍟 Сервис позволяет быстро и на любых ресурсах (bare-metal, VM, cloud resources) развернуть Kubernetes-кластер. Правда по лицензии нельзя использовать для продажи Managed-сервиса, но можно использовать для своих нужд.

🛡 Built for security from the start, with a minimal attack surface.
🔓 Image based and immutable, upgrades are simple and atomic.
📍 API managed. No SSH – all management is done via a secure gRPC API.
🪖 Installs vanilla Kubernetes, hardened to support CIS and STIG guidelines.

Благодаря встроенному SideroLink (TM) Talos Linux устанавливает безопасное, зашифрованное WireGuard соединение с Omni на самом раннем этапе процесса загрузки, позволяя транслировать логи, просматривать данные о производительности, изменять конфигурации и удаленно диагностировать проблемы.

https://www.youtube.com/live/wd3lI3qf-3w?si=rls_G04EoOVU1Pjy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍2🤔1
Managing 100s of Kubernetes Clusters using Cluster API

Тут ребята делятся своим опытом по управлению сотней кластеров Kubernetes через Cluster API, сократив время развертывания новых кластеров с полутора недель до одного рабочего дня. Минимизировали ручное управление с помощью Kubernetes Operator паттерна.

Правда их опыт релевантен только для Microsoft Azure (AKS) с использованием Cluster API Provider Azure (CAPZ), но скорее всего этот паттерн можно использовать и для других Managed кластеров.
4🤔3👌2
Челик проходил интервью в Google на позицию Senior Site Reliability Engineer, SE (System Engineering) и любезно записал все вопросы и ответы на них с рассуждениями

https://prepare.sh/engineering/devops/google/

Там есть и другие интервью на другие позиции
🔥10👍43
А вы знали, что в Linux кроме базовых прав доступа в inode файла находятся еще три бита, описывающие специальные права доступа?

SUID (Set UID): Этот бит устанавливается на исполняемых файлах. Когда программа запускается с этим битом, она выполняется с правами владельца файла, а не пользователя, который её запустил. Обычно это используется для программ, требующих дополнительных привилегий.

SGID (Set GID): Похож на SUID, но программа выполняется с правами группы владельца файла. Этот бит также может быть установлен на директории, где он назначает группу для всех новых файлов.

Sticky bit: Этот бит обычно устанавливается на директории. Если он активирован, то только владелец файла может удалить его из директории, даже если другие пользователи имеют права на запись в неё. Это защищает от случайного удаления файлов.
11👀4👨‍💻3