如何在Kubernetes中设置Liveness

时间:2019-07-30 18:39:06

标签: kubernetes amazon-eks eks

我是Kubernetes的新手。我想为我的EKS kubernetest集群设置活动性。我浏览了下面的文档 https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 我有几个问题可以设置以上

  1. 当我使用liveness-exec时,我需要提及任何特定的名称空间 kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml -n kube-system
  2. 我可以直接从k8s.io/example中使用yaml文件,还是需要在本地复制?
  3. 这些事情如何运作?到目前为止,我了解的是

    a)部署Pod时,它将创建一个容器并创建/ tmp / healthy文件,然后删除该容器

    b)它会在30秒后运行,并从步骤3a重做相同的操作

我按照上述步骤操作,但出现错误提示 猫:

can't open '/tmp/healthy': No such file or directory

这篇文章听起来可能很重复,但是我尝试遍历上一篇文章,但是找不到解决方案。请帮助

3 个答案:

答案 0 :(得分:1)

  

1)当我应用liveness-exec时,我需要提及任何特定的名称空间   例如,kubectl apply -f   https://k8s.io/examples/pods/probe/exec-liveness.yaml -n kube-system

如果在apply命令中指定了名称空间,则在该名称空间存在的情况下,吊舱将在该名称空间中创建。如果您未指定名称空间(通过命令行或在pod yaml定义中),则将在默认命名空间中创建该pod

  

2)我可以直接从k8s.io/example中使用yaml文件,还是需要克隆   在我的本地

您可以从k8s.io/example直接应用它。

kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml
  

3)这些事情如何运作?到目前为止,我了解的是

     

a)部署Pod时,它将创建一个容器并创建   / tmp / healthy文件,然后删除容器

     

b)它会在30秒后运行,并从步骤3a重做相同的操作

我认为该示例的目的只是为了显示活动性探针的工作方式,以及在测试失败后如何重新启动Pod,因此执行的命令有些虚假。我认为您看到的错误只是探针未通过“ cat / tmp / healthy”检查

答案 1 :(得分:0)

livenessProbereadynessProbe一起是两个参数,您需要将它们放入自己的yaml定义中作为容器规范,示例文件只是为了举例说明。

使用livenessProbe表示grafana服务的示例如下:

livenessProbe:
  failureThreshold: 10
    httpGet:
      path: /api/health
      port: 3000
      scheme: HTTP
    initialDelaySeconds: 60
    periodSeconds: 10
    successThreshold: 1
    timeoutSeconds: 30

并非所有参数都是必需的,您必须考虑如何更好地为您的服务进行调整。

答案 2 :(得分:0)

Kubernetes Rest客户端(kubectl)的“应用”命令可以具有本地文件或远程文件。 活跃度是可用性的证明,成熟度是吊舱就绪的证明。从创建pod的那一刻起,按照配置的 periodSeconds 每隔5秒运行一次 livenessProbe ,“ rm -rf / tmp / Healthy”命令将在睡眠30秒后运行,因此有时,生命证明将找不到该文件,并会生成警报。

希望这会有所帮助。