IT序号网

django之gce-ingress HTTPS后端

yjmyzz 2025年05月04日 编程语言 123 0

我在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"


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!