在kubernetes节点应用上进行持续健康检查

时间:2018-08-01 09:46:50

标签: kubernetes kubernetes-ingress

我已经在Kubernetes上设置了一个Node应用程序,并设置了一个Ingress。结果,我的节点服务器不断受到健康检查的攻击。<​​/ p>

Stackdriver logs

我不确定这些持续的健康检查是好是坏。它们是否会影响服务器(例如,降低其速度,或使其持续忙碌)?这还会导致我的应用程序的CPU使用率增加吗?

这里的最佳做法是什么?

我这样设置Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kubernetes-ingress
# kubernetes-ingress is the name of static ip we've reserved in Google Cloud
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress"
spec:
# spec:
  tls:
  - hosts:
    - app.com
    secretName: ingress-ssl
  backend:
    serviceName: web
    servicePort: 3000

3 个答案:

答案 0 :(得分:0)

运行状况检查是Kubernetes的基本功能,表示您可以。 我看不到您的Ingress有任何问题。

答案 1 :(得分:0)

Kubernetes Health checks可以分为livenessreadiness探针。

Readiness probes用于检查Pod中的应用程序是否已准备好为网络流量服务。如果您的应用程序的准备就绪探针失败,则将从构成服务的端点中删除该Pod。通过使用readiness probe,Kubernetes会等到该应用程序完全启动后,再允许该服务将网络流量发送到此Pod。

liveness probes的目的是指示您的应用程序已启动并正在运行。如果Kubernetes检测到Pod中的应用程序仍处于活动状态,则不会采取进一步的措施,否则,将删除失败的Pod,系统将尝试启动新Pod。

Livenessreadiness探针确实有助于确保整个Kubernetes群集中应用程序的稳定性,从而确保网络流量仅流向可以为其服务的实例,并按顺序检测Pod中的应用程序崩溃或故障用新的替换它。

总而言之,正如@Oron Golan提到的Health check是Kubernetes的本机功能,它不会降低应用程序的整体性能。

找到有关使用Kubernetes Health Check Here的最佳做法的更多信息。

答案 2 :(得分:0)

运行状况检查是一种常规配置,可以使您的应用程序在分布式设置中保持稳定。如果收到的请求太多,则可以使用多种方法进行配置,Kubernetes必须多久查询一次服务以检查运行状况和活跃性。您可以根据您的应用程序行为/负载/其他部署配置对其进行调整。