Azure Kubernetes 服务 pods 未启动运行状况检查超时且无错误日志
Azure Kubernetes Service pods not starting health check is timing out and no error logs
我正在使用 Azure Kuerbets 服务,我有一个很大的问题来检测为什么 pods(特定类型)没有启动......唯一发生的事情是当新的 pods 启动时健康检查超时,AKS 静静地返回到旧部署的有效服务...我在服务中做了很多跟踪输出,以检测它在外部调用被阻止等情况下失败的地方,我有一个全局 try/catch 在 Program.cs 但没有信息出来...AKS 监听 stdout 并在那里抓取日志并将它们推送到外部工具....我试图在健康检查应该开始时增加值等如下但与没有结果
livenessProbe:
.
.
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
.
.
initialDelaySeconds: 50
periodSeconds: 15
当 运行 本地服务在 10-15 秒内启动
显然,在服务启动之前事情似乎失败了,或者某些事情超时了,我想知道...
- 我可以获取日志或监控正在发生的事情吗?为什么 pods 在 AKS 中启动 pods 时速度如此之慢?
- 是否可以监控属于 AKS 群集的虚拟机上的 stdout 输出的内容?
感觉我已经测试了所有内容,但我找不到任何健康监控拒绝请求的原因。
谢谢!
如果您在创建集群时启用了 Azure Monitor for Container,您的应用程序的日志将被推送到 table ContainerLog
中的 Log Analytics 工作区。如果未启用 Azure Monitor,您可以使用 kubectl
通过以下命令查看输出到 stdout
和 sdterr
的内容:
kubectl logs {pod-name} -n {namespace}
您还可以检查 kubernetes 事件,您会看到事件表明探测失败如果这确实是问题所在:
kubectl get events -n {namespace}
我正在使用 Azure Kuerbets 服务,我有一个很大的问题来检测为什么 pods(特定类型)没有启动......唯一发生的事情是当新的 pods 启动时健康检查超时,AKS 静静地返回到旧部署的有效服务...我在服务中做了很多跟踪输出,以检测它在外部调用被阻止等情况下失败的地方,我有一个全局 try/catch 在 Program.cs 但没有信息出来...AKS 监听 stdout 并在那里抓取日志并将它们推送到外部工具....我试图在健康检查应该开始时增加值等如下但与没有结果
livenessProbe:
.
.
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
.
.
initialDelaySeconds: 50
periodSeconds: 15
当 运行 本地服务在 10-15 秒内启动
显然,在服务启动之前事情似乎失败了,或者某些事情超时了,我想知道...
- 我可以获取日志或监控正在发生的事情吗?为什么 pods 在 AKS 中启动 pods 时速度如此之慢?
- 是否可以监控属于 AKS 群集的虚拟机上的 stdout 输出的内容?
感觉我已经测试了所有内容,但我找不到任何健康监控拒绝请求的原因。
谢谢!
如果您在创建集群时启用了 Azure Monitor for Container,您的应用程序的日志将被推送到 table ContainerLog
中的 Log Analytics 工作区。如果未启用 Azure Monitor,您可以使用 kubectl
通过以下命令查看输出到 stdout
和 sdterr
的内容:
kubectl logs {pod-name} -n {namespace}
您还可以检查 kubernetes 事件,您会看到事件表明探测失败如果这确实是问题所在:
kubectl get events -n {namespace}