环境管理
管理你的容器运行环境并提供连接测试工具,帮助你保证 MCP 实例运行的可用性与安全性。当前支持的环境类型包括 Kubernetes 与 Docker(后续可扩展更多环境类型)。
环境概览
环境列表展示每个已注册环境的基本信息:环境名称、环境类型(kubernetes/docker)、默认命名空间、创建时间与修改时间。你可通过界面进入环境详情执行连通性测试、查看 PVC、管理节点等操作。
环境类型
当前支持:kubernetes、docker。
命名空间
环境对应的命名空间由你在创建环境时配置;确保填写与目标集群一致的命名空间以便正确部署与访问实例。
环境配置
系统在 UI 中以美化过的 YAML/JSON 格式展示环境配置,便于比较与验证;修改时请谨慎保存。
连通性测试
连通性测试用于验证平台能否正确访问目标环境及其资源(API Server、命名空间、节点、Service 等)。常见检查项:
- API Server 可达性(通过请求 API Server 获取集群信息)
- 命名空间是否存在
- 节点列表与状态
- 可否在目标命名空间创建临时 Pod(用于网络/镜像检测)
UI 操作:在环境列表的某一行点击“详情”-> 操作 菜单 -> 测试连通性。
典型的自动检测步骤(平台执行):
- 向 API Server 发起认证与获取集群信息请求(
/version、/api) - 查询目标命名空间是否存在
- 列出节点并检查
Ready状态 - 在目标命名空间创建一个短生命周期的检测 Pod(例如 busybox)并执行
curl/ping测试 - 收集并展示检测结果(成功/失败 + 诊断信息)
PVC 管理
PVC(PersistentVolumeClaim)管理用于指定容器环境中持久化存储卷的声明与绑定。MCP CAN 平台提供可视化的 PVC 列表与管理能力,帮助你诊断存储配置问题、监控卷的使用状态。
PVC 列表视图
在环境详情页点击"PVC 管理"进入 PVC 列表,界面展示以下信息:
| 字段 | 说明 | 示例 |
|---|---|---|
| PVC 名称 | PersistentVolumeClaim 的名称 | data-mysql-0 |
| 命名空间 | PVC 所属的 Kubernetes 命名空间 | mcp-dev |
| 存储类 | StorageClass 名称,定义存储类型与供应商 | local-path、standard |
| 访问模式 | ReadWriteOnce (RWO)、ReadOnlyMany (ROX)、ReadWriteMany (RWX) | RWO |
| 容量 | 申请的存储容量 | 10Gi |
| 状态 | Bound(已绑定)、Pending(等待绑定)、Released(已释放)、Failed | Bound |
| 绑定 Pod | 当前使用该 PVC 的 Pod 名称 | mysql-0、--(未挂载) |
| 创建时间 | PVC 创建的时间戳 | 2025-11-05 17:51:26 |
功能与操作
查看 PVC 列表:
- 展示当前环境(命名空间)中的所有 PVC
- 支持按 PVC 名称搜索(右上角搜索框)
- 支持刷新(🔄 按钮)和筛选(🔍 按钮)
创建 PVC:
- 点击右上角"+ 创建 PVC"按钮
- 填写 PVC 名称、命名空间、存储类、访问模式、容量
- 提交后系统会在 Kubernetes 集群中创建对应的 PVC 资源
查看 PVC 详情:
- 点击某个 PVC 行,进入详情页
- 查看绑定的 PV 名称、事件(Events)、状态变更历史
- 查看挂载该 PVC 的 Pod 列表
删除 PVC:
- 在 PVC 列表中点击操作菜单(⋮)选择"删除"
- 系统会弹出确认提示(⚠️ 删除 PVC 会导致数据丢失,请谨慎操作)
- 删除后,对应的 PV 可能会被回收或保留(取决于 StorageClass 的回收策略)
使用场景
- 存储容量规划:查看各实例使用的存储容量,评估是否需要扩容
- 故障诊断:当 Pod 无法启动时,检查 PVC 状态是否为 Pending 或 Failed
- 数据迁移:在实例迁移或升级前,查看 PVC 绑定关系,规划数据备份与迁移
- 资源清理:定期清理不再使用的 PVC,释放存储资源
操作建议
注意事项
- 删除前备份:对生产环境的 PVC,务必先备份数据后再执行删除操作
- 检查依赖:删除 PVC 前,确认没有 Pod 正在使用该卷(绑定 Pod 列为"--")
- StorageClass 策略:了解你的 StorageClass 回收策略(Retain/Delete),避免误删数据
常见问题排查:
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| PVC 状态为 Pending | 没有可用的 PV、StorageClass 不存在或配置错误 | 检查 kubectl describe pvc <name> 的 Events,确认 StorageClass 和 PV 配置 |
| Pod 无法挂载 PVC | 访问模式不匹配、PVC 已被其他 Pod 占用(RWO) | 确认访问模式支持多 Pod 挂载,或等待占用 Pod 释放 |
| PVC 容量不足 | 存储卷已满,应用写入失败 | 检查实际使用容量,扩容 PVC(需 StorageClass 支持动态扩容)或清理旧数据 |
节点管理
节点管理用于查看与维护 Kubernetes 集群中节点(Node)的状态。MCP CAN 平台提供节点列表与操作能力,帮助你监控节点健康、执行维护操作。
节点列表视图
在环境详情页点击"节点管理"进入节点列表,界面展示以下信息:
| 字段 | 说明 | 示例 |
|---|---|---|
| 节点名称 | Kubernetes 节点的名称 | vm-16-6-ubuntu |
| 状态 | Ready(就绪)、NotReady(未就绪)、Unknown(未知) | Ready |
| 角色 | master(控制平面节点)、worker(工作节点)或自定义标签 | master |
| 内部 IP | 节点的内网 IP 地址 | 10.0.1.6 或 --(未分配) |
| 外部 IP | 节点的外网 IP 地址(如有) | 203.0.113.10 或 -- |
| 创建时间 | 节点加入集群的时间 | 2025-11-05 17:51:26 |
| 操作系统 | 节点运行的操作系统 | linux、windows |
功能与操作
查看节点列表:
- 展示集群中的所有节点
- 支持按节点名称搜索(右上角搜索框)
- 支持刷新(🔄 按钮)和筛选(🔍 按钮)
查看节点详情:
- 点击某个节点行,进入详情页
- 查看节点的资源使用情况(CPU、内存、磁盘)
- 查看节点标签(Labels)、污点(Taints)、条件(Conditions)
- 查看节点上运行的 Pod 列表
节点调度控制:
- Cordon(标记不可调度):阻止新 Pod 调度到该节点,现有 Pod 继续运行
- Uncordon(恢复调度):允许新 Pod 再次调度到该节点
- Drain(优雅驱逐):驱逐节点上的所有 Pod(除 DaemonSet),用于节点维护或下线
节点监控:
- 查看节点的健康状态(Ready、MemoryPressure、DiskPressure、PIDPressure)
- 监控节点的可分配资源(Allocatable)与已分配资源(Allocated)
使用场景
- 节点维护:执行 Drain 操作,安全驱逐 Pod 后对节点进行升级、重启或硬件维护
- 资源调度优化:通过 Cordon 控制特定节点不接受新 Pod,进行资源调整或测试
- 故障排查:当 Pod 调度失败或节点 NotReady 时,查看节点状态与事件
- 容量规划:查看节点资源使用情况,评估是否需要扩容集群
操作建议
最佳实践
- Drain 前检查:执行 Drain 前,确认节点上的关键服务有多副本或可迁移
- DaemonSet 处理:Drain 时使用
--ignore-daemonsets参数,避免驱逐系统 Pod(如监控、日志采集) - PodDisruptionBudget:为关键应用配置 PDB,防止 Drain 导致服务完全不可用
- 定期巡检:定期查看节点状态,及时发现 NotReady 或资源压力问题
常见问题排查:
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
| 节点状态 NotReady | kubelet 异常、网络中断、资源耗尽(磁盘/内存/PID) | 检查 kubectl describe node <name> 的 Conditions 和 Events,登录节点查看 kubelet 日志 |
| Pod 无法调度到节点 | 节点被 Cordon、污点(Taints)阻止、资源不足 | 检查节点是否可调度,查看节点的 Taints 和资源使用情况 |
| Drain 失败 | PodDisruptionBudget 限制、有本地数据的 Pod | 使用 --delete-emptydir-data 或 --force 参数,或调整 PDB 配置 |
故障排查与常见问题
- API Server 无法访问
- 可能原因:证书或凭据错误、网络策略阻断、API Server 地址填写有误
- 排查建议:验证 kubeconfig、curl API Server
/version、检查集群网络路由
- 命名空间不存在或无权限
- 可能原因:命名空间拼写错误、所用凭据权限不足
- 排查建议:使用有权限用户检查
kubectl get ns或更新凭据
- PVC 长时间 Pending
- 可能原因:没有可匹配的 PV、StorageClass 配置错误、集群存储容量不足
- 排查建议:查看
kubectl describe pvc <name>的 Events,检查 StorageClass 与 PV
- 节点不可用(NotReady)
- 可能原因:节点磁盘/网络/CPU 资源耗尽、kubelet 异常
- 排查建议:查看节点
kubectl describe node <node>与节点日志,检查 kubelet 状态
最佳实践
- 在创建环境时采用最小权限原则,为平台提供专用的 service account 或 kubeconfig
- 对不同场景(dev/test/prod)使用独立命名空间和不同 StorageClass
- 定期执行连通性测试并配置告警(当连通性失败时通知运维)
- 对生产 PVC 做好备份策略,谨慎执行删除或回收操作
