создание доступа к порту хоста из контейнера в Kubernetes

Мы настроили кластер Kubernetes на наборе (виртуальных) хостов Linux. Каждый хост запускает внутренний HTTP-прокси на хосте 127.0.0.1:3128 . Чтобы получить доступ к внешним ресурсам HTTP / HTTPS из этой сети, должен использоваться прокси.

Мы хотели бы сделать внешнюю сеть доступной из контейнеров в кластере. Контейнеры, работающие на данном хосте, должны использовать экземпляр прокси HTTP с этого хоста.

Как мы можем сделать эти прокси-сервисы доступными изнутри контейнеров?

0
задан 10 November 2020 в 05:48
1 ответ

IP-адрес узла всегда доступен для контейнеров через fieldRef:, и можно ссылаться на других участников env: , используя $() синтаксис (обратите внимание, что это не синтаксис оболочки, это синтаксис интерполяции kubernetes)

spec:
  containers:
  - name: use-proxy
    env:
    - name: NODE_IP
      valueFrom:
        fieldRef:
          fieldPath: status.hostIP
    - name: HTTP_PROXY
      value: $(NODE_IP):3128
    - name: HTTPS_PROXY
      value: $(NODE_IP):3128

и не забывайте, что вам, вероятно, потребуется внедрить ЦС для прокси-сервера HTTPS, если он работает в режиме MITM

Также имейте в виду, что если он буквально привязан к 127.0.0.1 на узле, вы не сможете получить к нему доступ изнутри кластера kubernetes, поскольку эти интерфейсы не считаются «локальными». Вам нужно будет сделать прокси доступным для интерфейса CNI

4
ответ дан 9 November 2020 в 16:00

Теги

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