我正在我的Kubernetes Pod中运行NodeJS图像,同时公开特定端口(9080),并将Traefik作为侧车容器运行作为反向代理。如何从部署模板中指定Traefik路径。
部署
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
app: web
name: web-controller
spec:
replicas: 1
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- image: "nodeJS-image"
name: web
ports:
- containerPort: 9080
name: http-server
- image: "traefik-image"
name: traefik-proxy
ports:
- containerPort: 80
name: traefik-proxy
- containerPort: 8080
name: traefik-ui
args:
- --web
- --kubernetes
答案 0 :(得分:1)
如果我理解正确,您希望将访问Traefik容器的请求转发到位于同一窗格中的Node.js应用程序。鉴于应用程序是从Traefik的角度静态配置的,您只需将正确的文件提供程序配置安装到指向侧面汽车容器的Traefik pod(可能是通过ConfigMap)。
实现此目的的最简单方法(as documented)是将以下文件提供程序配置直接附加到Traefik的TOML配置文件的底部:
function fireClick(number){
fires = fires + number;
document.getElementById("fires").innerHTML = fires;
};
如果将TOML配置文件安装到默认路径([file]
[backends.backend.servers.server]
url = "http://127.0.0.1:9080"
[frontends.frontend]
backend = "backend"
[frontends.frontend.routes.route]
host = "machine-echo.example.com"
)以外的路径下的Traefik pod中,则还需要在清单中传递/etc/traefik.toml
选项,引用正确的位置该文件。
之后,任何使用主机标头--configFile
在端口80上访问Traefik容器的请求都应转发到端口9080上的Node.js侧汽车容器。