环境信息:
K3s 版本:
k3s version v1.28.6+k3s2 (c9f49a3b)
go version go1.20.13
节点 CPU 架构、操作系统和版本::
Linux k3s-master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
集群配置:
1 server 1agent
问题描述:
1.执行kubectl edit svc traefik -n kube-system #修改了service type类型为:NodePort
编写ingress规则出现了,无法通过域名访问后端pod的nginx服务
2.windows主机和宿主机都配置了域名解析,并且能ping通域名正常解析;
复现步骤:
预期结果:
1.该如何写一个ingress规则去实现,浏览器上域名去访问内部svc后端的pod的nginx服务呢?
2.traefik这个控制器在k3s中是如何写入自定义ingress规则去实现内部的流量转发呢?
实际结果:
附加上下文/日志:
[/details]
Gem
2
这是我自用的配置 ,给你个参考
---
# 这个是HTTPS header中间件 你可以填可以不填
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: default-headers
namespace: oss
spec:
headers:
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 15552000
customFrameOptionsValue: SAMEORIGIN
customRequestHeaders:
X-Forwarded-Proto: https
---
# 我是自签发ca 所以需要这个 ,你如果有自己的可信域名就不需要这个
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: oss-tls-secret
namespace: oss
spec:
secretName: oss-tls-secret
commonName: oss-tls-secret
isCA: false
privateKey:
algorithm: ECDSA
size: 256
dnsNames:
- <填写你的域名 , 例如www.anyway.com,删掉两端尖括号 >
issuerRef:
name: ca-issuer
kind: ClusterIssuer
group: cert-manager.io
---
# 我习惯用 IngressRoute
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: minio-ui
namespace: oss
annotations:
kubernetes.io/ingress.class: traefik-external
spec:
entryPoints:
- websecure
routes:
- match: Host(`<填写你的域名 , 例如www.anyway.com,删掉两端尖括号 >`)
kind: Rule
services:
- name: minio-1685289278-console
port: 9001
middlewares:
- name: default-headers
tls:
secretName: oss-tls-secret