Частина посилань на цій сторінці партнерські: якщо ви зареєструєтесь через них, сайт отримає комісію, для вас ціна не змінюється. На ціни й рекомендації це не впливає.
Чотири речі, що привернули увагу цього тижня, з нашою думкою про кожну. Посилання на оригінали є в кожному пункті, їх варто прочитати. Ця сторінка лише пояснює, чому вони важливі для невеликого self-hosted середовища.
1. Порожній resources: {} тихо понижує ваші поди в Kubernetes від 1.34 до 1.36
Оригінал: An Empty resources: {} Makes Kubernetes 1.34 to 1.36 Pods BestEffort на devops-daily.com (також на dev.to).
Твердження: якщо под задає spec.resources: {} на рівні поду, kubelet відносить його до BestEffort, навіть коли кожен контейнер має requests і limits. Автори виміряли це на k3s 1.34, 1.35 і 1.36: oom_score_adj стрибнув до 1000, а поруч із завантаженим сусідом под, що запитував половину ядра CPU, отримував від 0.06 до 0.08 ядра замість приблизно 0.57. Квота namespace, яка блокує поди BestEffort, його відхилила. На 1.37.1 класи були правильними. Executor Kubernetes у GitLab Runner генерує цей порожній блок у версіях від 18.10.0 до 19.4.3.
Наша думка: корисна поправка до поширеного міфу. Стаття показує, що популярне твердження «ці поди витісняються першими» хибне; порядок витіснення kubelet не змінився. Перевірте свій кластер за десять секунд:
kubectl get pods -A -o custom-columns=NS:.metadata.namespace,POD:.metadata.name,QOS:.status.qosClass | grep BestEffort
Якщо робоче навантаження з лімітами з’явилося в списку, ви знайшли проблему. Якщо вам зручніше бачити QoS-клас в інтерфейсі, наш огляд GUI для Kubernetes розглядає інструменти, які показують його одразу.
2. OpenStick за 10 USD як домашній сервер
Оригінал: What I run on my $10 USD OpenStick homelab (825 балів і 137 коментарів на Hacker News).
Залізо: чотири ядра Cortex-A53 по 1 GHz, 512 МБ RAM (близько 450 МБ доступно), 4 ГБ eMMC, Debian із systemd і Podman, пасивне охолодження. Автор запускає на ньому AdGuard Home (близько 40 МБ) і кілька невеликих утиліт.
Наша думка: цікавить не гаджет, а дисципліна бюджету. Сервіси, що вимірюються десятками мегабайтів, є правильним вибором за замовчуванням для DNS-блокувальника, монітора аптайму чи сповіщувача. Коли сервіс переростає 512 МБ, наступний чесний крок - це невеликий VPS, а не більша коробка під столом; наш огляд VPS показує, що дають від 4 до 6 євро на місяць сьогодні.
3. HolyArrs: медіастек self-hosted на 15 МБ
Оригінал: HolyArrs on GitHub, опубліковано як «Show HN: A 15 MB self-hosted Netflix and Spotify for your media server» (близько 160 балів і 125 коментарів на Hacker News).
Проєкт замінює шість окремих медіадодатків одним бінарним файлом: близько 15 МБ для завантаження, близько 140 МБ RAM у простої при 10 000 назв, збірки для amd64, arm64 та armv7, ліцензія AGPL-3.0.
Наша думка: після експлуатації Plex цього сезону людей приваблює менша поверхня атаки. Один малий бінарник простіше перевірити, ніж стек із шести застосунків, але молодий проєкт ще не має історії безпеки. Зверніть увагу: 15 МБ - це розмір завантаження, а не обсяг пам’яті; при 140 МБ у простої він ледве вмістився б на OpenStick вище. Що б ви не обрали, тримайте це за reverse proxy без безпосередньо опублікованого порту: Docker обходить ufw для опублікованих портів, що ми виміряли в пастках Docker у продакшені.
4. NVIDIA публікує NVKE, площину керування для GPU Kubernetes
Оригінал: dsx-ai-factory/nvke (124 бали і 30 коментарів на Hacker News).
NVKE - це площина керування, де кожен робочий кластер отримує власний control plane, etcd і node pools. README позначає її як превʼю і не рекомендує для продакшн-навантажень. Локальний quickstart запускає площину керування і робочий кластер на симульованих машинах, тож спробувати можна без GPU.
Наша думка: для одного сервера це неважливо, але це сигнал, що кластер на кожного клієнта перетворюється на готовий продукт. Якщо ви запускаєте один-два кластери, лишайтеся на k3s і поверніться до NVKE, коли мітка превʼю зникне.
Що ми зробили б цього тижня
- Запустіть перевірку BestEffort вище на кожному кластері від 1.34 до 1.36.
- Якщо ви користуєтеся executor Kubernetes у GitLab Runner, оновіть його до 19.5.0 або новішої, як рекомендує оригінальний звіт.
- Не переносьте нічого продакшн-рівня на превʼю-софт.