当前位置: 首页 > 知识库问答 >
问题:

GCE入口未从就绪状态探测中提取健康检查

欧阳勇军
2023-03-14
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

共有1个答案

白和泽
2023-03-14

所以很明显,您需要在podspec中包含容器端口。似乎在任何地方都没有记录。

例如。

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

谢谢布莱恩!https://github.com/kubernetes/ingress-gce/issues/241

 类似资料:
  • 在Spring-Boot 2.4中,我在Actuator运行状况endpoint和就绪状态探测方面遇到了这个问题。当我的一个自定义关键组件关闭时,endpoint会显示和endpoint,但的详细信息仍然显示。 为什么会这样?难道不应该也说DOWN吗? 我在网上找到的许多教程似乎都没有解决这个问题。 我的假设是:

  • 我正在尝试设置我的第一个Kubernetes集群,它似乎已经设置好,直到nginx-ingress控制器。以下是我的集群信息:节点:三个RHEL7和一个RHEL8节点,主服务器运行在RHEL7Kubernetes服务器版本:1.19.1网络使用:Frannel coredns运行良好。在所有节点上禁用selinux和防火墙 然后,我按照以下页面中的说明安装了nginx入口控制器:https://d

  • 健康检测是对应用进行check,判定应用是否在正常运行。 健康检测有三种方案 只对tcp端口进行检测 只通过http的方式check需要提供path地址 以上两种结合

  • 我正在尝试设置istio1。5.1在minicube kubernetes集群中,我遵循Knative的官方文档,在不使用侧车注入的情况下设置istio。我我面临istio入口网关服务的问题,该服务将入口网关服务的外部ip显示为。我已经浏览了这里发布的其他答案,以及许多其他论坛,但没有一个对我有帮助。 使用Minikube v1.9.1与驱动=无头盔v2.16.5 kubectl v1.18.0

  • 因此,我将Spring引导执行器添加到我的应用程序中,并在应用程序中指定。属性管理。endpoint。健康隐藏物生存时间=120秒,以缓存健康检查结果。因此,当我调用执行器/健康时,结果被缓存,效果很好。 当我调用执行器/健康/就绪或自定义创建的组时,问题开始出现。该请求结果不会被缓存。我查阅了Spring文档,只找到了主要健康终点的信息,没有找到特定人群的信息。 所以我的问题是:我错过了什么吗?

  • 我正在Kubernetes(GKE)中运行WebService后端应用程序。它仅由我们的前端Web应用程序使用。通常,来自同一用户(ClientIP)的请求有数十个序列。我的应用程序设置为运行至少2个实例(“minReplicas:2”)。 问题:从日志中我可以看到一个pod过载(接收许多请求)而另一个闲置的情况。两个吊舱都处于就绪状态。 我试图修复它:我试图添加一个自定义就绪状态检查,当有太多打