четверг, 5 июня 2025 г.

Kubernetes: что такое операторы, зачем они нужны и почему без них не обойтись?

 

Kubernetes: что такое операторы, зачем они нужны и почему без них не обойтись?

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

Операторы автоматизируют задачи, которые обычно выполняет администратор, используя пользовательские контроллеры (Custom Controllers) и пользовательские ресурсы (Custom Resource Definitions, CRD).

четверг, 15 мая 2025 г.

docker не стартует, одна из причин

failed to start daemon: failed to dial "/run/containerd/containerd.sock": Unavailable: connection error: desc = "transport: Error while dialing: dial unix:///run/containerd/containerd.sock: timeout"

Проблема оказалась крайне не очевидной:

journalctl -u containerd -n 100

 containerd[379849]: containerd: failed to load TOML: /etc/containerd/config.toml: (37, 2): duplicated tables

(дважды добавили блок с прокси), устранили - заработало

среда, 23 апреля 2025 г.

Запуск opentofu (под яндекс)

 Увы, хороший изначально замысел сделать форк terraform тоже оказался "политизированным" и стал творить дичь в 2024, с ограничениями доступа и удалениями провайдеров из баз. Причём это прямо нарушает позицию "вне политики, вне ограничений", но кого это волнует..

Но используем что есть, ТФ использовать это совсем уже печальный вариант.

1) Установка

https://opentofu.org/docs/intro/install/deb/

2) обход маразмов

Делаем .tofurc с содержимым как для тф (они совместимы, пока?)

cat << 'EOF' >> ~/.tofurc
provider_installation {
  network_mirror {
    url = "https://terraform-mirror.yandexcloud.net/"
    include = ["registry.terraform.io/*/*"]
  }
  direct {
    exclude = ["registry.terraform.io/*/*"]
  }
}
EOF

(тут есть подробно, но это медиум, искать плагины или иные методы обхода жадности)

При этом на тофе дока есть по тому же яндексу

И офдока яндекса, для тофы меняем некоторые вещи с terraform (plan) на tf (plan) итд.

воскресенье, 20 апреля 2025 г.

яндекс.облако: clickhouse as a service

 Создание вроде в 2 нажатия, но у меня была ошибка "Управление пользователями через консоль недоступно

В кластере включена опция Управление пользователями через SQL. "

Что делать в этом случае:

1) при создании задавался пароль admin (и его можно выставить новый если забыли), держим под рукой

2) нам нужен clickhouse-client

3) Убеждаемся, что правильно настроили SG и подключение возможно

4) открываем "инструкцию по подключению", там получаем сертификаты и берём строку подключения. Подключаемся (пример: clickhouse-client --secure --host rc1b-xxx.mdb.yandexcloud.net --user admin --ask-password --port 9440

Да, нужный хост есть прямо в инструкции, но если что - список хостов в разделе Хосты - FQDN хоста.

5) Самое простое создание базы: create database ххх;

6) добавление юзера: CREATE USER  xxx IDENTIFIED BY 'aaa';

7) Добавляем роли, например

CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;

Отключаемся и можно работать, например сделать подключение в WebSQL. Надо понимать что создание чисто для примера, у базы например есть шарды, CLUSTER, ENGINE итд, а у юзера вообще масса параметров, смотрим доку.

Ну и всякие table, view итд - в доку.

суббота, 5 апреля 2025 г.

koboldcpp + gemma

 AI

https://github.com/LostRuins/koboldcpp/releases/tag/v1.86.2

https://github.com/LostRuins/koboldcpp/wiki

https://huggingface.co/bartowski/google_gemma-3-4b-it-GGUF/tree/main

четверг, 30 января 2025 г.

Проблемы на старых устройствах при обновлении SSL сертификата

 Андроиды до 10 и ТВ могут перестать работать

https://hoster.by/help/ssl-sertifikaty/posle-ustanovki-obnovleniya-ssl-sertifikata-sayt-ne-otkryvaetsya-u-nekotorykh-polzovateley-v-chem-mo/

Сайты с коммерческим SSL-сертификатом GlobalSign AlphaSSL могут перестать открываться у пользователей, использующих устройства с операционными системами Windows 7, 8, Android 9 и ниже. С 29 января 2024 SSL-сертификаты GlobalSign AlphaSSL используют новый корневой сертификат GCC R6 AlphaSSL CA 2023. Этот сертификат не поддерживается операционными системами ниже Windows 10 и Android 10. Для того, чтобы пользователи с операционными системами ниже Windows 10 и Android 10 могли без проблем посещать ваш сайт, нужно установить промежуточный сертификат R1-R6 

https://www.ispmanager.ru/news/globalsign-izmenil-ierarhiyu-kornevyh-sertifikatov-alphassl-i-alphassl-wildcard-s-r1-na-r6

https://support.globalsign.com/ca-certificates/root-certificates/globalsign-cross-certificates

пятница, 13 декабря 2024 г.

metabase: Database has migration lock (с h2 базой), в докере

 При обновлении метабазы можно поймать

INFO db.liquibase :: Database has unrun migrations. Checking if migration lock is taken... metabase | 2024-12-11 13:50:58,579 WARN util.jvm :: auto-retry metabase.db.liquibase$wait_for_migration_lock$fn__45690@5bfa25f0: Database has migration lock; cannot run migrations. You can force-release these locks by running `java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate release-locks`.

Фикс (блоком кода)

