尝试使用kubectl的custom-columns、label-columns、field-selector、sort-by功能- 第一部分

嘗試過的事情

我原本想通过kubectl get pods命令来显示以下内容:
– .spec.containers[].resources.requests.memory
– .spec.containers[].resources.limits.memory

因为有时间,所以我也试了试custom-columns、label-columns、field-selector和sort-by。由于找不到一个集中显示规格的网站,所以我决定将它们列成列表。

请参考以下内容:虽然在#71612中已经有解释,但是当前的custom-columns很不方便。
kubectl get pods + custom-column只能显示custom-columns,而不能显示custom-columns。

在搜索时,有人使用-o=和-o+空格的例子,但官方使用的是空格。

令人感兴趣的/亲切的特点 de/ de

kubectl – 介绍 “custom-columns” 变种以添加额外的列到输出 #71612
https://github.com/kubernetes/kubernetes/issues/71612

参考文献

https://kubernetes.io/docs/reference/kubectl/overview/#自定义列
https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/
https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
https://kubernetes.io/docs/reference/kubectl/overview/#排序列表对象

使用方法

想要查找的内容:
kubectl get <pod, node, svc等> -o json
kubectl get <pod, node, svc等> -o yaml
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

我也找到了这样的东西。

基本

kubectl get pods -o custom-columns='<表示したいもの>'
Example – PodCONTAINERS:.spec.containers[].nameM_LIMITS:.spec.containers[].resources.limits.memoryM_REQUESTS:.spec.containers[].resources.requests.memoryNAME:.metadata.nameNAMESPACE:.metadata.namespaceNODE_IP:.status.hostIPPOD_IP:.status.podIPPORTS:.spec.template.spec.containers[].ports.containerPortRESTART_POLICY:.spec.restartPolicyRESTARTS:.status.containerStatuses[].restartCountRSRC:.metadata.resourceVersionSTATUS:.status.phase

样本

自定义栏目

-o 自定义列=<规范>

Pods
无法在custom-columns中显示默认显示的READY和AGE。

kubectl get pods -o='custom-columns=NAME:.metadata.name,CONTAINERS:.spec.containers[].name,Images:.spec.containers[].image'

kubectl get pods -o custom-columns='NAME:.metadata.name,STATUS:.status.phase, RESTARTS:.status.containerStatuses[].restartCount,M_REQUESTS:.spec.containers[].resources.requests.memory,M_LIMITS:.spec.containers[].resources.limits.memory,NODE_IP:.status.hostIP,POD_IP:.status.podIP'

节点
我认为了解AZ对于方便很重要。像“kubernetes.io/role”的标签可以进行转义。

kubectl get nodes -o custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain\.beta\.kubernetes\.io/zone'

使用一个独立的文件 yī gè de

-o 指定列文件=<文件名>

NAME    STATUS  M_REQUESTS  M_LIMITS                
.metadata.name  .status.phase   .spec.containers[*].resources.requests.memory   .spec.containers[*].resources.limits.memory

标签列

-L或–label-columns <规范>

kubectl get nodes --label-columns failure-domain.beta.kubernetes.io/zone

字段选择器

–字段选择器<规范>

kubectl get pods --field-selector=status.phase=Running,spec.restartPolicy=Always

排序

kubectl get pods -o wide --sort-by=.spec.nodeName

部署 附加礼物

部署规范的模板规范中容器的端口是containerPort。

Jsonpath的使用方法

我接下来准备总结。

广告
将在 10 秒后关闭
bannerAds