测试yaml
root@k8s-01:~# cat traefik-gateway-nginx.yaml
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: traefik
spec:
controllerName: traefik.io/gateway-controller
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: traefik-gw
namespace: default
spec:
gatewayClassName: traefik
listeners:
- name: http
protocol: HTTP
port: 8000 # ? 这里从 80 改成 8000,匹配 Traefik 的 entryPoints.web
allowedRoutes:
namespaces:
from: Same
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: nginx
namespace: default
spec:
parentRefs:
- name: traefik-gw
namespace: default
sectionName: http # ? 明确绑定到上面 listener 名称 http(可选,但更清晰)
hostnames:
- "nginx.example.com"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: nginx
port: 80
traefik 启用 Gateway API Provider
root@k8s-01:/woke/traefik# ls
Changelog.md Chart.yaml crds EXAMPLES.md Guidelines.md LICENSE README.md templates traefik-values.yaml VALUES.md values.schema.json values.yaml
root@k8s-01:/woke/traefik# cat traefik-values.yaml
# 1. Dashboard / API 配置
api:
dashboard: true
# ⚠️ 这里是顶层的 ingressRoute,不在 api 下面
ingressRoute:
dashboard:
enabled: false
# 关键:改成 web,让它走 80 端口(NodePort 30080)
entryPoints:
- web
matchRule: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
annotations: {}
labels: {}
middlewares: []
tls: {}
# 2. 入口点配置(保持你原来的)
ports:
traefik:
port: 8080
expose:
default: false
exposedPort: 8080
protocol: TCP
web:
port: 8000
expose:
default: true
exposedPort: 80
protocol: TCP
nodePort: 30080
websecure:
port: 8443
hostPort:
containerPort:
expose:
default: true
exposedPort: 443
protocol: TCP
nodePort: 30443
# 3. Service 配置:NodePort
service:
enabled: true
type: NodePort
single: true
spec:
externalTrafficPolicy: Cluster
annotations: {}
labels: {}
# 4. RBAC
rbac:
enabled: true
# 5. metrics(你这里开 prometheus 也没问题)
metrics:
prometheus:
enabled: true
logs:
general:
level: INFO
access:
enabled: true
format: common
# 6. 启用 Gateway API Provider
providers:
kubernetesGateway:
enabled: true
评论 (0)