【发布时间】:2018-09-11 14:50:59
【问题描述】:
在我推送到 AWS 之前在 MINIKUBE 中运行它
我正在我的一个吊舱上尝试“中间人”。 想法,更改位于 kubernetes pod 内的 docker 容器内的 hosts 文件。 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. 从应用程序内部调用向“api.app.org/v2/1234”发出 HTTP 请求。
3. HOSTS文件将HTTP请求重定向到IP地址“10.101.63.179”
-- 到目前为止一切顺利 --
(现在在快递应用程序中)。
- 运行一种方法来提取主机和 URL 的其余部分。
-- 示例:主机应该等于 (api.app.org)
-- 示例:url 应该等于 (/v2/1234) 。
问题...
主机 = 10.101.63.179 。
网址 = / 。
代码: /etc/hosts 。 来自 kubernetes pod 内 docker 映像的主机文件:运行 (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
【问题讨论】:
标签: docker redirect kubernetes hosts