自定义视图


概述

SneakCast v0.17.0 on The Beach! - Yup! sound is sucking but what a setting! K9s v0.40.0 -Column Blow- Sneak peek

K9s 支持在表格视图中自定义资源列。因此,您可以告诉它您希望显示哪些列,以及它们的显示顺序。

要使用此功能,您需要创建一个新的配置文件,即 $XDG_CONFIG_HOME/k9s/views.yaml。该文件利用 GVR (Group/Version/Resource) 来配置相关的表格视图列。如果某个视图没有找到对应的 GVR,则将使用默认渲染方式(即我们现在的显示方式)。进入宽屏模式(wide mode)将会在您的自定义列之后,添加该资源上所有可用的剩余列。此外,您可以编辑您的视图配置文件并实时调整您的资源视图!

此外,您可以使用 $XDG_DATA_HOME/ClusterX/ContextY/views.yaml 为特定集群定制您的自定义视图

📢 🎉 从 v0.40.X 版本开始,您可以指定 json 解析表达式来进一步自定义您的资源渲染。

新的列语法如下:

COLUMN_NAME< :json_parse_expression >< |column_attributes >

其中 :json_parse_expression 代表一个从资源清单(manifest)中提取特定片段的表达式。类似于 kubectl -o custom-columns 命令。此表达式是可选的。

重要!列必须是有效的 YAML 字符串。因此,如果您的列定义包含非字母字符,它们必须使用单引号/双引号或进行转义。

注意!请务必关注 k9s 的日志,因为任何与自定义视图规范相关的问题都只会在日志中显示。

另外,您可以指定列属性来进一步调整列的渲染。要使用此功能,您需要添加一个 | 指示符,后跟您的渲染位。您可以拥有以下一个或多个属性:

  • T -> 时间列指示符
  • N -> 数字列指示符
  • W -> 开启宽列,即仅在宽屏模式下显示。如果存在,则默认为标准资源定义。
  • S -> 确保列可见且不是宽列。如果标准资源定义中存在 wide,则会覆盖它。
  • H -> 隐藏该列
  • L -> 左对齐(默认)
  • R -> 右对齐


仍在开发中…… 随着此功能的完善,选项和布局在未来的 K9s 版本中可能会发生变化。


示例

这是一个自定义 Pods 和 Services 视图的示例视图配置。

# $XDG_CONFIG_HOME/k9s/views.yaml
views:
  # Alters the pod view column layout. Uses GVR as key
  v1/pods:
    # Overrides default sort column
    sortColumn: AGE:asc
    columns:
      - AGE
      - NAMESPACE|WR                                     # => 🌚 Specifies the NAMESPACE column to be right aligned and only visible while in wide mode
      - ZORG:.metadata.labels.fred\.io\.kubernetes\.blee # => 🌚 extract fred.io.kubernetes.blee label into it's own column
      - BLEE:.metadata.annotations.blee|R                # => 🌚 extract annotation blee into it's own column and right align it
      - NAME
      - BLEE:.metadata.annotations.blee|R                # => 🌚 extract annotation blee into it's own column and right align it
      - IP
      - NODE
      - STATUS
      - READY
      - MEM/RL|S                                         # => 🌚 Overrides std resource default wide attribute via `S` for `Show`
      - '%MEM/R|'                                        # => NOTE! column names with non alpha names need to be quoted as columns must be strings!

  v1/pods@fred:                                          # => 🌚 As of v0.40.6, you can now further customize pod view for a specific namespace
    # Overrides default sort column
    sortColumn: NAME:asc
    columns:
      - NAME|WR
      - AGE

  v1/pods@fred:                                          # => 🌚 New v0.40.6! Customize columns for a given resource and namespace!
    columns:
      - AGE
      - NAME|WR

  v1/pods@kube*:                                         # => 🌚 New v0.40.6! You can also specify a namespace using a regular expression.
    columns:
      - NAME
      - AGE
      - LABELS

  cool-kid:                                              # => 🌚 New v0.40.8! You can also reference a specific alias and display a custom view for it
    columns:
      - AGE
      - NAMESPACE|WR

  # Alters the service view column layout
  v1/services:
    columns:
      - AGE
      - NAMESPACE
      - NAME
      - TYPE
      - CLUSTER-IP

 返回



© 2025 Imhotep Software LLC. 所有材料均根据 Apache v2.0 许可。