我有安装 traefik 时提供的以下 values.yaml 文件:
providers:
kubernetesIngress:
enabled: false
kubernetesGateway:
enabled: true
deployment:
kind: "DaemonSet"
gateway:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
listeners:
websecure:
hostname: "*.{{domain}}"
port: 8443
protocol: HTTPS
namespacePolicy: All
certificateRefs:
- name: whoami-tls
mode: "Terminate"
service:
type: LoadBalancer
annotations:
load-balancer.hetzner.cloud/type: "lb11"
load-balancer.hetzner.cloud/name: "cluster-lb"
load-balancer.hetzner.cloud/network-zone: "eu-central"
然后我像这样安装了 traefik,并将路径传递给上述文件,如下所示:
helm upgrade --install --version 32.1.1 --namespace traefik traefik traefik/traefik -f "values.yaml" --debug
几分钟后,证书就颁发并标记为已准备就绪,我可以通过该证书进行验证kubectl get certificates --all-namespaces
,输出如下:
NAMESPACE NAME READY SECRET AGE
traefik whoami-tls True whoami-tls 12h
然后我应用了如下的示例路线:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: instagram
namespace: socials
labels:
app: instagram
spec:
parentRefs:
- name: traefik-gateway
sectionName: websecure
namespace: traefik
hostnames:
- "instagram-api.domain.xyz"
rules:
- matches:
- path:
type: PathPrefix
value: "/"
backendRefs:
- name: instagram
port: 80
namespace: socials
不幸的是,当我访问时,出现 404 页面未找到错误,并且浏览器告诉我连接不安全。
如果我从网关侦听器中删除 websecure 并切换到仅 web,我的路由就可以完美解析。
这太奇怪了,https websecure 监听器不起作用。
我在这里做错了什么? 我将非常感激任何帮助。
注意:请注意,为了回答这个问题,我用域名替换了我的真实域名。
|