Kubernetes настраивает Pod на использование прокси для доступа в Интернет
Kubernetes настраивает Pod на использование прокси для доступа в Интернет

Настройте Kubernetes Pod для использования прокси-сервера для доступа в Интернет.

При управлении кластерами Kubernetes в корпоративной сетевой среде вы часто сталкиваетесь с ситуациями, когда вам необходимо настроить поды для доступа в Интернет через прокси-сервер HTTP. Это может быть связано с различными причинами, такими как ограничения политики безопасности, требования к сетевой архитектуре или необходимость доступа к определенным ресурсам. В этой статье будут представлены два распространенных способа настройки прокси-сервера, используемого подами в Kubernetes: через ConfigMap и непосредственная установка его в переменных среды приложения.

Сценарии использования

Сценарии настройки подов для использования агентов в кластере Kubernetes могут включать в себя:

  1. Осуществлять контроль и аудит исходящего трафика.
  2. Соблюдайте политики доступа к сети и пропускайте трафик через назначенные точки выхода.
  3. Внедрите прокси-изоляцию служб для повышения безопасности интрасети.
  4. Доступ к внешним приложениям,Мой сценарий - позвонитьdiscord api。

Метод настройки

Далее будут представлены два распространенных метода настройки:

Метод настройкиодин:использоватьConfigMap

Шаг 1. Создайте ConfigMap

создаватьодинназванныйproxy-configизConfigMapвключить информацию о настройках прокси:

Язык кода:yaml
копировать
apiVersion: v1
kind: ConfigMap
metadata:
  name: proxy-config
data:
  http_proxy: http://<proxy-server>:<port>
  https_proxy: http://<proxy-server>:<port>
  no_proxy: .cluster.local,.svc,.my-company.com,127.0.0.1

заменять<proxy-server>и<port>для фактическогопрокси-серверизадресипорт。

Шаг 2. Ссылка на ConfigMap в определении модуля.

Измените определение модуля, чтобы использовать переменные среды в ConfigMap:

Язык кода:yaml
копировать
apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  containers:
    - name: example-container
      image: nginx
      envFrom:
        - configMapRef:
            name: proxy-config
Шаг 3. Убедитесь, что приложение может правильно использовать прокси.

В приложении Pod убедитесь, что эти переменные среды используются правильно. Например, в инструментах командной строки, таких как Curl и wget, переменные среды HTTP_PROXY и HTTPS_PROXY распознаются автоматически, тогда как клиентские библиотеки HTTP некоторых языков программирования могут требовать явной настройки прокси в коде.

Метод настройки 2: задается непосредственно в развернутых переменных среды.

Шаг 1. Установите переменные среды в определении модуля.

В отличие от ConfigMap, вы можете установить переменные среды непосредственно в определении Pod или Deployment. Я использую переменные среды непосредственно здесь:

Язык кода:yaml
копировать
apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - name: example-container
        image: nginx
        env:
        - name: http_proxy
          value: http://<proxy-server>:<port>
        - name: https_proxy
          value: http://<proxy-server>:<port>
        - name: no_proxy
          value: .cluster.local,.svc,.my-company.com,127.0.0.1

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

Шаг 2. Примените изменения и подтвердите конфигурацию прокси-сервера приложения.

Аналогичным образом убедитесь, что ваше приложение или служба считывает и правильно использует эти настройки переменных среды.

Объяснение параметра

  • http_proxy / https_proxy: обозначениеHTTP/HTTPSизпрокси-сервер,Формат:http://<proxy-user>:<proxy-password>@<proxy-server>:<port>
  • no_proxy: обозначениеизадрес不通过прокси-сервердоступ。обычно включаютKubernetesиз Суффикс обнаружения службы похож на.cluster.local.svcи локальная сетьизобъем。

Тестовые настройки прокси

После развертывания модуля мы можем проверить, вступят ли в силу эти настройки:

  1. Войдите в среду оболочки Pod:
Язык кода:shell
копировать
kubectl exec -it example-pod -- /bin/sh
  1. использоватьcurlПроверьте, работает ли прокси: curl -I 'https://discord.com'

Если возвращается нормальный HTTP-ответ, настройки прокси-сервера действуют и работают правильно. Если у вас возникли тайм-ауты соединения или ошибки прокси-сервера, возможно, вам придется проверить конфигурацию прокси-сервера и настройки политики сети.

Проверьте интерфейс Discord, предоставленный вашим другом:

Язык кода:shell
копировать
 curl --location --request POST 'https://discord.com/api/v10/oauth2/token'
image.png
image.png

Заключение

Правильная настройка модулей Pod в Kubernetes для использования HTTP-прокси — ключевой шаг в удовлетворении требований корпоративной сети. Вы можете обеспечить контроль и гибкость исходящего трафика вашего кластера, используя ConfigMap или задав информацию о прокси-сервере непосредственно в переменных среды. Однако не забудьте тщательно протестировать перед развертыванием, чтобы убедиться, что все работает должным образом.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода