Как остановить весь внешний трафик и разрешить только сетевой вызов внутри модуля в пространстве имен с помощью сетевой политики?

Еще один, довольно отличный подход: используйте специальную локаль, которая обрабатывает запятые как пробел:

#include <locale>
#include <vector>

struct csv_reader: std::ctype<char> {
    csv_reader(): std::ctype<char>(get_table()) {}
    static std::ctype_base::mask const* get_table() {
        static std::vector<std::ctype_base::mask> rc(table_size, std::ctype_base::mask());

        rc[','] = std::ctype_base::space;
        rc['\n'] = std::ctype_base::space;
        rc[' '] = std::ctype_base::space;
        return &rc[0];
    }
}; 

Чтобы использовать это, вы imbue() поток с локалием, который включает этот грань. Как только вы это сделаете, вы можете читать цифры, как будто запятые не были там вообще. Например, мы будем считывать номера с разделителями-запятыми из ввода и записывать затем одну строку на стандартный вывод:

#include <algorithm>
#include <iterator>
#include <iostream>

int main() {
    std::cin.imbue(std::locale(std::locale(), new csv_reader()));
    std::copy(std::istream_iterator<int>(std::cin), 
              std::istream_iterator<int>(),
              std::ostream_iterator<int>(std::cout, "\n"));
    return 0;
}
2
задан Pradeep 18 January 2019 в 13:36
поделиться

1 ответ

Я не уверен, что вы можете сделать это с помощью Kubernetes NetworkPolicy, но вы можете добиться этого с помощью модулей с поддержкой Istio.

Примечание. Сначала убедитесь, что Istio установлен на вашем кластере. Для установки см. .

См. Цитату из документации Istio о выходном трафике .

По умолчанию службы с поддержкой Istio не могут получить доступ к URL-адресам за пределами кластера, потому что модуль использует iptables для прозрачного перенаправления всего исходящего трафика на прокси-сервер дополнительной системы, который обрабатывает только внутрикластерные адреса.

Кроме того, вы можете добавить в белый список домены вне кластера, добавив ServiceEntry и VirtualService к вашему кластеру, например в Настройка внешних служб в документации Istio.

Я надеюсь, что это может быть полезно для вас.

0
ответ дан Black_Bacardi 18 January 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: