<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Заметки — khorost.tech</title><link>https://khorost.tech/notes/</link><description>Заметки об IT и жизни. Docker, Go, инфраструктура и не только.</description><language>ru</language><managingEditor>Александр Хохлов</managingEditor><lastBuildDate>Tue, 28 Jul 2026 11:00:03 +0000</lastBuildDate><atom:link href="https://khorost.tech/notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Вывести ноду на обслуживание и вернуть в работу</title><link>https://khorost.tech/notes/kubectl-node-drain/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/kubectl-node-drain/</guid><description>drain с нужными флагами, чем он отличается от cordon и почему старый &amp;ndash;delete-local-data больше не работает</description></item><item><title>Выдать приложению доступ к одному бакету</title><link>https://khorost.tech/notes/minio-scoped-policy/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-scoped-policy/</guid><description>Политика на конкретный бакет вместо readwrite на весь кластер, и почему у write-only не должно быть ListBucket</description></item><item><title>Завести сервисный аккаунт вместо root-ключей</title><link>https://khorost.tech/notes/minio-service-account/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-service-account/</guid><description>Бакет и отдельная пара ключей для сервиса за четыре команды — вместо того чтобы раздавать root-доступ</description></item><item><title>Зайти в контейнер, не выясняя имя пода</title><link>https://khorost.tech/notes/kubectl-shell-in-pod/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/kubectl-shell-in-pod/</guid><description>Оболочка внутри пода с запасным вариантом на случай, если bash в образе нет, и обращение через deploy вместо имени пода</description></item><item><title>Открыть бакет на чтение, но запретить листинг</title><link>https://khorost.tech/notes/minio-anonymous-no-list/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-anonymous-no-list/</guid><description>mc anonymous set download заодно разрешает перечислять содержимое бакета — кто угодно увидит все ключи; нужна своя политика с одним GetObject</description></item><item><title>Перезапустить приложение в кластере</title><link>https://khorost.tech/notes/kubectl-restart-workload/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/kubectl-restart-workload/</guid><description>rollout restart вместо удаления подов — с сохранением стратегии обновления и возможностью откатиться</description></item><item><title>Перенести пользователей и политики между кластерами MinIO</title><link>https://khorost.tech/notes/minio-iam-transfer/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-iam-transfer/</guid><description>Экспорт и импорт IAM одной парой команд — и почему полученный архив нужно затирать, а не просто удалять</description></item><item><title>Подключить mc к S3-совместимому хранилищу</title><link>https://khorost.tech/notes/minio-alias-setup/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-alias-setup/</guid><description>Алиас mc за одну команду, где он хранится и как не оставить пароль в истории оболочки</description></item><item><title>Починить kubectl, когда контекст «не найден»</title><link>https://khorost.tech/notes/kubectl-context-repair/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/kubectl-context-repair/</guid><description>В kubeconfig есть кластер и пользователь, но пустой список контекстов — kubectl падает, хотя доступ на месте</description></item><item><title>Проверить манифест, не применяя его</title><link>https://khorost.tech/notes/kubectl-dry-run-apply/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/kubectl-dry-run-apply/</guid><description>server-side dry-run ловит то, что клиентский пропускает: неизвестные поля, отсутствующие CRD и отказы вебхуков</description></item><item><title>Скопировать бакеты между кластерами MinIO</title><link>https://khorost.tech/notes/minio-mirror-versions/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-mirror-versions/</guid><description>mc mirror переносит только текущие версии объектов — старые версии и delete-маркеры теряются молча</description></item><item><title>Создать бакет и проверить, что с ним</title><link>https://khorost.tech/notes/minio-bucket-create-check/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/minio-bucket-create-check/</guid><description>Идемпотентное создание, размер и число объектов, квота и состояние кластера — набор команд, которого хватает в 90% случаев</description></item><item><title>Отменить последний коммит</title><link>https://khorost.tech/notes/git-undo-last-commit/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/git-undo-last-commit/</guid><description>Три разных «отменить»: сохранить правки в индексе, вернуть в рабочий каталог или стереть совсем</description></item><item><title>Посмотреть срок действия TLS-сертификата</title><link>https://khorost.tech/notes/openssl-cert-expiry/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/openssl-cert-expiry/</guid><description>Когда истекает сертификат живого хоста и локального файла — и как проверить это в скрипте одним кодом возврата</description></item><item><title>Пробросить SSH-ключ на удалённый хост</title><link>https://khorost.tech/notes/ssh-agent-forwarding/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/ssh-agent-forwarding/</guid><description>Как сходить с промежуточного сервера в приватный репозиторий, не копируя туда приватный ключ — и почему у этого есть цена</description></item><item><title>Разложить время HTTP-запроса по стадиям</title><link>https://khorost.tech/notes/curl-timing/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/curl-timing/</guid><description>Куда на самом деле ушли секунды: DNS, TCP, TLS, ожидание первого байта — одним curl без профилировщиков</description></item><item><title>Сгенерировать случайный токен</title><link>https://khorost.tech/notes/openssl-random-token/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/openssl-random-token/</guid><description>Четыре способа получить криптостойкую случайную строку — и чем они отличаются по алфавиту и длине</description></item><item><title>Узнать, как тебя видит внешний мир</title><link>https://khorost.tech/notes/curl-my-ip/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://khorost.tech/notes/curl-my-ip/</guid><description>IP, ASN, провайдер и страна как их видит удалённая сторона — одной командой, в обход прокси</description></item></channel></rss>