之前用的一直都是 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