如何在Kubernetes Dashboard部署页面添加CLUSTER-IP:PORT自定义列?
在Kubernetes Dashboard Deployment页面添加自定义CLUSTER-IP:PORT列
Kubernetes Dashboard原生不支持通过网页界面直接添加自定义列——所有实现自定义列的方案都需要涉及配置修改或代码定制,以下是两种可行的实现路径:
1. 自定义构建Dashboard(最贴合需求)
如果需要在原生Deployment列表页面直接添加该列,必须修改Dashboard的前端代码并重新构建:
- 克隆官方仓库:
git clone https://github.com/kubernetes/dashboard.git - 进入前端资源配置目录(路径随版本略有差异,通常是
dashboard/web/app/frontend/resource/deployment) - 找到列表列的定义文件,新增一个列配置,逻辑是关联对应Deployment的Endpoints资源,提取
ClusterIP和Port并拼接成CLUSTER-IP:PORT格式
示例代码片段(需适配当前Dashboard版本):{ name: 'cluster-ip-port', label: 'CLUSTER-IP : PORT', sortable: false, cellTemplate: (data) => { // 逻辑:根据Deployment的名称和命名空间查询对应Endpoints const endpoints = data.object.metadata.namespace ? getEndpoints(data.object.metadata.name, data.object.metadata.namespace) : null; return endpoints?.subsets?.flatMap(subset => subset.addresses?.map(addr => `${addr.ip}:${subset.ports?.map(p => p.port).join(',')}`) ).join(', ') || '-'; } } - 按照官方文档的步骤编译Dashboard镜像,替换集群中运行的Dashboard实例
2. 自定义视图(无需修改代码的替代方案)
如果不想改动Dashboard源码,可以用自定义视图功能实现近似效果:
- 登录Dashboard后,点击左侧栏的「+」选择「Create View」
- 配置视图关联Deployment和Endpoints资源,通过标签选择器(比如
app=<你的应用名>)匹配同一应用的资源 - 在列配置中添加Endpoints的
IP和Port列,部分新版本支持自定义模板直接拼接成IP:PORT格式
关键提醒
- 两种方案都需要集群管理员权限
- 自定义构建时要确保Dashboard版本与集群Kubernetes版本兼容
- 旧版Dashboard的自定义视图可能不支持跨资源关联或模板拼接
内容的提问来源于stack exchange,提问作者Ilya Bokov
相关产品推荐
相关产品推荐

