我们使用 k3s 和 skaffold 对我们在本地部署的应用程序(到 CI 构建代理)运行一些自动化测试。
我们如何在运行时查看(stdout 或文件)pod 日志skaffold deploy --status-check
?(我们在部署过程中遇到了错误,除非我们通过 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 --status-check
看起来像这样:
最后部署:2020 年 10 月 13 日星期二 18:14:03 命名空间:烟雾 状态:已部署 修订: 1 测试套件:无 等待部署稳定... -smoke:deployment/smoke-assets 已准备就绪。[7/8 部署仍在进行中] -smoke:deployment/smoke-b 准备好了。[6/8 部署仍在等待中] -smoke:deployment/smoke-c 已准备就绪。[5/8 部署仍在等待中] -smoke:deployment/smoke-d: 等待部署完成:1 个更新的副本中有 0 个可用... -smoke:deployment/smoke-e: 等待部署完成:1 个更新的副本中有 0 个可用... -smoke:deployment/smoke-f: 等待部署完成:1 个更新的副本中有 0 个可用... -smoke:deployment/smoke-g: 等待部署完成:1 个更新的副本中有 0 个可用... -smoke:deployment/smoke-h:等待部署完成:2 个更新的副本中有 0 个可用... -smoke:deployment/smoke-d 准备好了。[4/8 部署仍在等待中] -smoke:deployment/smoke-g 已准备就绪。[3/8 部署仍在等待中] -smoke:deployment/smoke-e 已准备就绪。[2/8 部署仍在等待中] -smoke:deployment/smoke-h:等待部署完成:2 个更新的副本中有 1 个可用... -smoke:deployment/smoke-h 已准备就绪。[1/8 部署仍在等待中] 1/8 部署失败 -smoke:deployment/smoke-f: running [kubectl --context k3d-smoke-tests-cluster rollout status deploymentsmoke-f --namespace smoke --watch=false] - 标准输出:“” - 标准错误:“错误:部署 \"smoke-f\" 超过了进度期限\n" - 原因:退出状态 1 - 烟雾:部署/烟雾-f 失败。错误:运行 [kubectl --context k3d-smoke-tests-cluster rollout status deploymentsmoke-f --namespace smoke --watch=false] - 标准输出:“” - 标准错误:“错误:部署 \"smoke-f\" 超过了进度期限\n" - 原因:退出状态 1。