我正在尝试将Azure Kubernetes中部署的服务的入口重定向到https。无论我尝试什么都行不通。我尝试配置Ingress和Traefik本身(通过ConfigMap)无效。
Traefik的配置如下:
---
# Traefik_config.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: traefik-conf
namespace: kube-system
# traefik.toml
data:
traefik.toml: |
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[frontends]
[frontends.frontend2]
backend = "backend1"
passHostHeader = true
# overrides default entry points
entrypoints = ["http", "https"]
[backends]
[backends.backend1]
[backends.backend1.servers.server1]
url = "http://auth.mywebsite.com"
重定向的主题是没有TLS加密的容器化IdentityServer API网站。关于此事有两个问题:
答案 0 :(得分:1)
您将HTTP重定向到https的配置看起来不错。如果您已按照Traefik的官方文档在kubernetes上进行部署,则Traefik入口控制器服务将没有443。确保已在服务上打开了端口443,服务类型为LoadBalancer
。打开服务中的端口后,Azure将在Azure负载均衡器中打开相同的端口。服务Yaml在这里。
kind: Service
apiVersion: v1
metadata:
name: traefik-ingress-service
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- protocol: TCP
port: 80
name: web
- protocol: TCP
port: 8080
name: admin
type: LoadBalancer
如果要将群集中的所有http重定向到https,则可以在配置文件中进行重定向。 如果您只想重定向某些服务,请在Ingress中添加注释,以实现特定服务的重定向。
traefik.ingress.kubernetes.io/frontend-entry-points: http,https
traefik.ingress.kubernetes.io/redirect-entry-point: https
设置重定向后,“交通信息中心”将在此处反映出来。
您还可以使用traefik.ingress.kubernetes.io/redirect-permanent: "true
设置永久重定向