GCE Ingress没有从准备情况调查中获取健康检查

问题描述 投票:4回答:2

当我创建GCE入口时,Google Load Balancer不会从准备情况探测中设置运行状况检查。根据文件(Ingress GCE health checks)它应该拿起它。

在支持服务的pod上公开任意URL作为准备探针。

有什么想法吗?

部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: frontend-prod
  labels:
    app: frontend-prod
spec:
  selector:
    matchLabels:
      app: frontend-prod
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: frontend-prod
    spec:
      imagePullSecrets:
        - name: regcred
      containers:
      - image: app:latest
        readinessProbe:
          httpGet:
            path: /healthcheck
            port: 3000
          initialDelaySeconds: 15
          periodSeconds: 5
        name: frontend-prod-app
      - env:
        - name: PASSWORD_PROTECT
          value: "1"
        image: nginx:latest
        readinessProbe:
          httpGet:
            path: /health
            port: 80
          initialDelaySeconds: 5
          periodSeconds: 5
        name: frontend-prod-nginx

服务:

apiVersion: v1
kind: Service
metadata:
  name: frontend-prod
  labels:
    app: frontend-prod
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    app: frontend-prod

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend-prod-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: frontend-prod-ip
spec:
  tls:
    - secretName: testsecret
  backend:
    serviceName: frontend-prod
    servicePort: 80
kubernetes google-compute-engine google-kubernetes-engine kubernetes-health-check
2个回答
5
投票

显然,您需要在PodSpec上包含容器端口。似乎没有在任何地方记录。

EG

    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

谢谢Brian! https://github.com/kubernetes/ingress-gce/issues/241


0
投票

GKE Ingress运行状况检查路径目前无法配置。您可以转到http://console.cloud.google.com(UI)并访问Load Balancers列表以查看它使用的运行状况检查。

目前Ingress的健康检查是在Ingress指定的每个GET /上的backend:。因此,GKE Ingress背后的所有应用都必须将HTTP 200 OK返回给GET /请求。

也就是说,您在Pod上指定的健康检查仍在使用 - 通过kubelet确保您的Pod实际上正常运行且健康。

© www.soinside.com 2019 - 2024. All rights reserved.