DevOps
23.7K subscribers
1.21K photos
155 videos
15 files
1.07K links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥полезные ит-каналы

https://t.me/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - jobs

РКН: clck.ru/3FmvZA

#VRHSZ
Download Telegram
🌦 Linecast - погода, карты, радар, приливы, Солнце и Луна прямо в терминале

Open-source CLI превращает публичные данные в шесть интерактивных приложений:

- linecast weather — погода, почасовой прогноз, AQI и предупреждения
- linecast sunshine — восход, закат и длина дня
- linecast moon — фазы Луны, восход/заход и календарь
- linecast tides — график приливов и отливов
- linecast radar — анимированный радар и спутниковые данные
- linecast maps — карты, рельеф, поиск мест и маршруты

Работает на macOS, Linux и Windows. Написан на Python, почти без зависимостей, не требует аккаунта или API-ключей и подстраивает цвета под тему терминала.

Можно даже запустить без установки:

uvx linecast weather

GitHub:
https://github.com/ashuttl/linecast
❤2👍1
Что реально стоит за требованиями в вакансиях DevOps-инженера

Открываешь вакансию - а там список из десяти технологий и фраза «опыт от 3 лет». Непонятно, что из этого критично, а что просто скопировали из соседней вакансии.

🔹В этом ролике - нарезка с вебинара, где Senior ИТ-рекрутер Аниса Рогатова и практикующий DevOps-инженер Евгений Федосеев разбирают реальные вакансии по косточкам: что на самом деле стоит за каждым требованием и на что смотрят при отборе.

🔹Полезно, если сейчас откликаешься на вакансии и не уверен, дотягиваешь ли до требований - или просто хочешь понимать, как рекрутер и инженер читают резюме по-разному.

Смотреть полную запись вебинара 👉СМОТРЕТЬ
👎3👍2
Forwarded from Machinelearning
✔️ OpenAI на 60% снизила цены на голосовое управление агентами Work и Codex

Теперь в десктопных клиентах ChatGPT за тот объем кредитов пользователи получают в 2,4 раза больше времени голосовой связи, а биллинг голосового потока и затраченных на задачу вычислительных ресурсов разделен.

Изменения касаются только десктопной среды и не затрагивают стандартный голосовой режим ChatGPT, где действуют другие лимиты и правила тарификации.


@ai_machinelearning_big_data

#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴2❤1👍1
⚡️ Поды здоровы, а запросы в Kubernetes случайно отваливаются? Проверьте conntrack.

Linux хранит состояния отслеживаемых соединений в таблице conntrack. Она используется в том числе при NAT для Kubernetes Services. Если таблица переполняется, новые соединения могут терять пакеты.

Симптомы: периодические тайм-ауты, сбои DNS и ошибки API при нормальных показателях приложений.

Как проверить на проблемном узле:


# Текущее число записей и лимит
sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max

# Сообщения ядра
sudo journalctl -k | grep -i conntrack


Характерная запись:


nf_conntrack: table full, dropping packet


Что делать:

• Увеличить лимит с учётом доступной памяти. Универсального значения для всех узлов нет.

• Проверить настройки conntrack.maxPerCore и conntrack.min в kube-proxy: он может управлять лимитом. Одного изменения через sysctl недостаточно для устойчивой настройки.

• Сократить создание новых соединений: использовать пулы, HTTP keep-alive, проверить лавину повторных запросов.

• Пересматривать тайм-ауты по состояниям соединений после диагностики. Слишком короткие значения могут нарушить работу долгоживущих подключений.

Следите за заполнением таблицы на каждом узле. Свободные ресурсы соседних нод не спасают таблицу перегруженной.

https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше

Такая оптимизация обычно достигается не одной магией, а несколькими простыми приёмами:

- multi-stage build
- python:slim / distroless вместо тяжёлого base image
- удаление build-зависимостей после сборки
- очистка apt / pip cache
- .dockerignore для лишних файлов
- установка только production-зависимостей
- объединение команд RUN, чтобы не тащить мусор в слои

Пример:

3.17 GB → 354 MB

Что это даёт:
- быстрее pull/push
- быстрее CI/CD
- меньше места в registry
- быстрее запуск новых pod
- меньше потенциальная attack surface

Перед оптимизацией полезно посмотреть, что реально раздувает образ:

docker history <image>

и отдельно проверить слои через dive.

Большой Docker image почти всегда стоит сначала разобрать по слоям — часто там лежат гигабайты build-tools, cache и файлов, которые в runtime вообще не нужны.
🔥12❤6👍3💯2🥴1
Есть серьезный разговор…
об ИТ-инфраструктуре и требованиях к ней в современных условиях

Как активное внедрение ИИ изменило подход к выбору железа, с чего начать при выборе приватного облака и как создать отказоустойчивое решение под свои задачи. Обо всем этом и не только — на бесплатной конференции Selectel ТехноДень 8 октября.

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

