Kubernetes Hostalias, перенаправляющие на сервис Kubernetes без заголовков запросов - PullRequest
0 голосов
/ 11 сентября 2018

Запуск этого в MINIKUBE, прежде чем я нажму на AWS

Я пытаюсь "Человек посередине" на одном из моих стручков. Идея, изменить файл hosts внутри моего док-контейнера, который находится внутри модуля kubernetes. Файл hosts увидит запрос к api.app.org и перенаправит все вызовы на этот хост по IP-адресу "10.101.63.179". Приложение, работающее в службе kubernetes, является экспресс-приложением, которое захватывает http-запросы и направляет их в соответствующий метод для использования. Приложение просматривает заголовки запроса и выделяет «хост» и «URL». Должно выглядеть так

host = api.app.org

URL = "/ v2 / 1234"

Ожидается: Сервису kubernetes будет отправлен HTTP-запрос.
пример: api.app.org/v2/1234
Приложение Node Express вызывается и управляет выполнением на основе «хоста» и остальной части URL. "/ V2 / 1234"

Фактический:
1. Файл HOSTS обновляется с помощью Kubernetes hostalias, добавленного в развертывание. Код ниже.
2. Вызов из приложения делает HTTP-запрос к «api.app.org/v2/1234».
3. Файл HOSTS перенаправляет HTTP-запрос на IP-адрес «10.101.63.179»
- пока все хорошо -

(сейчас внутри экспресс-приложения).

  1. Запускает метод для извлечения Host и остальной части URL.
    - пример: хост должен равняться (api.app.org)
    - пример: URL должен быть равен (/ v2 / 1234).

ПРОБЛЕМА ...

host = 10.101.63.179.

URL = /.


КОД: / etc / hosts. файл хоста из образа докера внутри kubernetes pod: run (kubectl exec -it -c - / bin / bash).

# Entries added by HostAliases. 10.101.63.179 api.stats.com 10.101.63.179 api.ap.org


КОД: Развертывание Kubernetes YAML

apiVersion: extensions/v1beta1 kind: Deployment metadata: namespace: testharness labels: run: raven-svc name: raven-svc spec: replicas: 1 selector: matchLabels: run: raven-svc template: metadata: labels: run: raven-svc spec: containers: - name: raven-svc image: raven:vFin imagePullPolicy: IfNotPresent ports: - containerPort: 3000 hostAliases: - ip: "10.101.63.179" hostnames: - "api.stats.com" - "api.ap.org" restartPolicy: Always

1 Ответ

0 голосов
/ 11 сентября 2018

Файл hosts в основном находится на уровне IP в стеке, поэтому он не удаляет заголовки любого уровня 6-7 (http / https).Кроме того, kubernetes настраивает iptables для маршрутизации между модулями, и в целом все это также на уровне IP.

Является ли 10.101.63.179 входным контроллером случайно?это может лишить вас заголовков.

...