我有一个带有 Http 和 Https 的 GKE 入口。我想将流量从端口 80 重定向到端口 443。我发现了这个: https ://github.com/kubernetes/ingress-gce/issues/1075 这让这个: https ://cloud.google.com/kubernetes -engine/docs/how-to/ingress-features#https_redirect。
建议的解决方案添加了一个带有 RedirectToHttps 标志的 FrontendConfig,该标志使用了一些 LoadBalancer 功能。然而,当我尝试添加 FrontendEndConfig 时,出现以下错误:
error: unable to recognize "ssl.yaml": no matches for kind "FrontendConfig" in version "networking.gke.io/v1beta1"
我也试过'networking.gke.io/v1'和'v1beta2'。我所在区域可用的最新 GKE 版本是 1.17.13-gke.2001。我最近启动了集群,所以虽然我不知道如何检查 GKE 版本,但我认为它运行在最新版本上。
任何人都知道为什么我的 kubectl 无法识别这种类型?
入口yaml:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: basic-ingress
annotations:
FrontendConfig: my-frontend-config
kubernetes.io/ingress.global-static-ip-name: 'web-static-ip'
networking.gke.io/managed-certificates: mycertificate
# kubernetes.io/ingress.allow-http: "false"
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: frontend
servicePort: 80
- path: /api/*
backend:
serviceName: backend
servicePort: 80
重定向yaml:
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
name: my-frontend-config
spec:
redirectToHttps:
enabled: true