docker compose down docker ps # обязательно проверяем, что нет лишних запусков, иначе всё сломается docker compose run -ti --entrypoint /bin/bash metabase cd /app #### Обязательно указать валидный файл, иначе просто создаст новую базу. Путь тоже именно такой, иначе создаст metabase.db.mv.db.mv.db export MB_DB_TYPE=h2 export MB_DB_FILE=/metabase.db/metabase.db java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate release-locks java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate up ### Обязательно выходить через exit 0, иначе контейнер будет пытаться рестартоваться exit 0

и дальше штатный запуск

понедельник, 9 декабря 2024 г.

openmediavault + zfs

 В китае был куплен комп на N100 под небольшой домашний NAS, и по мере изучения было решено "а чего бы не изучить openmediavault". Добавлен второй диск (обычный sata на 2Тб, механика), поставлен omv. Из коробки вообще довольно много занятного, включая поддержку k8s, podman.

Но захотелось добавить zfs, штатно его нет, нагуглилось что нужен https://wiki.omv-extras.org/. Только оказалось, что он не открывается из РФ, будто это кому-то сделает плохо (нет). 2 минуты, тор браузер, выкушена строка установки по адресу

https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/packages/master/install :

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

И.. всё появляется.

(можно поставить из веба wetty и через веб открыть консольку, где этот скрипт приложить/вставить. Но проще использовать scp install root@...)

Можно через веб, система - плагины - в поиск zfs, можно прямо в консоли

apt install -y openmediavault-zfs

Далее обновляем веб интерфейс и хранилище - zfs - pools - создать, можно отдать просто диск/раздел (предварительно надо будет очистить), можно например lvm том отдать. 

Единственное, "создать раздел" у меня не получилось, если прямо на физический диск делать пул, принимает или lvm, или диск целиком..

PS быстрое включение deduplication на пуле zpool

# zfs get dedup zpool

NAME   PROPERTY  VALUE          SOURCE

zpool  dedup     off            default

root@openmediavault:~# zfs set dedup=on zpool

PS2 если вкладка ZFS в вебе даёт 404 то можно попробовать

modprobe zfs

вторник, 3 сентября 2024 г.

вторник, 20 августа 2024 г.

про обновления Dell

 > Firmware update with iDRAC fail with RED007: Unable to verify Update Package signature.

Такое можно поймать, если вообще забили на обновления и idrac версии типа 2.21.21.21 (актуальная 86)

Pre 2.40.x.x_xx version -> 2.40.40.40_A00 -> 2.63.60.61_A00 -> 2.70.70.70_A00 -> 2.84.84.84_A00 […]

https://www.itechlounge.net/2024/06/servers-firmware-update-with-idrac-fail-with-red007-unable-to-verify-update-package-signature/

Пакеты Dell Update Package (DUP) iDRAC7 и iDRAC8 больше не содержат цифровых подписей SHA-1. Это изменение DUP было введено в микропрограмме iDRAC 2.61.60.60 и более поздних версиях. В iDRAC7 и iDRAC8 версии 2.40.40.40 или более поздних версий добавлена поддержка проверки подписей SHA256. iDRAC должен работать под управлением одной из следующих версий для поддержки полезных нагрузок SHA-256 DUP с помощью обновлений по дополнительному каналу.

(с трусливо сбежавшего сайта делл)

И момент: если старый драк то при попытке войти можно получить ошибку

sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: denyAfter constraint check failed: SHA1 used with Constraint date: Tue Jan 01 01:00:00 CET 2019 [...]

https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0101395

Нужно обновить драк и/или выполнить фикс в конфиге по примеру из линка (удалить SHA1 usage SignedJAR & denyAfter 2019-01-01)

понедельник, 12 августа 2024 г.

ansible: ограничить количество одновременных хостов

 Штатно, ansible катит по 5 хостов за раз. Но бывает нужно как больше, так и меньше, например если мы катим какой-то сервис, то одновременный перезапуск всех инстансов сразу -- это проблема (всякие canary deploy и прочее опустим, тут другой инструмент). Вообще, раньше работала опция --forks=10 (и --forks=1 тоже), в 2.9 уже не работает. Но есть второе решение, очень неочевидное если не знать об этом: serial

Можно указывать как штуки, так и проценты.

вторник, 6 августа 2024 г.

angie+grafana

https://angie.software/configuration/grafana/

1) проверить, что есть

include prometheus_all.conf;

2) добавить блок для статов (и лучше вообще на отдельный порт, с этим работать проще)

    location =/p8s {
        prometheus all;
    }

! Нюанс: если данная лока смотрит не на локалхост, обязательно или добавить авторизацию, или конструкцию вида

allow 127.0.0.1;
allow 192.168.0.0/16;
deny all;

3) в prometheus

scrape_configs:
  - job_name: "angie"
    scrape_interval: 15s
    metrics_path: "/p8s"
    static_configs:
      - targets: ["192.168.1.100:80"]

4) в графану добавляем график 20719

PS Если нужно просто смотреть статы одной ноды, графана не нужна:

https://angie.software/configuration/monitoring/

ставим Console Light пакет, несколько строк конфига, и будет https://console.angie.software/

четверг, 11 июля 2024 г.

mysql медленная репликация

 Бывает что слейв начинает отставать от мастера, поскольку на слейве репликация прокатывается в один поток. И тут помогает (для mariadb):

https://mariadb.com/kb/en/parallel-replication/

Впрочем, был подсказан ещё вариант, менее надёжный, более быстрый (на слейве):

SET GLOBAL sync_binlog = 0; SET GLOBAL  innodb_flush_log_at_trx_commit = 0;