GKE Ambassador http -> https 重定向,健康检查问题
GKE Ambassador http -> https redirect, health check issues
我正在学习本教程 https://www.getambassador.io/docs/latest/topics/running/ambassador-with-gke/,但我在使用 http -> https 重定向时遇到严重问题。
- 我无法在GKE 上编辑健康检查端口,它默认配置为服务端口且无法更改
- 如果我创建新的健康检查,在应用
Host insecure.action: Redirect
后,后端的 hc 会恢复为默认值。如果 default hc 被删除,它会被重新创建。如果我以某种方式强制我的自定义 hc,它不会再次工作,在 pod 日志中我看到这个 "GET /ambassador/v0/check_ready HTTP/1.1" 301
- 如果我在主机 http -> https 中设置
insecure.action: Redirect
几秒钟,然后 LB 运行状况检查将一切都关闭
Host 中的 insecure.action: Redirect
应该是 Route
另外需要创建自定义健康检查:
kind: BackendConfig
metadata:
name: my-backendconfig
spec:
healthCheck:
checkIntervalSec: 10
timeoutSec: 10
healthyThreshold: 2
unhealthyThreshold: 2
type: HTTP
requestPath: /ambassador/v0/check_ready
port: 8080
并添加到 ambassador.yaml
kind: Service
metadata:
name: ambassador
annotations:
cloud.google.com/backend-config: '{"ports": {"8080":"my-backendconfig"}}'
spec:
type: NodePort
ports:
- name: http
port: 8080
targetPort: 8080
selector:
service: ambassador
Ingress 应该禁用 http:
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "myip"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: my-self-managed-cert
backend:
serviceName: ambassador
servicePort: 8080
这将只创建完美运行的 HTTPS LB,现在我们需要 http -> https 重定向。
只需转到负载平衡屏幕并再创建 1 个负载平衡器(无后端),它只会将 http 重定向到 https。
我正在学习本教程 https://www.getambassador.io/docs/latest/topics/running/ambassador-with-gke/,但我在使用 http -> https 重定向时遇到严重问题。
- 我无法在GKE 上编辑健康检查端口,它默认配置为服务端口且无法更改
- 如果我创建新的健康检查,在应用
Host insecure.action: Redirect
后,后端的 hc 会恢复为默认值。如果 default hc 被删除,它会被重新创建。如果我以某种方式强制我的自定义 hc,它不会再次工作,在 pod 日志中我看到这个"GET /ambassador/v0/check_ready HTTP/1.1" 301
- 如果我在主机 http -> https 中设置
insecure.action: Redirect
几秒钟,然后 LB 运行状况检查将一切都关闭
insecure.action: Redirect
应该是 Route
另外需要创建自定义健康检查:
kind: BackendConfig
metadata:
name: my-backendconfig
spec:
healthCheck:
checkIntervalSec: 10
timeoutSec: 10
healthyThreshold: 2
unhealthyThreshold: 2
type: HTTP
requestPath: /ambassador/v0/check_ready
port: 8080
并添加到 ambassador.yaml
kind: Service
metadata:
name: ambassador
annotations:
cloud.google.com/backend-config: '{"ports": {"8080":"my-backendconfig"}}'
spec:
type: NodePort
ports:
- name: http
port: 8080
targetPort: 8080
selector:
service: ambassador
Ingress 应该禁用 http:
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "myip"
kubernetes.io/ingress.allow-http: "false"
spec:
tls:
- secretName: my-self-managed-cert
backend:
serviceName: ambassador
servicePort: 8080
这将只创建完美运行的 HTTPS LB,现在我们需要 http -> https 重定向。
只需转到负载平衡屏幕并再创建 1 个负载平衡器(无后端),它只会将 http 重定向到 https。