The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимости в ingress-nginx, позволяющие выполнить код и захватить управление кластерами Kubernetes

25.03.2025 13:49

В развиваемом проектом Kubernetes ingress-контроллере ingress-nginx выявлены четыре уязвимости, позволяющие добиться выполнения своего кода на серверах облачных систем, использующих платформу Kubernetes, и получить полный привилегированный доступ к кластеру Kubernetes. Проблемам присвоен критический уровень опасности (9.8 из 10). Выявившие проблемы исследователи присвоили уязвимостям кодовое имя IngressNightmare и отметили, что уязвимости затрагивают около 43% облачных окружений. Уязвимости устранены в версиях ingress-nginx 1.11.5 и 1.12.1.

Ingress-контроллер выступает в роли шлюза и используется в Kubernetes для организации доступа из внешней сети к сервисам внутри кластера. Контроллер ingress-nginx является наиболее популярным и применяет сервер NGINX для проброса обращений к кластеру, маршрутизации внешних запросов и балансировки нагрузки. Проект Kubernetes предоставляет базовые ingress-контроллеры для AWS, GCE и nginx, последний из которых никак не связан с контроллером kubernetes-ingress, сопровождением которого занимается компания F5/NGINX (рассматриваемые уязвимости не затрагивают проекты, развиваемые разработчиками NGINX, упоминание nginx в названии ingress-nginx связано лишь с задействованием nginx в качестве прокси).

Уязвимости позволяют неаутентифицированному атакующему добиться выполнения своего кода в контексте контроллера ingress-nginx, при возможности отправки запроса к web-обработчику Admission. В ходе сканирования сети выявлено более 6500 уязвимых кластеров Kubernetes, использующих общедоступные уязвимые контроллеры с открытым для внешних запросов обработчиком Admission.

В конфигурации по умолчанию запущенный атакующим код может получить доступ к настройкам объекта Ingress, в которых, среди прочего, хранятся и учётные данные для обращения к серверам Kubernetes, что позволяет добиться привилегированного доступа ко всему кластеру. В качестве обходного пути защиты рекомендуется отключить в ingress-nginx функцию "Validating Admission Controller".

Контроллер Admission запускается в отдельном pod-окружении и выполняет операцию проверки входящих ingress-объектов перед их развёртыванием. По умолчанию web-обработчик Admission принимает запросы без аутентификации из публичной сети. При выполнении проверки контроллер Admission создаёт конфигурацию для http-сервера nginx на основе содержимого полученного ingress-объекта и проверяет её корректность.

Выявленные уязвимости позволяют добиться подстановки своих настроек в nginx через отправку специально оформленного ingress-объекта напрямую в контроллер Admission. Исследователи обнаружили, что некоторые свойства проверочных запросов, выставленные в поле ".request.object.annotations", напрямую подставляются в конфигурацию nginx. При этом сгенерированная конфигурация не применяется, а лишь тестируется путём запуска исполняемого файла "nginx" c опцией "-t".

В частности, подстановка внешних данных в конфигурацию выполняется для параметров "mirror-target", "mirror-host" (CVE-2025-1098), "auth-tls-match-cn" (CVE-2025-1097) и "auth-url" (CVE-2025-24514). Например, в строке конфигурации "set $target {{ $externalAuth.URL }};" вместо "{{ $externalAuth.URL }}" подставляется URL, указанный в параметре "auth-url". При этом корректность URL не проверяется. Соответственно, атакующий может передать в качестве URL значение вида "http://example.com/#;\nнастройки" и подставить свои настройки в файл конфигурации.

Для выполнения произвольного кода в процессе проверки конфигурации командой "nginx -t" исследователи воспользовались тем, что помимо проверки синтаксиса nginx загружает библиотеки с модулями и открывает файлы, упомянутые в конфигурации, для оценки их доступности. Среди прочего, при обработке директивы ssl_engine производится загрузка указанной в директиве разделяемой библиотеки для SSL-движка.

