Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用kubectl -o jsonpath仅检索kubectl.kubernetes.io/last-applied-configuration?

如何使用kubectl -o jsonpath仅检索kubectl.kubernetes.io/last-applied-configuration?
EN

Stack Overflow用户
提问于 2019-05-13 18:26:55
回答 3查看 6.1K关注 0票数 6

我正在尝试使用kubectl -o jsonpath从服务yaml (在元数据注释下)检索kubernetes last-applied configuration,但是字段的名称是kubectl我认为解析器会因为实际名称字段中的点而变得混乱,因为它使用点来指定子对象。

例如(在Windows上运行)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -lapp=myapp get service -o jsonpath="{range .items[*]}{
.metadata.annotations}{\"\n\"}{end}"

按照预期显示结果值的映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
map[kubectl.kubernetes.io/last-applied-configuration:{"kind":"Service","apiVersion":"v1","metadata":{"name":"myapp","namespace":"mynamespace",
"creationTimestamp":null,"labels":{"app":"myapp","version":"1.0"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":80,"ta
rgetPort":8080}],"selector":{"app":"myapp","version":"1.0"},"type":"NodePort"},"status":{"loadBalancer":{}}}]

在这种情况下,kubectl.kubernetes.io/last-applied-configuration是注释中的唯一内容,但情况并不总是如此。

当我试图深入到最后应用的配置时,问题就出现了。

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -lapp=myapp get service -o jsonpath="{range .items[*]}{
.metadata.annotations.kubectl.kubernetes.io/last-applied-configuration}{\"\n\"}{end}"

不返回任何信息。

我也试过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -lapp=myapp get service -o jsonpath="{range .items[*]}{
.metadata.annotations['kubectl.kubernetes.io/last-applied-configuration']}{\"\n\"}{end}"

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -lapp=myapp get service -o jsonpath="{range .items[*]}{['metadata']['annotations']['kubectl.kubernetes.io/last-applied-configuration']}{\"\n\"}{end}"

无济于事。

我期望结果仅仅是kubectl.kubernetes.io/last-applied-configuration的值

EN

回答 3

Stack Overflow用户

发布于 2020-05-11 07:12:19

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply view-last-applied service -lapp=myapp -o json
票数 6
EN

Stack Overflow用户

发布于 2019-12-19 11:04:01

您需要对.进行转义,然后它将列出特定注释名称中的值。

kubectl -lapp=myapp get service -o jsonpath="{range .items[*]}{.metadata.annotations.kubectl\.kubernetes\.io/last-applied-configuration}{\"\n\"}{end}"

票数 3
EN

Stack Overflow用户

发布于 2019-05-14 10:10:47

我不是json专家,但您可以使用jid - json incremental digger

kubectl get service -o json| jid -q

您可以查看详细的解释here

要捕获metadata.annotations,只需使用以下命令:

kubectl get service -o json| jq .items[0].metadata.annotations

输出将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ kubectl get service -o json| jq -r .items[0].metadata.annotations
{
  "kompose.cmd": "kompose convert --volumes hostPath",
  "kompose.version": "1.17.0 (a74acad)",
  "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"kompose.cmd\":\"kompose convert --volumes hostPath\",\"kompose.version\":\"1.17.0 (a74acad)\"},\"creationTimestamp\":null,\"labels\":{\"io.kompose.service\":\"decs-zc1\"},\"name\":\"decs-zc1\",\"namespace\":\"default\"},\"spec\":{\"ports\":[{\"name\":\"2201\",\"port\":2201,\"targetPort\":22}],\"selector\":{\"io.kompose.service\":\"decs-zc1\"}},\"status\":{\"loadBalancer\":{}}}\n"
}

希望这对你有更大的帮助。

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

https://stackoverflow.com/questions/56117950

复制
相关文章
K8s中污点实验--NoExecute
[root@k8s-master pv]# kubectl get pods -o wide
院长技术
2020/12/17
1.3K0
Kubernetes污点和容忍
节点亲和性,是 pod 的一种属性(偏好或硬性要求),它使 pod 被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的pod,Taint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 toleration 应用于 pod上,则表示这些 pod 可以(但不要求)被调度到具有匹配 taint 的节点上。
星哥玩云
2022/09/15
5950
Kubernetes污点和容忍
Kubernetes的污点和容忍(上篇)
搭建了一个k8s(Kubernetes)的事件监听服务,监听事件之后对数据做处理。有天报了一个问题经调查是新版本的k8s集群添加会把unschedule等信息通过污点的方式反映。而这些污点是只有key没有value的。我的服务中只对value不会空的进行了处理就不对了。
静儿
2019/03/20
1.7K0
Kubernetes的污点和容忍(上篇)
Kubernetes的污点和容忍(下篇)
继上一篇《Kubernetes的污点和容忍(上篇)》,这是https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ 译文的下半部分。
静儿
2019/03/22
9780
pod 调度详解:亲和、污点和容忍
在讲解本章之前,我先通过一个故事,来描绘一下 k8s 中 node 和 pod 的爱恨情仇。
看、未来
2022/08/11
4950
pod 调度详解:亲和、污点和容忍
k8s 污点和容忍
在 Kubernetes 中,节点亲和性 NodeAffinity 是 Pod 上定义的一种属性,能够使 Pod 按我们的要求调度到某个节点上,而 Taints(污点) 则恰恰相反,它是 Node 上的一个属性,可以让 Pod 不能调度到带污点的节点上,甚至会对带污点节点上已有的 Pod 进行驱逐。当然,对应的 Kubernetes 可以给 Pod 设置 Tolerations(容忍) 属性来让 Pod 能够容忍节点上设置的污点,这样在调度时就会忽略节点上设置的污点,将 Pod 调度到该节点。一般时候 Taints 通常与 Tolerations 配合使用。
看、未来
2022/09/27
8310
k8s 污点和容忍
内置污点(三)
另一个使用内置污点的示例是防止节点磁盘空间不足。当节点的磁盘空间不足时,新的Pod可能会导致节点崩溃或运行缓慢。为了避免这种情况,可以使用node.kubernetes.io/out-of-disk污点来标记磁盘空间不足的节点,并阻止新的Pod调度到这些节点上。
玖叁叁
2023/05/03
1610
kubernetes Pod资源调度之污点和容忍
污点taints是定义在节点之上的键值型属性数据,用于让节点拒绝将Pod调度运行于其上, 除非该Pod对象具有接纳节点污点的容忍度。而容忍度tolerations是定义在 Pod对象上的键值型属性数据,用于配置其可容忍的节点污点,而且调度器仅能将Pod对象调度至其能够容忍该节点污点的节点之上,如图所示
仙人技术
2020/04/29
1.4K0
内置污点(二)
除了标记不可用的节点,我们还可以使用内置污点来标记那些只能运行特定类型Pod的节点。例如,我们可以使用node.kubernetes.io/unreachable污点来标记那些只能运行后端应用的节点,以避免错误地将前端应用调度到这些节点上。
玖叁叁
2023/05/03
2280
内置污点(一)
Kubernetes中的节点可以带有内置污点(taint),这些污点是在节点创建时自动设置的,并且不能被删除或修改。内置污点可以用来标记那些不希望运行Pod的节点,或者只允许某些Pod在该节点上运行。
玖叁叁
2023/05/03
3140
浅谈APP的污点分析
APP中存在比较严重的安全风险有:数据泄露问题、第三方库漏洞问题、隐私合规问题、组件间通信问题。
小道安全
2023/10/08
5750
浅谈APP的污点分析
不背锅运维:K8S之污点、污点容忍
K8s CKA+CKS认证实战班》2023版:https://mp.weixin.qq.com/s/h1bjcIwy2enVD203o-ntlA
不背锅运维
2023/03/01
9690
不背锅运维:K8S之污点、污点容忍
kubernetes亲和性和反亲和性,污点和容忍
在 Kubernetes 中,亲和性和反亲和性可以用来控制 Pod 如何调度到节点上,而污点和容忍则可以用来控制节点是否接受 Pod。在本文中,我们将介绍 Kubernetes 中亲和性、反亲和性、污点和容忍的概念,并提供一些示例来帮助读者更好地理解这些概念。
堕落飞鸟
2023/04/01
1.7K1
基于污点分析的JSP Webshell检测
在11月初,我做了一些JSP Webshell的免杀研究,主要参考了三梦师傅开源的代码。然后加入了一些代码混淆手段,编写了一个免杀马生成器JSPHorse,没想到在Github上已收获500+的Star
亿人安全
2022/06/30
1.8K0
基于污点分析的JSP Webshell检测
浅谈软件污点分析技术
软件的漏洞是在软件整个生命周期中因安全设计缺陷、编码错误和运行故障等问题而触发的。软件漏洞的出现不仅会影响到软件的运营同时也缩短了软件的生命周期。
小道安全
2023/10/08
1.2K0
浅谈软件污点分析技术
污点(taints)与容忍(tolerations)
对于nodeAffinity无论是硬策略还是软策略方式,都是调度 pod 到预期节点上,而Taints恰好与之相反,如果一个节点标记为 Taints ,除非 pod 也被标识为可以容忍污点节点,否则该 Taints 节点不会被调度 pod。
匿名用户的日记
2021/12/14
6240
K8s中污点(Taint)详解及命令
Ⅰ、 污点 ( Taint ) 的组成 使用kubectl taint命令可以给某个Node节点设置污点,Node被设置上污点之后就和Pod之间存在了一种相斥的关系,可以让Node拒绝Pod的调度执行,甚至将Node已经存在的Pod驱逐出去 每个污点的组成如下: key=value:effect 每个污点有一个 key 和 value 作为污点的标签,其中 value 可以为空,effect 描述污点的作用。 当前 taint effect 支持如下三个选项: NoSchedule :表示k8s将不会将Pod调
院长技术
2020/12/17
17.6K0
kubernetes调度之污点与容忍
NodeAffinity节点亲和性,是Pod上定义的一种属性,使Pod能够按我们的要求调度到某个Node上,而Taints则恰恰相反,它可以让Node拒绝运行Pod,甚至驱逐Pod。
kubernetes中文社区
2019/06/24
1.4K0
再战 k8s(11):污点、容忍,亲和性
在讲述一系列相关专业术语之前,先尝试用一个通俗易懂的故事来说明 Kubernetes 中 node 与 pod 之间的爱恨情仇。
看、未来
2022/05/06
5730
再战 k8s(11):污点、容忍,亲和性
k8s 实践经验(五)pod 详解(2)
在讲解本章之前,我先通过一个故事,来描绘一下 k8s 中 node 和 pod 的爱恨情仇。
看、未来
2022/05/09
6470
k8s 实践经验(五)pod 详解(2)

相似问题

Apache : java.lang.ClassNotFoundException:

11

GeoSpark显示SQL结果失败

122

GeoSpark转换SQL函数失败

135

java.lang.ClassNotFoundException: org.apache.spark.sql.Dataset

4197

Apache错误java.lang.ClassNotFoundException

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文