Kraken — P2P-powered Docker реестр, ориентированный на масштабируемость и доступность
Kraken — это Docker реестр с P2P архитектурой, который фокусируется на масштабируемости и доступности. Он предназначен для управления образами Docker, репликации и распространения в гибридной облачной среде. Благодаря поддержке подключаемых бэкэндов, Kraken легко интегрируется в существующие настройки Docker реестра в качестве слоя распространения.
Kraken используется в Uber с начала 2018 года. В самом загруженном кластере Kraken распространяет более миллиона больших двоичных объектов (blobs) в день, включая 100 тысяч объектов размером более 1 ГБ. При пиковой нагрузке Kraken может распространять 20 тысяч объектов размером от 100 МБ до 1 ГБ менее чем за 30 секунд.
Визуализация работы небольшого кластера Kraken:
Содержание
Особенности
Вот некоторые особенности Kraken:
Дизайн
Основная идея Kraken заключается в том, чтобы иметь небольшое количество выделенных хостов, которые распространяют контент в сети агентов, работающих на каждом хосте в кластере.
Центральный компонент, трекер, управляет всеми участниками сети, формируя псевдослучайный регулярный граф.
Такой граф имеет высокую связность и небольшой диаметр. В результате даже при наличии одного сеялки и тысяч пиров, присоединяющихся одновременно, все участники могут достичь минимум 80% максимальной скорости загрузки/выгрузки в теории (60% с текущей реализацией), и производительность не сильно ухудшается по мере увеличения размера blob и размера кластера. Для получения более подробной информации см. технический доклад команды на KubeCon + CloudNativeCon.
Архитектура
Теоретически, Kraken должен распределять большие двоичные объекты (blob) любого размера без существенного снижения производительности. Однако в Uber мы устанавливаем ограничение в 20 ГБ и не можем рекомендовать использование сверхбольших blob-объектов (например, размером более 100 ГБ) в продакшене. Пиры устанавливают ограничения на соединения для каждого большого двоичного объекта, и новые пиры могут испытывать нехватку соединений, если другие пиры не станут сидерами относительно скоро. Если вы хотите распространять сверхбольшие большие двоичные объекты, мы рекомендуем сначала разбить их на фрагменты размером менее 10 ГБ.
Пожалуйста, ознакомьтесь с нашим руководством (docs/CONTRIBUTING.md).
Чтобы связаться с нами, присоединяйтесь к нашему каналу Slack (https://join.slack.com/t/uber-container-tools/shared_invite/enQtNTIxODAwMDEzNjM1LWIwYzIxNmUwOGY3MmVmM2MxYTczOTQ4ZDU0YjAxMTA0NDgyNzdlZTA4ZWVkZGNlMDUzZDA1ZTJiZTQ4ZDY0YTM).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )