我有安装 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 监听器不起作用。

我在这里做错了什么? 我将非常感激任何帮助。

注意:请注意,为了回答这个问题,我用域名替换了我的真实域名。

0