Как стать автором
Обновить
30
0

Системный инженер CDN

Отправить сообщение

Давно собирался потрогать KubeVirt, да руки не доходили, а тут такой подробный разбор!
Спасибо за статью!
Сложилось впечатление что слой контейнеров немного мешает управлению виртуализации. Мне нравится идея k8s работы с ресурсами и реакция на их изменение, но в случае виртуализации хочется упростить слой c kubelet с абстракцией подов... а на такое нужно много человеческих ресурсов... эээх

Вспоминаю как я пытался на Кипре залить на сервер в Питере 100 гигов и отказался от этой затеи как раз из-за сети с кучей потерь, там это почти норма.

Тут как раз трюк в том что соединения не прибиваются, аля мы "экономим" на хендшейке. Cкепсис правильный, работая с серверами я забыл что потери бывают разные.


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

В libc по умолчанию таймаут в 5 секунд (man resolv.conf), если явно в resolv.conf не исправить на что-то поменьше.
Persistent DNS Connections for Reliability and Performance

Есть экспериментальный RFC 8094 "DNS over DTLS", в нём есть такие строчки:


DTLS session resumption consumes one round trip, whereas TLS session resumption can start only after the TCP handshake is complete. However, with TCP Fast Open [RFC7413], the implementation can achieve the same RTT efficiency as DTLS.

DNS ходит по UDP по историческим причинам, 30 лет назад сети были мееедленные. Хотя и тогда никто не запрещал ходить по TCP.


На тему современных отношений DNS и TCP, копипаста ответа Anand Buddhdev на вопрос почему зона .org отваливается если включить валидацию DNSSEC на рекурсоре (и забыть убрать опцию tcp: no):


Don't disable TCP. TCP is required for proper operation of DNS, especially if you want to do DNSSEC validation. Many of the signed responses can be large. For example, the DNSKEY response for .ORG is 1625 bytes, and sometimes TCP is required in order to retrieve such large responses. Disabling TCP can cause DNSSEC validation to fail.

Ещё есть интересная затея с DNS over QUIC

Мне в качестве конечного формата больше svg нравится (dot -T svg > a.svg), его можно в браузере открыть, помасштабировать и, самое главное, текст копипастить.

Тогда там и lsof может не быть :D


Пайпы в помощь:


ssh my-little-server '[sudo] lsof -n -F' | python lsofgraph.py | ...

sudo "в лоб" не везде взлетит, конечно. В целом, сам граф можно построить где угодно если есть возможность передать вывод lsof с сервера куда-нибудь ещё

В список RFC можно ещё добавить 1912 "Common DNS Operational and Configuration Errors".

Коротко: создаёте файловую систему, добавляете метаинформацию, пакуете в тарбол и импортируете в LXD


На https://images.linuxcontainers.org/ пишут следующее:
"All images available on this server are generated using community supported, upstream LXC image templates available here." И далее по тексту идут ссылки на CI-скрипты сборки образов.


Так что можно посмотреть имена шаблонов lxc-контейнеров и использовать их для создания образов LXD с помощью представленных ci-скриптов.


Отдельная документация про формат образов:
https://github.com/lxc/lxd/blob/master/doc/image-handling.md#image-format


Про процедуру создания и импорта образа описано в "LXD 2.0: Image management" (перевод)

Вот тут (перевод) сказано что самый простой способ — расшарить public-образы (соответствующий флаг образа) на одном из lxd-серверов:


lxc config set core.https_address "[::]:8443"

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


lxc remote add <some name> <IP or DNS> --public

Однако аутентификации в этом случае не предусмотрено. Также можно поднять особым образом настроенный веб-сервер (заголовки и т.п.) с сертификатами. Ещё есть вариант с некими simplestrams, но для них сходу документации не нашёл. Буду рад если кто-нибудь дополнит.

А dns вашу проблему не решает?


В целом, довольно элегантное решение. Спасибо!

Ещё есть Pagure: https://pagure.io/pagure
Написан на питоне, используется для проектов Fedora.


"pull-реквесты, issues, хранятся вместе с проектом, в Git-репозитории."

По поводу "Откатываемся, если есть проблемы": для обработки ошибок лучше использовать появившиеся в версии 2.0 (актуальная — 2.1) специально для этого предназначенные "блоки".


Оф. документация: http://docs.ansible.com/ansible/playbooks_blocks.html#error-handling


Копипаста чтобы по ссылке не ходить:


 tasks:
  - block:
      - debug: msg='i execute normally'
      - command: /bin/false
      - debug: msg='i never execute, cause ERROR!'
    rescue:
      - debug: msg='I caught an error'
      - command: /bin/false
      - debug: msg='I also never execute :-('
    always:
      - debug: msg="this always executes"

Для теста хватит, если в бой — всё равно переписывать.
Ждём оффициального образа :)

https://github.com/jeefy/docker-clickhouse:


docker run -p 8123:8123 -p 9000:9000 jeefy/clickhouse
Для чего вы используете IPv6? Какой кейс использования?
Какой у вас объем IPv6-трафика относительно IPv4?
Судя по rtt, ns1.ens.mail.ru находится в Москве, а где расположен ns2.ens.mail.ru?
Будут ли авторитетные серверы доступны по IPv6?

От промо тоже не откажусь :D
Имхо, если большинство ваших пользователей в России, то используя NS'ы Амазона и записи с маленькими значениями ttl (для быстрого фейловера, например, или ещё какой фичи) вы будете заставлять своих пользователей ждать пока их рекурсоры будут гонять пакеты за тридевять земель.
Используете родную потоковую репликацию postgresql или используете стороннюю триггерную?
Держали или обслуживали? В bind можно затолкать немало, но при тестах пару лет назад bind с одной маленькой зоной смог обработать 28rps загрузив 8 ядер, powerdns же на одном ядре и 10к зон в базе переваривал 100rps на одном ядре (да, packetcache был включён, иначе бы таких цифр не получилось).

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность