如何在 K3s 上使用 Traefik 将端口 80 转发到服务端口 3000?
How do I forward port 80 to a service port 3000 using Traefik on K3s?
这是关于 Traefik 的,而不是关于它与 K3s Kubernetes 的一般工作方式,所以请不要给我一个通用的 K8s回答。
我有一个简单的 k3s 部署和服务,如下所示...
apiVersion: v1
kind: Service
metadata:
labels:
app: hello-express
name: app-tier
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 3000
targetPort: 3000
selector:
tier: app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-express-deployment
labels:
app: hello-express
tier: app
spec:
replicas: 1
selector:
matchLabels:
tier: app
template:
metadata:
labels:
app: hello-express
tier: app
spec:
containers:
- name: server
image: partyk1d24/hello-express:latest
ports:
- containerPort: 3000
然后我可以使用外部 ip 和端口 3000 访问应用程序。现在我想将该端口从 3000 更改为 80。显然这是在 K3s 上使用 Traefik
在本地控制的。我在 looking here...
时尝试了以下操作
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-express-ingress
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-tier
port:
number: 80
但是当我尝试访问该站点时,我得到...
curl 192.168.X.XXX
Service Unavailable%
博客有点老,所以我确定我做错了什么,谁能帮我识别一下?
您应该将服务端口更改为 80。
ports:
- protocol: TCP
port: 80
targetPort: 3000
保持目标端口为 3000。
这是关于 Traefik 的,而不是关于它与 K3s Kubernetes 的一般工作方式,所以请不要给我一个通用的 K8s回答。
我有一个简单的 k3s 部署和服务,如下所示...
apiVersion: v1
kind: Service
metadata:
labels:
app: hello-express
name: app-tier
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 3000
targetPort: 3000
selector:
tier: app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-express-deployment
labels:
app: hello-express
tier: app
spec:
replicas: 1
selector:
matchLabels:
tier: app
template:
metadata:
labels:
app: hello-express
tier: app
spec:
containers:
- name: server
image: partyk1d24/hello-express:latest
ports:
- containerPort: 3000
然后我可以使用外部 ip 和端口 3000 访问应用程序。现在我想将该端口从 3000 更改为 80。显然这是在 K3s 上使用 Traefik
在本地控制的。我在 looking here...
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-express-ingress
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-tier
port:
number: 80
但是当我尝试访问该站点时,我得到...
curl 192.168.X.XXX
Service Unavailable%
博客有点老,所以我确定我做错了什么,谁能帮我识别一下?
您应该将服务端口更改为 80。
ports:
- protocol: TCP
port: 80
targetPort: 3000
保持目标端口为 3000。