Присоединяйтесь к Selectel ТехноДень, чтобы лично задать вопросы экспертам рынка и обменяться опытом. Количество мест ограничено, регистрируйтесь уже сейчас →

Реклама. АО "Селектел". erid:2W5zFGsAMi1
Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀

Без NodeLocal DNSCache DNS-запрос от Pod проходит через:

Service IP → kube-proxy → DNAT → conntrack → CoreDNS

В нагруженных кластерах это увеличивает задержки и создаёт дополнительную нагрузку на таблицу conntrack.

NodeLocal DNSCache запускает локальный DNS-кеш на каждой ноде как DaemonSet:

Pod → локальный DNS-кеш → CoreDNS

Если запись уже есть в кеше, Pod получает ответ прямо с текущей ноды. При промахе запрос передаётся в CoreDNS.

Преимущества

- быстрее обрабатываются повторные DNS-запросы;
- снижается нагрузка на CoreDNS;
- уменьшается межнодовый DNS-трафик;
- обходятся kube-proxy и DNAT;
- сокращается количество UDP-записей в conntrack;
- доступны DNS-метрики отдельно для каждой ноды.

NodeLocal DNSCache стабилен с Kubernetes 1.18, но обычно его нужно включать отдельно и развернуть node-local-dns как DaemonSet.

🔗 Официальная документация Kubernetes: https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Прокачай терминал Linux: 7 утилит, которые экономят время

Описание: Что установить на Linux для удобной разработки? Быстрый поиск по коду, переходы между проектами, наглядный Git и сохранение рабочих сессий - 7 полезных инструментов с примерами.

#Linux #Терминал #Программирование #DevOps #НастройкаLinux
😁3❤2🌚1
Gateway API vs Ingress Controller в Kubernetes

Главное различие в архитектуре управления трафиком.

Ingress задаёт правила маршрутизации, а Ingress Controller обычно одновременно:

- следит за конфигурацией;
- обновляет правила;
- сам проксирует трафик.

С Gateway API логика похожа: вы описываете Gateway, HTTPRoute, GRPCRoute, а контроллер превращает их в рабочую конфигурацию.

Например, в NGINX Gateway Fabric control plane и data plane разделены:

- Control plane: контроллер читает Gateway API-ресурсы и формирует конфигурацию.
- Data plane: отдельный NGINX pod принимает и маршрутизирует трафик.
- Между ними конфигурация передаётся через gRPC.

В итоге Gateway API даёт более гибкую и расширяемую модель маршрутизации, особенно для сложной инфраструктуры и нескольких команд.

Коротко: Ingress проще и привычнее. Gateway API предлагает более современную архитектуру с чётким разделением управления и обработки трафика.
❤6👍2
🤖 ИИ-агенты теперь могут самостоятельно работать с задачами в GitLab

Обычно разработчик общается с ИИ в отдельном чате, а потом переносит результат в рабочий процесс. В SourceCraft появился другой сценарий: агент получает задачу прямо в обсуждении GitLab и работает под собственной учетной записью.

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

При этом взаимодействовать с агентами можно не только через GitLab, но и из VS Code, командной строки, мессенджеров или веб-интерфейса. Компании также смогут подключать собственных агентов, в том числе созданных в Yandex AI Studio.

Получается, что ИИ участвует не только в написании кода, но и в самом процессе разработки: от получения задачи и уточнения деталей до передачи результата на проверку.
🔥4❤2🥰1🤯1
⚡️ В Kubernetes соединения случайно обрываются под нагрузкой? Проверьте conntrack.

Если таблица отслеживания соединений на ноде заполнена, это может проявляться таймаутами, сбоями DNS и ошибками запросов. Сначала сравните число записей с лимитом:


sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max


В кластере, который создаётся через kubeadm, лимит можно задать в отдельном документе KubeProxyConfiguration внутри конфигурационного YAML:


apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
conntrack:
maxPerCore: 65536
min: 131072


maxPerCore задаёт лимит на ядро, min — нижнюю границу для ноды. Примерные значения нужно подбирать под число ядер и нагрузку: увеличение лимита помогает только после проверки, что проблема действительно в переполнении таблицы. Конфигурация kube-proxy, переданная в kubeadm init, применяется ко всем его экземплярам в кластере.

Документация Kubernetes - https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/
👍6😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Снёс коммиты? Как вернуть код после git reset -hard

Одна команда - и три коммита исчезли из истории ветки. Субару уже готов начинать заново, но Эмилия знает способ вернуться.

Показываем, как восстановить коммиты после git reset --hard: найти нужный хеш через git reflog, проверить изменения и создать спасательную ветку.

Способ работает, пока объекты коммитов сохранились. Незакоммиченные правки reflog не восстанавливает.

#Git #Программирование #ReZero #GitReflog
🥴8🤣2