我是Kubernetes的新手。我想为我的EKS kubernetest集群设置活动性。我浏览了下面的文档 https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 我有几个问题可以设置以上
kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml -n kube-system
这些事情如何运作?到目前为止,我了解的是
a)部署Pod时,它将创建一个容器并创建/ tmp / healthy文件,然后删除该容器
b)它会在30秒后运行,并从步骤3a重做相同的操作
我按照上述步骤操作,但出现错误提示 猫:
can't open '/tmp/healthy': No such file or directory
这篇文章听起来可能很重复,但是我尝试遍历上一篇文章,但是找不到解决方案。请帮助
答案 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)
livenessProbe
与readynessProbe
一起是两个参数,您需要将它们放入自己的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秒后运行,因此有时,生命证明将找不到该文件,并会生成警报。
希望这会有所帮助。