[英]Unable to reach Node service running inside of a docker container with exposed ports
[英]Side-car Traefik container route to ports in Kuberenets
我在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
如果我理解正確,您希望將打Traefik容器的請求轉發到位於同一容器中的Node.js應用程序。 從Traefik的角度來看,假設該應用程序是靜態配置的,則您只需將一個正確的文件提供程序配置安裝到Traefik窗格中(大概是通過ConfigMap),即可指向側面的汽車集裝箱。
實現此目的最簡單的方法( 如文檔所述 )是將以下文件提供程序配置直接附加在Traefik的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"
如果將TOML配置文件安裝到默認路徑( /etc/traefik.toml
)以外的路徑下的Traefik容器中,則還需要在清單中傳遞--configFile
選項,以引用文件的正確位置。
在此之后,打在端口80上Traefik容器的主機頭的任何請求machine-echo.example.com
應該被轉發到Node.js的車邊容器上的端口9080。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.