首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当未找到hpa时,如何抑制“获取hpa”错误消息?

当未找到hpa时,如何抑制“获取hpa”错误消息?
EN

Stack Overflow用户
提问于 2022-09-30 14:11:33
回答 1查看 43关注 0票数 0

我将基于传递给Jenkins bash部署脚本的某些可切换的环境变量来创建HPA。

有三个条件:

在重新添加incase max/min pods或cpu阈值有changed之前,

  1. 正确的HPA变量会在项目中找到
    • 运行“get”并删除它。

在项目中,it

  1. HPA设置为“关闭”
    • run 'get hpa‘,如果找到,则删除

在项目中,

  1. HPA Env变量不存在
    • 运行“get”,如果找到,请删除

这是我正在运行的bash的实际行:

hpaExists=`kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}'

代码运行良好,但如果没有找到hpa,则在控制台中显示此错误:

Error from server (NotFound): horizontalpodautoscalers.autoscaling "${APP_NAME}" not found

从技术上讲,错误发生没有问题,但我知道,在运行Jenkins部署作业以查看错误消息时,这会使开发人员和QA感到困惑,我想抑制它。

我试过了:kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}' > /dev/null

kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}' > /dev/null 2>&1

kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}' 2> /dev/null

kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}' || true

kubectl get hpa/${APP_NAME} --no-headers | awk '{print $1}' &> /dev/null

所有这些都仍然打印错误消息。

所以我有两个问题:

  • 是否有一种方法来抑制此错误消息?
  • ,如果我确实找到了一种方法来抑制该消息,那么在这两种情况下,我设置此命令的结果的变量是否仍将被填充?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-30 14:50:30

假设此错误消息来自kubectl,则需要重定向管道一侧的stderr。

kubectl get hpa/${APP_NAME} --no-headers 2>/dev/null | awk '{print $1}'

管道中的每个进程都有自己的stdin、stdout和stderr。第一个进程的stdout连接到第二个进程的stdin,但是stderr与通常的位置相同,除非您告诉它去其他地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73910075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档