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

活性/准备状态探测器如何与吊舱通信?

颛孙国源
2023-03-14

我对k8s很陌生,所以如果这个问题没有意义或者是错误的/愚蠢的,请向我道歉。

我有一个活跃度探测器配置为我的豆荚定义,它只是命中一个健康API并检查它的响应状态,以测试豆荚的活跃度。

共有1个答案

赵英哲
2023-03-14

简短的回答:kubelet处理这个检查,以确保您的服务正在运行,如果不是,它将被替换为另一个容器。Kubelet运行在集群的每个节点中,您不需要进行任何额外的配置。

您不需要配置服务帐户来使探测工作,它是由Kubernetes处理的内部进程。

来自Kubernetes文档:

>

  • execaction:在容器中执行指定的命令。如果命令退出时状态代码为0,则认为诊断成功。

    TCPSocketAction:针对指定端口上容器的IP地址执行TCP检查。如果端口打开,则认为诊断成功。

    HttpGetAction:针对指定端口和路径上的容器IP地址执行HTTP Get请求。如果响应的状态代码大于或等于200且小于400,则认为诊断成功。

    • 成功:容器通过了诊断。
    • 失败:容器诊断失败。
    • 未知:诊断失败,因此不应采取任何操作。

    kubelet可以在运行的容器上执行和响应三种探测:

    >

  • LivenessProbe:指示容器是否正在运行。如果活跃度探测失败,kubelet将杀死容器,并且容器将服从其重新启动策略。如果容器不提供活性探测,则默认状态为成功

    startupprobe:指示容器中的应用程序是否已启动。如果提供了启动探测,则禁用所有其他探测,直到它成功为止。如果启动探测失败,kubelet将杀死容器,并且容器将服从其重新启动策略。如果容器不提供启动探测,则默认状态为成功

  •  类似资料:
    • ReadInessProbe:指示容器是否准备好响应请求。如果就绪探测失败,endpoint控制器将从与POD匹配的所有服务的endpoint中删除POD的IP地址。初始延迟之前的默认就绪状态是失败。如果容器不提供就绪探测,则默认状态为成功 如果准备状态探测失败(并且Pod的IP地址从endpoint移除),接下来会发生什么?是否会再次检查吊舱的准备状态?在最初的延迟后,它会再次检查吗?Pod的I

    • 我有一个配置了外部网络虚拟交换机的HyperV。K8S被配置为使用法兰绒覆盖(vxlan),如下所示:https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/network-topologies。 你知道如何解决这个问题吗? 更新:提供YAML: 我不知道这是否相关,因为我不能像上面所说的那样从不同的

    • 我正试图在Kubernetes上设置EFK堆栈。正在使用的Elasticsearch版本是6.3.2。在我将探针配置放入部署YAML文件之前,一切都很好。我得到以下错误。这将导致pod被声明为不健康,并最终重新启动,这似乎是一个错误的重新启动。 警告不健康15s kubelet,aks-agentpool-23337112-0活性探测失败:获取http://10.xxx.y.zzz:9200/_c

    • 我有一个关于Kubernetes环境的问题。我有K8s云,在我添加了一个持久卷分配给一个豆荚后,这个豆荚仍然处于“容器创建”状态。此PV已正确分配PVC。PVC与副本2一起位于两个外部GlusterFS服务器上。 你有什么想法可能是错的吗?我在哪里可以找到详细的日志?提前THX。 编辑:Gluster mount正确地安装在Master上,如果我手动添加任何文件,它将正确地复制到两个Gluster

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