Запуск этого в 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»
- пока все хорошо -
(сейчас внутри экспресс-приложения).
- Запускает метод для извлечения 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