openshift 命令以编程/脚本方式捕获 POD 名称

2023-12-20

我的开放轮班中有 Pod,并且想要处理多个开放轮班应用程序。让我们像下面这样说

sh-4.2$ oc 获取 pod

NAME                                  READY     STATUS      RESTARTS   AGE
jenkins-7fb689fc66-fs2xb              1/1       Running     0          4d
jenkins-disk-check-1587834000         0/1       Completed   0          21h

NAME                                 READY     STATUS    RESTARTS   AGE
jenkins-7fb689fc66-gsz9j              0/1       Running   735        9d
jenkins-disk-check-1587834000    

NAME                                READY     STATUS    RESTARTS   AGE
jenkins-9euygc66-gsz9j               0/1       Running   735        9d

我尝试过使用以下命令

oc 获取 pod

export POD=$(oc get pods | awk '{print $1}' | grep jenkins*)

我想使用脚本找到以数字“jenkins-7fb689fc66-fs2xb”、jenkins-9euygc66-gsz9j 等开头的 Pod,并且需要忽略磁盘检查 Pod。如果我捕获上述 pod 并需要执行终端并通过编程方式运行一些 shell 命令。有人可以帮我解决这个问题吗?


kubectl get(并且通过扩展oc get) is a very多功能工具。不幸的是,在网上浏览了一段时间后,你会发现确实如果不依赖像这样的外部工具就无法执行正则表达式awk or grep。 (我知道这不是exactly你在问什么,但我想我至少会尝试看看是否可能。

话虽如此,您可以依靠一些技巧来过滤您的信息oc get在您甚至必须引入外部工具之前就可以输出(奖励点,因为这种过滤甚至在到达本地工具之前就发生在服务器上)。

I first建议跑步oc get pods --show-labels,因为如果您需要的 pod 已被适当标记,您可以使用标签选择器来获取您想要的 pod,例如:

oc get pods --selector name=jenkins
oc get pods --selector <label_key>=<label_value>

Second,如果你只关心Running豆荚(自disk-check豆荚看起来已经Completed),您可以使用字段选择器,例如:

oc get pods --field-selector status.phase=Running
oc get pods --field-selector <json_path>=<json_value>

Finally,如果有一个specific您想要的值,您可以通过指定自定义列将该值拉入 CLI,然后grep关注您关心的价值,例如:

oc get pods -o custom-columns=NAME:.metadata.name,TYPES:.status.conditions[*].type | grep "Ready"

最好的事情是,如果您依赖标签选择器和/或字段选择器,过滤会发生在服务器端,以减少最终进入最终自定义列的数据,从而使一切变得更加高效。


为您specific用例,看来只需使用--field-selector就足够了,因为disk-check豆荚已经Completed。因此,在没有进一步信息的情况下exactlyJenkins pod 的 JSON 是如何构建的,这对您来说应该足够了:

oc get pods --field-selector status.phase=Running
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openshift 命令以编程/脚本方式捕获 POD 名称 的相关文章

  • npm 运行如何工作?

    当我打字时会发生什么npm run
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • 使用 sed 和 grep/egrep 进行搜索和替换

    我在用egrep R后跟包含大约 10 个并集的正则表达式 如下所示 jpg png gif等等 这很好用 现在我想替换所有找到的字符串 bmp 我在想类似的事情 egrep lR jpg png gif sed s some expres
  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • 使用运算符 j 操作 zsh 数组

    以下代码摘自here http eseth org 2010 git in zsh html function vi git st local ahead behind remote local a gitstatus Are we on
  • Grep 模式匹配用双引号括起来的小写字符串

    我在 grep 方面遇到了一些问题 我似乎无法弄清楚 我试图在一组源文件中搜索用双引号 C 字符串 括起来的小写单词的所有实例 使用 bash 和 gnu grep grep e a z cpp 没有给我任何匹配项 而 grep e a z
  • 在 bash 中,如何除以两个变量并输出四舍五入到小数点后 5 位的答案? [复制]

    这个问题在这里已经有答案了 我将两个变量作为输入 将它们相除后 我希望将输出四舍五入到小数点后 5 位 我已经尝试过这种方法 gt sum 12 n 7 output scale 5 sum n bc echo output 我的代码没有显
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 在 Shell 中提取匹配模式后的字符串

    如何提取 Shell 脚本中匹配模式后面的任何字符串 我知道 Perl 脚本中的此功能 但不知道 Shell 脚本中的功能 以下是示例 subject 01 这是一个示例主题 可能会有所不同 我必须提取 Subject 01 后面的任何字符
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 如何将输出重定向到文件,如果文件不存在则不创建它?

    我需要将输出重定向到一个文件 gt 在 shell 中 但如果该文件尚不存在 则不应创建该文件 如何实现这一目标 我尝试创建文件的符号链接并重定向到符号链接 但不幸的是 如果文件尚不存在 无论如何都会创建文件 也许我需要重定向到一个单独的程
  • HBase Shell 日志记录

    使用 HBase shell 时 我收到大量日志记录 包括 INFO 和 DEBUG 消息 虽然这对于学习 HBase 内部结构来说很有趣 但它非常冗长并且可能会掩盖输出 我尝试过以多种不同的方式更改日志记录级别 包括所描述的here ht
  • 将 apache documentRoot 设置为符号链接(以便于部署)

    我们正在寻找一种将 Apache DocumentRoot 指向符号链接的方法 例如 文档根目录 var www html finalbuild Finalbuild 应该指向 home user build3 之类的文件夹 当我们将新构建
  • 如何使用fabric8 java客户端获取kubernetes服务帐户访问令牌?

    我已经在本地计算机中配置了 minikube 并将在外部使用 kubernetes 我已经在 kubernetes 中创建了一个服务帐户 并使用它的秘密我可以使用以下命令获取访问令牌 kubectl get secret
  • Unix shell脚本找出脚本文件所在的目录?

    基本上我需要使用与 shell 脚本文件位置相关的路径运行脚本 如何将当前目录更改为与脚本文件所在的目录相同 在 Bash 中 你应该得到你需要的东西 如下所示 usr bin env bash BASEDIR dirname 0 echo
  • shell脚本中是否有互斥/信号量机制?

    我正在 shell 脚本中寻找互斥 信号量 并发机制 考虑以下情况 除非 a 用户不关闭共享文件 否则 b 用户应该无法打开 更新它 我只是想知道如何在 shell 脚本中实现互斥量 信号量 临界区等 在 shell 脚本中实现锁定机制 文
  • LaunchAgent 不运行 shell 脚本

    在 Catalina 之前的 macOS 下 我有一个每天运行 shell 脚本的 LaunchAgent 升级并切换到 zsh 后 它不起作用 我检查过的事情 shebang 切换到 zsh shell脚本可以从命令行手动执行 sh 在系

随机推荐

  • Objective C - 在主线程上调用类方法?

    我怎样才能打电话CLASS METHOD在主线程上 就像是 SomeClass performSelectorOnMainThread staticMethod withObject nil 请不要告诉我创建一个常规方法来调用此类方法 这将
  • git checkout 而不覆盖数据

    你怎么git checkout而不覆盖数据 I run git checkout master I get error Entry forms answer php would be overwritten by merge Cannot
  • 在 Java 中连接两个字符串然后转换为日期

    我需要在 Java 中将两个字符串连接在一起 然后格式化该字符串并将其设为 Date 对象 我现在拥有的两个字符串是31 01 2012 and 20 00我想做一些类似的事情 try DateFormat formatter new Si
  • 从 TFS 2015 Rest API 返回什么对象

    我正在使用 TFS 2015 Rest api 来检索构建定义并使用这些调用构建详细信息 定义 http tfs DefaultCollection apis build definitions name ampm api 版本 2 0 构
  • 如何访问 QTextDocument 页面

    我正在尝试构建一个以分页方式显示富文本文档的应用程序 或多或少像 MS Word 那样 目前 我希望一次只显示一页 From 这个问题 https stackoverflow com questions 3605368 how to pag
  • Blackberry WebWorks 中包含哪个版本的 WebKit?

    我能找到的就是 WebKit 它很有用 因为 BBOS5 甚至没有它 但如果有具体的版本就更好了 我正在尝试让 PDF js 工作 想知道我是否应该放弃 如果您确实想了解不同 BlackBerry 设备中的 WebKit 版本 请查看我们的
  • Java 中是否允许空字符串作为枚举成员

    我在处理一些遗留代码时遇到了一些问题 一张票要求我编写一个脚本来测试流程的有效性 但是 运行脚本时我不断收到此异常 java lang IllegalArgumentException No enum const class edu cmu
  • 从数据源拖放到 WPF 窗口不起作用

    我的任务是为我的公司设计一个联系人管理程序 我们有 VS 2012 因为我之前从未使用过 WPF 所以我想用它来开发这个应用程序 在使用数据库的实体框架时 我在开始绑定时遇到了巨大的问题 顺便说一句 首先是数据库 我已按照该信函链接中的说明
  • 如何添加可水平滚动的单行图像列表(在react js中)

    我想获得一些有关如何添加可水平滚动的单行图像列表的建议 解决方案和方法 假设您有一个 html 页面 其中包含多个 div 元素 并且该页面可以垂直滚动 在页面的最后一行 我想显示可以水平滚动的图像列表 可以做什么来达到这个效果呢 请参考下
  • Vagrant 中的符号链接和同步文件夹

    我想使用 Vagrant 为我的团队提供一个通用的开发环境 主机完全不同 有些使用 OS X 有些使用 Linux 有些使用 Windows 有些使用VMware 有些使用VirtualBox 我们想要在虚拟机内部运行 Linux 到目前为
  • 在 Google Apps 脚本 MailApp.sendEmail 中使用抄送和/或密件抄送

    我正在 Google Apps 脚本中运行以下脚本 emailAddress 是从工作表中提取的变量 MailApp sendEmail emailAddress subject message htmlBody message 我正在尝试
  • UITableView 标题位于各部分的左侧(如 Spotlight)

    我已经搜索了很长一段时间了 但仍然没有找到方法 我想将 iPhone 的 Spotlight 的节标题复制到 UITableView 中 众所周知 当您滚动时 常规 表视图标题在部分顶部保持可见 但有一种标题是我在 Springboard
  • Spring Web 服务框架中的流式传输 MTOM Web 服务

    我想使用 MTOM 和 Spring WS 将大文件从服务器发送到客户端 我意识到这不是处理此类事情的最佳方法 但这是一个要求 我设置了 MTOM 它非常适合 50mb 左右的小文件 我遇到较大文件的内存不足错误 通过更改不同的堆空间大小
  • Angular6:如何从命令行生成默认的 angular.json 文件[重复]

    这个问题在这里已经有答案了 我使用 Angular 6 创建一个新模块 它将作为一个包在另一个项目中使用 现在 我正在尝试配置 karma 和 jasmine 以便我可以在其上创建单元测试 问题是我发现这个项目没有任何angular jso
  • 运行以下 Playbook 语法似乎是正确的,但出现以下错误!-“blockinfile”不是 Play 的有效属性

    运行以下 Playbook 语法似乎是正确的 但出现以下错误 ERROR blockinfile is not a valid attribute for a Play The error appears to have been in r
  • 浏览器如何识别登录表单?

    我想知道 浏览器如何识别不同站点中的登录表单 无论我是否访问我的 GMail 帐户或某些个人项目 IE Firefox 总是知道该页面包含登录信息 他们是否得出结论 简单地搜索输入类型 密码 或者涉及一些 cookie 信息 先感谢您 Fi
  • 将 HH:MM:SS 除以整数

    我有一个专栏 Col1 格式为HH MM SS 和一个整数列Col2 我正在尝试计算Col1 Col2在格式中HH MM SS 我怎样才能做到这一点 我尝试过使用转换函数 但是下面的查询忽略了隐藏的值 这是我使用的 Convert 语句 C
  • 如何使用Java自带的解析器从HTML中提取信息?

    我不想下载任何其他库 我正在谈论这个 javax swing text html HTMLEditorKit Parser 如何使用此解析器提取页面中的重复信息 举例来说 我在页面中重复了以下代码 tr td class info1 get
  • Inno Setup 中带参数调用 dll 函数时出现运行时异常

    我成功地从 Inno Setup 调用 DLL 中的函数 但是返回后我收到运行时错误 异常 地址 XXXXXXX 处的访问冲突 写入地址 XXXXXX 该函数声明为 function CompleteInstall szIntallPath
  • openshift 命令以编程/脚本方式捕获 POD 名称

    我的开放轮班中有 Pod 并且想要处理多个开放轮班应用程序 让我们像下面这样说 sh 4 2 oc 获取 pod NAME READY STATUS RESTARTS AGE jenkins 7fb689fc66 fs2xb 1 1 Run