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

skaffold部署期间提取pod日志

段干玺
2023-03-14

我们对使用k3s和skaffold在本地部署(到CI构建代理)的应用程序运行了一些自动化测试。

当我们运行skaffold部署-状态检查时,我们如何查看(标准输出或文件)pod日志?(我们在部署期间遇到了错误,除非我们ssh到构建代理上,否则我们无法看到这些错误。)

以下内容在部署成功后运行时会捕获日志,但如果我们在运行skaffold deploy之前运行它,则不会起作用,可能是因为它不会拾取在运行此命令后启动的任何pod:

kubectl logs \
    --namespace x \
    --follow \
    --ignore-errors \
    --max-log-requests 50 \
    --all-containers \
    --prefix \
    --timestamps \
    --selector release=y >"k8s.log" 2>&1 &

skaffold deploy--状态检查的输出如下所示:

LAST DEPLOYED: Tue Oct 13 18:14:03 2020
NAMESPACE: smoke
STATUS: deployed
REVISION: 1
TEST SUITE: None
Waiting for deployments to stabilize...
 - smoke:deployment/smoke-assets is ready. [7/8 deployment(s) still pending]
 - smoke:deployment/smoke-b is ready. [6/8 deployment(s) still pending]
 - smoke:deployment/smoke-c is ready. [5/8 deployment(s) still pending]
 - smoke:deployment/smoke-d: waiting for rollout to finish: 0 of 1 updated replicas are available...
 - smoke:deployment/smoke-e: waiting for rollout to finish: 0 of 1 updated replicas are available...
 - smoke:deployment/smoke-f: waiting for rollout to finish: 0 of 1 updated replicas are available...
 - smoke:deployment/smoke-g: waiting for rollout to finish: 0 of 1 updated replicas are available...
 - smoke:deployment/smoke-h: waiting for rollout to finish: 0 of 2 updated replicas are available...
 - smoke:deployment/smoke-d is ready. [4/8 deployment(s) still pending]
 - smoke:deployment/smoke-g is ready. [3/8 deployment(s) still pending]
 - smoke:deployment/smoke-e is ready. [2/8 deployment(s) still pending]
 - smoke:deployment/smoke-h: waiting for rollout to finish: 1 of 2 updated replicas are available...
 - smoke:deployment/smoke-h is ready. [1/8 deployment(s) still pending]
1/8 deployment(s) failed
 - smoke:deployment/smoke-f: running [kubectl --context k3d-smoke-tests-cluster rollout status deployment smoke-f --namespace smoke --watch=false]
 - stdout: ""
 - stderr: "error: deployment \"smoke-f\" exceeded its progress deadline\n"
 - cause: exit status 1
 - smoke:deployment/smoke-f failed. Error: running [kubectl --context k3d-smoke-tests-cluster rollout status deployment smoke-f --namespace smoke --watch=false]
 - stdout: ""
 - stderr: "error: deployment \"smoke-f\" exceeded its progress deadline\n"
 - cause: exit status 1.

共有2个答案

喻选
2023-03-14

@Graham Russell--statation-check应该记录失败的pod,如果它们存在的话。我唯一能想到的是pod容器终止并在skaffold可以获取日志之前被清理。

在所有部署稳定之前,目前无法将日志流式传输到std。

可以粘贴当前状态检查输出吗

戈宏义
2023-03-14

我发现stern可以处理添加到命名空间的新pod。

因此,跑步:

stern-n名称空间。

在skaffold部署之前。

 类似资料:
  • 本文向大家介绍Mysql指定日期区间的提取方法,包括了Mysql指定日期区间的提取方法的使用技巧和注意事项,需要的朋友参考一下 在数据库搬砖的过程中,免不了要跟日期打交道,比如按日期汇总一些指标、统计某段时间内的总量等。 如果是固定的日期还好,只需直接指定即可,但很多时候都是需要根据当前日期自适应变化的。比如:提取上周一到上周日的数据、提取上个月的数据、提取前N个月的数据。。。 这些要求都有一个共

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em

  • 经过几天的搜索、尝试和尝试,我把这个问题发到了SO上,尽管它似乎已经得到了答案。 这是一个场景:我有一个EAR应用程序,包含(目前)一个WAR和一个EJB模块。EJB模块使用JPA(persistence.xml)并通过Web服务公开一些无状态会话bean。web服务使用jdbc领域的基本身份验证。web模块使用相同领域的表单身份验证。 null 在我的研究过程中,我管理了以下几个方面: 我可以使

  • Skaffold 是一个命令行工具,有助于 Kubernetes 应用程序的持续开发。 你可以在本地迭代应用程序源代码,然后部署到本地或远程 Kubernetes 集群。Skaffold 会处理用于构建、推送和部署应用程序的工作流。它还可以用于自动化环境中,如 CI/CD 管道,以便在将应用程序迁移至生产环境时利用相同的工作流和工具。 Demo

  • 我最近开始熟悉Kubernetes,然而,虽然我确实得到了概念,但我有一些问题无法通过Kubernete的概念和文档清楚地回答,还有一些我想确认的理解。 “pod模型包含一个或多个相对紧密耦合的应用程序容器”。对于何时将容器部署在同一吊舱内,而不是单独的吊舱内,是否有任何明确的标准? “Pods是可以在Kubernetes中创建和管理的最小的可部署计算单元”-Pods,Kuberenets文档。这

  • null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?