猫小白

猫小白

之前用的一直都是 Nginx Ingress,这次尝试使用 K3S,集群默认部署的是 Tarefik Ingress,各种搜索 + 尝试,终于解决了访问 http 重定向到 https 的问题,如下以 Kubernetes Dashboard 作为例子:

http ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kubernetes-dashboard-http-ingress
  namespace: kubernetes-dashboard
  annotations:
    ingress.kubernetes.io/force-ssl-redirect: "true"
    ingress.kubernetes.io/ssl-redirect: "true"
    traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
    # 中间件名称为 {namespace}-{name}@kubernetescrd
    traefik.ingress.kubernetes.io/router.middlewares: kubernetes-dashboard-kubernetes-dashboard-redirectscheme@kubernetescrd
spec:
  rules:
    - host: dashboard.mxb.cc
      http:
        paths:
          - path: /
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443

redirect schema middleware

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: kubernetes-dashboard-redirectscheme
  namespace: kubernetes-dashboard
spec:
  redirectScheme:
    scheme: https
    permanent: true
Kubernetes