我已经在Kubernetes上设置了一个Node应用程序,并设置了一个Ingress。结果,我的节点服务器不断受到健康检查的攻击。</ p>
我不确定这些持续的健康检查是好是坏。它们是否会影响服务器(例如,降低其速度,或使其持续忙碌)?这还会导致我的应用程序的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
答案 0 :(得分:0)
运行状况检查是Kubernetes的基本功能,表示您可以。 我看不到您的Ingress有任何问题。
答案 1 :(得分:0)
Kubernetes Health checks可以分为liveness
和readiness
探针。
Readiness probes
用于检查Pod中的应用程序是否已准备好为网络流量服务。如果您的应用程序的准备就绪探针失败,则将从构成服务的端点中删除该Pod。通过使用readiness probe
,Kubernetes会等到该应用程序完全启动后,再允许该服务将网络流量发送到此Pod。
liveness probes
的目的是指示您的应用程序已启动并正在运行。如果Kubernetes检测到Pod中的应用程序仍处于活动状态,则不会采取进一步的措施,否则,将删除失败的Pod,系统将尝试启动新Pod。
Liveness
和readiness
探针确实有助于确保整个Kubernetes群集中应用程序的稳定性,从而确保网络流量仅流向可以为其服务的实例,并按顺序检测Pod中的应用程序崩溃或故障用新的替换它。
总而言之,正如@Oron Golan提到的Health check
是Kubernetes的本机功能,它不会降低应用程序的整体性能。
找到有关使用Kubernetes Health Check Here的最佳做法的更多信息。
答案 2 :(得分:0)
运行状况检查是一种常规配置,可以使您的应用程序在分布式设置中保持稳定。如果收到的请求太多,则可以使用多种方法进行配置,Kubernetes必须多久查询一次服务以检查运行状况和活跃性。您可以根据您的应用程序行为/负载/其他部署配置对其进行调整。