Для загрузки своей библиотеки на сервер Kubernetes исследователи воспользовались (CVE-2025-1974) тем, что при обработке больших запросов nginx сохраняет тело запроса во временном файле, который сразу удаляется, но в файловой системе "/proc" для этого файла остаётся открытый файловый дескриптор. Таким образом, можно одновременно отправить запросы для сохранения временного файла и инициирования проверки конфигурации, в которой в директиве "ssl_engine" указан путь к дескриптору в файловой системе "/proc".

Для того, чтобы файловый дескриптор длительное время оставался доступен значение "Content-Length" в запросе можно указать заведомо большим, чем фактически переданные данные (сервер будет ждать приёма оставшихся данных). Дополнительной сложностью является необходимость угадать PID процесса и номер файлового дескриптора, связанного с загруженной разделяемой библиотекой, но так как в контейнере обычно используется минимальное число запущенных процессов, нужные значения угадываются путём перебора в несколько попыток. В случае успеха и загрузки подставленной разделяемой библиотеки, атакующий может получить доступ к хранимым внутри pod-окружения параметрам, достаточным для управления всем кластером.

Для проверки использования уязвимого ingress-nginx можно выполнить команду:


   kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx


  1. Главная ссылка к новости (https://kubernetes.io/blog/202...)
  2. OpenNews: Уязвимости в ingress-nginx, позволяющие скомпрометировать кластеры Kubernetes
  3. OpenNews: Уязвимость в runc, позволяющая выбраться из контейнеров Docker и Kubernetes
  4. OpenNews: Root-уязвимость из-за некорректных настроек в пакете nginx для Debian и Ubuntu
  5. OpenNews: Критическая уязвимость в http-сервере Nginx
  6. OpenNews: Уязвимость в runc, позволяющая выбраться из контейнеров Docker и Kubernetes
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62946-ingress-nginx
Ключевые слова: ingress-nginx, kubernetes
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:27, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –17 +/
    кто-то использует софт без сертификата фстек?
     
     
  • 2.8, Аноним (8), 15:01, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://www.kommersant.ru/doc/7498300
     
  • 2.32, Аноним (32), 16:55, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как это вообще поможет? (Спойлер: Никак)
     
     
  • 3.37, Ivan_83 (ok), 17:22, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сертификат и правда был смешным ещё пару лет назад.

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

     
  • 3.40, Аноним (40), 17:45, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Просто пробежаться опытным взглядом по процессу удаления временного файла. Стоп. Почему не удаляется дескриптор?
     
     
  • 4.44, нах. (?), 17:56, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто пробежаться опытным взглядом по процессу удаления временного файла. Стоп. Почему
    > не удаляется дескриптор?

    потому что нужен.

    Местные эксперты не знают даже о типовой последовательности open/mkstemp & unlink и почему делается именно так?

     
     
  • 5.63, Аноним (63), 21:47, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > потому что нужен.  

    Самый экспертный ответ из всех экспертных.

     
  • 3.62, Аноним (-), 21:27, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Как это вообще поможет? (Спойлер: Никак)

    Зато у тебя будет не просто вулн - а сертифицированный.

     
  • 2.45, myster (ok), 18:38, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так ФСТЭК сертификаты часто выдают российским форкам открытых зарубежных аналогов, апстримы которых уже на несколько лет ушли вперед по версиям. Уже только этот факт означает, что в этих продуктах полно уязвимостей.

    К тому же эти российские крахоборы, закрывают исходный код, ведут разработку продукта закрыто и продают его по конским ценам. А даже если им платят за "поддержку" их поддержка мало в чём разбирается, чтобы помоч с проблемой.

     
     
  • 3.56, Ivan_83 (ok), 20:40, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > апстримы которых уже на несколько лет ушли вперед по версиям. Уже только этот факт означает, что в этих продуктах полно уязвимостей.

    Не означает вообще ни разу.
    Потому что и патчи можно бэкпортировать и вообще многое переписать нормально.

    У вас когнитивное искажение которое проявляется в том, что форки всегда отстают от того что считается официальным апстримом.
    Это далеко не так.
    Я форкнул sshfs пару лет назад и прилично его причесал внутри, отрефакторил. Апстрим ничего такого и близко не сделал, и изменения я им не засылал потому что мне не впёрлось тратить время на это.

    А ФСТЭК сейчас реально дрючит, по настоящему и за проверки анализаторами и чтобы фаззинг по настоящему делали и всякое остальное.
    Многим апстримам такое нафик не впёрлось и они это не делают сами.

     
     
  • 4.57, 12yoexpert (ok), 21:08, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что и патчи можно бэкпортировать и вообще многое переписать нормально.

    на расте тоже можно проги с нуля писать, но этого почему-то никто не делает

     
  • 4.64, Аноним (63), 21:50, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что и патчи можно бэкпортировать и вообще многое переписать нормально.

    Фантазер. А про переписать нормально - фантазер в кубе.

     
  • 2.59, Аноним (59), 21:11, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    все у кого есть мозг. если мозга нет то можно с сертификатом фстек
     

  • 1.3, bdrbt (ok), 14:33, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот это дырень! Особенно если учитывать, что под капотом многих cloud-решений тот же кубер c nginx-ингресом, только "сбоку брэндовый шильдик", кажется там не 43%. Даже если с него нельзя будет провалиться внутрь всего кластера, всётаки ингрес считается "серым" ресурсом, и его пускают только туда куда можно, но у многих на нём http2, quic и тому подобные https даунгрейдится в http1.1 вобщем будем посмотреть чем это всё закончится.
     
     
  • 2.29, penetrator (?), 16:33, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    под капотом облачных сред обычно KVM, а внутри виртуалки будет сидеть кубер и называться это будет чем-то вроде AKS и cluster management, хотя эта виртуализированная шляпа никогда не станет кластером, обычная оркестрация притом как мы видим дырявая, но это и логично, больше компонентов - больше векторов атаки
     
     
  • 3.53, Аноним (53), 20:30, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бегаешь из треда в тред со своим уникальным определением смысла слова «кластер». Как, помогает? Всех уже переучил говорить на свой лад?
     
     
  • 4.65, penetrator (?), 23:19, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    учи терминологию
     

  • 1.4, Аноним (-), 14:36, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >  при обработке больших запросов nginx сохраняет тело запроса
    > во временном файле, который сразу удаляется, но в файловой
    > системе "/proc" для этого файла остаётся открытый файловый
    > дескриптор.

    Haha. Classic.
    Как не умели в RAII так и не умеют.

     
     
  • 2.5, мимо проходил (?), 14:47, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А где вы тут отсутствие RAII увидели ?
     
     
  • 3.30, penetrator (?), 16:35, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Resource Acquisition Is Initialization or RAII, is a C++ programming technique which binds the life cycle of a resource that must be acquired before use (allocated heap memory, thread of execution, open socket, open file, locked mutex, disk space, database connection—anything that exists in limited supply) to the lifetime of an object.

    C точки зрения терминологии он вообщем-то прав. Другое дело, что его коментарий бесполезный. Гримасничает в чате и всё...

     
     
  • 4.35, мимо проходил (?), 17:19, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так там дескриптор не закрывается пока используется временный файл, т.е. пока этот самый дескриптор нужен.
    А после использования штатно закрывается.
    Полное соответствие RAII, если его сюда приклеить.

    А проблема в том, что любой открытый дескриптор виден в /proc/{PID|self}, даже если сам файл уже удалён.
    Т.е. проблема к RAII никакого отношения не имеет.

    Скорее это похоже на дыры в Java/C# из-за интроспекции "с бантиками".

     
  • 2.6, Аноним (6), 14:53, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Научи нас, о великий гуру RAII, озари нас своей мудростью
     
     
  • 3.7, Аноним (-), 14:58, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Научи нас, о великий гуру RAII, озари нас своей мудростью

    ну ладно, ладно, так и быть

    ВНЕМЛИТЕ!
    Когда файл вам уже не нужен - закройте файловый дескриптор!

     
     
  • 4.10, bdrbt (ok), 15:08, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ВНЕМЛИТЕ!
    > Когда файл вам уже не нужен - закройте файловый дескриптор!

    А если он вам понадобится через секунду - умрите от того, что чьё-то кривое поделие сожрало все доступные дескрипторы, ок, ты в медицинском на патологоанатома учился?

     
     
  • 5.11, Аноним (-), 15:10, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > умрите от того, что чьё-то кривое поделие сожрало все доступные дескрипторы

    Ну конечно альтернатива в виде "атакующий может получить доступ к хранимым внутри pod-окружения параметрам, достаточным для управления всем кластером." намного лучше!

     
     
  • 6.14, bdrbt (ok), 15:21, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> умрите от того, что чьё-то кривое поделие сожрало все доступные дескрипторы
    > Ну конечно альтернатива в виде "атакующий может получить доступ к хранимым внутри
    > pod-окружения параметрам, достаточным для управления всем кластером." намного лучше!

    Ингрес - это просто реверс прокси всего кластера, вряд-ли там можно получить доступ ко всему кластеру, а вот устроить MitM - можно во все поля, и приватный ключ от сертификата угнать.


     
  • 4.39, anonymous (??), 17:26, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Файл нуженю Учитесь читать.
     
  • 2.22, Аноним (22), 15:55, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    тут не про RAII
    это делается чтобы файл не отсвечивал на диске, в т.ч. после падения
     

  • 1.20, нах. (?), 15:38, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    одно я не пойму - нах...я из дикого интернета надо принимать какие-то там детали конфигурации да еще и "проверять" автоматически?  (что, что тут может пойти не так?!)

    Это модный-современный-девляпс подход, инфраструктурка Ass in cocococode, конфигурация сервера сегодня передается вместе с формочкой, да?

    А виноват-то во всем конечно же nginx.

     
     
  • 2.23, SubGun (ok), 16:10, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Никто и не принимает из интернета. Но обычно в компаниях несколько групп разработчиков, в том числе и удаленных. Ты же каждому отдельным кластер не выделяешь?!
     
     
  • 3.33, нах. (?), 17:09, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Никто и не принимает из интернета.

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

    > Но обычно в компаниях несколько групп разработчиков, в том числе и удаленных. Ты же
    > каждому отдельным кластер не выделяешь?!

    вообще-то именно что каждому проекту выделяем. Потому что multi-tenant в кубере... э... такоэ себе.

    Да и их битвы за ресурс пусть протекают под другим ковром, а не в нашей стойке.

     
  • 3.43, Аноним (40), 17:51, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >несколько групп разработчиков

    Им всем надо иметь доступ на сервер с актуальными данными?
    Или они заранее написали дебаг версию инструментария под себя и выкатили в продакшан?

     
     
  • 4.68, нах. (?), 23:35, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Им всем надо иметь доступ на сервер с актуальными данными?

    у нас конь. Тиниус дизинтегрейшн. У них доступа на сервер в принципе-то нет, а вот у ихнего my ass code - есть, а больше, как видишь, ничего и не надо было.

    Отдельно занимательно уточнить - многие ли могут себе позволить ДВА кластера для одного и того же прожекта, на одном разработчики а на другом...э... тоже разработчики но с "актуальными данными" - а не перемешаны в одном и том же и тестовые поды и прод.

     
  • 3.52, Аноним (52), 20:29, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Никто и не принимает из интернета

    В исследовании таки говорится про 6500 кластеров, где admission выставлен в public internet. Тоже не понял, кто и зачем его выставляет, по умолчанию он не публикуется, конечно

     
     
  • 4.54, нах. (?), 20:36, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    и как им пользоваться тогда, неопубликованным?

     
  • 2.58, 12yoexpert (ok), 21:11, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ass in cocococode

    судя по всему, это хинди, т.е. вы правы

     

  • 1.24, Аноним (24), 16:17, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > критический уровень опасности (9.8 из 10).

    А что не 10 из 10? Клоуны

     
     
  • 2.46, myster (ok), 18:48, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    10 из 10 это когда заэксплойтить сможет кто угодно и пароль админки прям на главной странице
     

  • 1.25, Аноним (25), 16:18, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А на чём написан Ingress NGINX Controller for Kubernetes ?

    Go
    87.6%

    Lua
    7.5%

    Shell
    2.8%

    Не на С.

     
     
  • 2.27, Аноним (27), 16:28, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Значит все врут. Го свят и защищает от всего.
     
  • 2.38, Аноним (38), 17:23, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но и не на Rust. Вот и думайте.
     

  • 1.26, Аноним (26), 16:28, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Для проверки использования уязвимого ingress-nginx можно выполнить команду:
    >   kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx

    Чё, реально покажет "уязвимый" контроллер? Хоть бы селектор по версии сделали...

     
     
  • 2.28, Аноним (27), 16:30, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так уязвимость и оставят. Чтобы сохранить совместимость)
     
  • 2.34, нах. (?), 17:16, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Для проверки использования уязвимого ingress-nginx можно выполнить команду:
    >>   kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
    > Чё, реально покажет "уязвимый" контроллер? Хоть бы селектор по версии сделали...

    конечно покажет (и не один). Зачем тебе селектор, если они - все уязвимые? ;-)

    Тут намекают что надо на какой-нибудь caddy перелезать - типа, нет конфига, вот и нет дыры в его тестировании ;-)

     
     
  • 3.41, Аноним (26), 17:46, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще концепция ингрессов в кубере уже объявлена устаревшей. Вместо неё GatewayAPI теперь.
     
     
  • 4.42, нах. (?), 17:49, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще концепция ингрессов в кубере уже объявлена устаревшей. Вместо неё GatewayAPI теперь.

    теперь будем перед ним еще один nginx держать?

     

  • 1.49, Аноним (49), 19:31, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот это вкуснятину завезли, ещё и эксплуатируется легко, можно легко повторить в лабе и можно в путь!
     
  • 1.51, Аноним (51), 20:23, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А вот я чуял неладное и всегда просил девопсов брать официальный nginx-овский kubernetes-ingress, хоть он и менее фичастый. Уж слишком там стремные костыли на lua-модуле.

    Не зря

     
  • 1.55, Аноним (53), 20:39, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > общедоступные уязвимые контроллеры с открытым для внешних запросов обработчиком Admission

    Дыра уровня дефолтной монги на 0.0.0.0 без пароля с большего. Вот откуда эти уязвимых 6500 кластеров взялись — вопрос куда более интересный. Не со StackOverflow накопипастили же?

    Алсо, сабж в проде — махровое эникейство. Сойдёт только для совсем уж непритязательных локалхостов.

     

  • 1.61, 12yoexpert (ok), 21:13, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    что там? опять кто-то в трёх ямлах заблудился?
     
  • 1.67, Аноним (67), 23:34, 25/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.69, Аноним (69), 23:52, 25/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как по мне это именно бага в nginx.
    В документации написано:
    -t — test the configuration file: nginx checks the configuration for correct syntax, and then tries to open files referred in the configuration.

    Т.е. проверка на синтаксис и попытка открытия файлов. Не сказано, что КОД из этих файлов БУДЕТ ИСПОЛНЯТЬСЯ. Да и не должен он запускаться. На то он и тест.
    Другой вопрос как полнее проверить настройки SSL не запуская код из библиотеки. Возможно никак.

     
     
  • 2.70, Аноним (69), 23:54, 25/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Когда читал начало новости первым делом задумался - а не опасно ли в nginx передавать конфиг извне. Смотрю - это всего лишь для проверки синтаксиса. Ну думаю не опасно значит. Т.е. тут именно поведение nginx неожиданное.
     

  • 1.71, Аноним (71), 01:37, 26/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот если ваш кубернетис был бы написан на Раст то такой проблемы не было бы.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру