我在kubernetes集群上配置了gce入口,并且将Django应用程序指定为默认后端。该应用会强制执行HTTPS,因此,如果您尝试执行简单的HTTP请求,则Django将返回301。显然,HTTP运行状况检查不会通过。我正在按照此example启用HTTPS健康检查。产生健康检查后,我在计算引擎中手动编辑了路径,但是从Django应用日志中,它似乎没有收到任何请求,因此结果不健康,并且无法使入口正常工作。
在这种情况下,如何进行健康检查?
组态:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.global-static-ip-name: web-static-ip
spec:
tls:
- hosts:
- foo.domain.it
secretName: production-tls
backend:
serviceName: app
servicePort: app-https
apiVersion: v1
kind: Service
metadata:
name: app
annotations:
service.alpha.kubernetes.io/app-protocols: '{"app-https":"HTTPS"}'
labels:
component: app
role: web
spec:
type: NodePort
ports:
- port: 12345
targetPort: 8000
protocol: TCP
name: app-https
selector:
component: app
role: web
type: LoadBalancer
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: app
labels:
component: app
role: web
spec:
replicas: 1
template:
metadata:
labels:
component: app
role: web
spec:
containers:
- name: app
image: [my-image]
imagePullPolicy: Always
ports:
- containerPort: 8000
envFrom:
- configMapRef:
name: app-config
请您参考如下方法:
作为一种解决方法,在GCE进入的情况下,我禁用了DJANGO_SECURE_SSL_REDIRECT并强制该进入仅接受HTTPS请求。kubernetes.io/ingress.allow-http: "false"
如果您使用NGINX作为入口,则只需设置nginx.ingress.kubernetes.io/ssl-redirect: "True"




