查找Kubernetes搜索词
在kubernetes中查找用于选择或显示对象的值时遇到问题。我觉得我没有正确使用kubernetes文档,或者这些文档与我还没有学会的命令相关联 示例:查找Kubernetes搜索词,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,在kubernetes中查找用于选择或显示对象的值时遇到问题。我觉得我没有正确使用kubernetes文档,或者这些文档与我还没有学会的命令相关联 示例: 查找某个节点上的所有播客?你怎么知道它在规范中 kubectl get pods——所有名称空间——o宽——字段选择器spec.nodeName= 让所有吊舱都处于运行状态?您如何知道此值存储在status.phase中 kubectl get pods——字段选择器状态。阶段=运行 获取所有pod,但只列出名称,您如何知道它名为meta
kubectl get pods——所有名称空间——o宽——字段选择器spec.nodeName=
kubectl get pods——字段选择器状态。阶段=运行
kubectl get pods-o自定义列:POD:metadata.name
Kubernetes中的每个资源都有一些规范描述。例如,您可以在文档中找到资源的详细规范。如果导航到
Pod
定义(),您将看到Pod
类型及其底层类型的所有属性
例如,第一点,阅读PodSpec
(),您可以看到nodeName
属性包含一个节点的名称,该节点应用于调度pod
可以通过
kubectl
命令查看相同的文档。要获取PodSpec
的文档,您只需键入kubectl explain pod.spec
即可在中找到几乎所有Kubernetes对象的描述。具体地说,描述了
pod
对象属性
pod对象的每个成员都可以通过同一文档页面中的直接链接进行进一步探索
--字段选择器
允许您创建所需的任何过滤器,正如您在问题中已经很好地描述的那样。实用答案:
查找某个节点上的所有播客
它包含在的输出中
kubectl describe node node-001.example.com
让所有吊舱都处于运行状态
获取所有pod,但仅列出名称
请注意,这些特定命令的组合不是特别好。如果您只想获得特定节点上所有正在运行的POD的名称,可以将原始问题中更详细的选项组合在一起(如其他人所建议,使用作为参考)。您可以浏览kubectl命令行的文档,了解如何使用它。下面的链接给出了完全相同的结果 同时,第三个命令应该修改如下,以获得pod名称的唯一输出
kubectl get pods --output=custom-columns=NAME:metadata.name
除了@krizas answer wand add之外,您还可以使用
kubectl explain
输出的--recurctive
选项
添加--recursive标志以一次显示所有字段,而不显示
描述。有关每个字段的信息都是从
OpenAPI格式的服务器
我的意思是,您可以有所有可用对象和子对象的简短列表,然后才有它们的描述。例如
kubectl explain pod --recursive
#will give you all sub-objects of pod
或者您可以拥有所有pod.metadata对象,如
kubectl explain pod.metadata --recursive
FIELDS:
annotations <map[string]string>
clusterName <string>
creationTimestamp <string>
deletionGracePeriodSeconds <integer>
deletionTimestamp <string>
finalizers <[]string>
generateName <string>
generation <integer>
initializers <Object>
pending <[]Object>
name <string>
result <Object>
apiVersion <string>
code <integer>
details <Object>
causes <[]Object>
field <string>
message <string>
reason <string>
group <string>
kind <string>
name <string>
retryAfterSeconds <integer>
uid <string>
kind <string>
message <string>
metadata <Object>
continue <string>
resourceVersion <string>
selfLink <string>
reason <string>
status <string>
labels <map[string]string>
managedFields <[]Object>
apiVersion <string>
fields <map[string]>
manager <string>
operation <string>
time <string>
name <string>
namespace <string>
ownerReferences <[]Object>
apiVersion <string>
blockOwnerDeletion <boolean>
controller <boolean>
kind <string>
name <string>
uid <string>
resourceVersion <string>
selfLink <string>
uid <string>
kubectl.metadata——递归
领域:
注释
俱乐部名称
creationTimestamp
删除时间间隔秒
删除时间戳
终结器
发电机名称
一代
初始化者
悬而未决的
名称
结果
蜂房
代码
细节
原因
领域
消息
理由
团体
友善的
名称
RetryAfterns
液体
友善的
消息
元数据
继续
资源版本
自链接
理由
地位
标签
管理领域
蜂房
领域
经理
活动
时间
名称
名称空间
所有者参考
蜂房
区块所有者删除
控制器
友善的
名称
液体
资源版本
自链接
液体
然后很容易解释你需要的确切对象。另外,你眼前的结构也很好。如果很难跟上K8s命令的节奏,那么就使用
grep
(或者对于第三种情况,将其与sed
)结合起来解决所有这些用例。对于其他有此问题的人,最好的方法是使用@krisas comment中的建议。我通常使用kubectl explain pod
获取元数据、规范、状态等不同字段。然后使用kubectl explain pod.metadata | grep name
查找子字段。
kubectl explain pod --recursive
#will give you all sub-objects of pod
kubectl explain pod.metadata --recursive
FIELDS:
annotations <map[string]string>
clusterName <string>
creationTimestamp <string>
deletionGracePeriodSeconds <integer>
deletionTimestamp <string>
finalizers <[]string>
generateName <string>
generation <integer>
initializers <Object>
pending <[]Object>
name <string>
result <Object>
apiVersion <string>
code <integer>
details <Object>
causes <[]Object>
field <string>
message <string>
reason <string>
group <string>
kind <string>
name <string>
retryAfterSeconds <integer>
uid <string>
kind <string>
message <string>
metadata <Object>
continue <string>
resourceVersion <string>
selfLink <string>
reason <string>
status <string>
labels <map[string]string>
managedFields <[]Object>
apiVersion <string>
fields <map[string]>
manager <string>
operation <string>
time <string>
name <string>
namespace <string>
ownerReferences <[]Object>
apiVersion <string>
blockOwnerDeletion <boolean>
controller <boolean>
kind <string>
name <string>
uid <string>
resourceVersion <string>
selfLink <string>
uid <string>