Skip to content

环境管理

管理你的容器运行环境并提供连接测试工具,帮助你保证 MCP 实例运行的可用性与安全性。当前支持的环境类型包括 Kubernetes 与 Docker(后续可扩展更多环境类型)。

环境概览

环境列表展示每个已注册环境的基本信息:环境名称、环境类型(kubernetes/docker)、默认命名空间、创建时间与修改时间。你可通过界面进入环境详情执行连通性测试、查看 PVC、管理节点等操作。

环境类型

当前支持:kubernetesdocker

命名空间

环境对应的命名空间由你在创建环境时配置;确保填写与目标集群一致的命名空间以便正确部署与访问实例。

环境配置

系统在 UI 中以美化过的 YAML/JSON 格式展示环境配置,便于比较与验证;修改时请谨慎保存。

连通性测试

连通性测试用于验证平台能否正确访问目标环境及其资源(API Server、命名空间、节点、Service 等)。常见检查项:

  • API Server 可达性(通过请求 API Server 获取集群信息)
  • 命名空间是否存在
  • 节点列表与状态
  • 可否在目标命名空间创建临时 Pod(用于网络/镜像检测)

UI 操作:在环境列表的某一行点击“详情”-> 操作 菜单 -> 测试连通性

典型的自动检测步骤(平台执行):

  1. 向 API Server 发起认证与获取集群信息请求(/version/api
  2. 查询目标命名空间是否存在
  3. 列出节点并检查 Ready 状态
  4. 在目标命名空间创建一个短生命周期的检测 Pod(例如 busybox)并执行 curl/ping 测试
  5. 收集并展示检测结果(成功/失败 + 诊断信息)

PVC 管理

PVC(PersistentVolumeClaim)管理用于指定容器环境中持久化存储卷的声明与绑定。MCP CAN 平台提供可视化的 PVC 列表与管理能力,帮助你诊断存储配置问题、监控卷的使用状态。

PVC 列表视图

在环境详情页点击"PVC 管理"进入 PVC 列表,界面展示以下信息:

字段说明示例
PVC 名称PersistentVolumeClaim 的名称data-mysql-0
命名空间PVC 所属的 Kubernetes 命名空间mcp-dev
存储类StorageClass 名称,定义存储类型与供应商local-pathstandard
访问模式ReadWriteOnce (RWO)、ReadOnlyMany (ROX)、ReadWriteMany (RWX)RWO
容量申请的存储容量10Gi
状态Bound(已绑定)、Pending(等待绑定)、Released(已释放)、FailedBound
绑定 Pod当前使用该 PVC 的 Pod 名称mysql-0--(未挂载)
创建时间PVC 创建的时间戳2025-11-05 17:51:26

功能与操作

  1. 查看 PVC 列表

    • 展示当前环境(命名空间)中的所有 PVC
    • 支持按 PVC 名称搜索(右上角搜索框)
    • 支持刷新(🔄 按钮)和筛选(🔍 按钮)
  2. 创建 PVC

    • 点击右上角"+ 创建 PVC"按钮
    • 填写 PVC 名称、命名空间、存储类、访问模式、容量
    • 提交后系统会在 Kubernetes 集群中创建对应的 PVC 资源
  3. 查看 PVC 详情

    • 点击某个 PVC 行,进入详情页
    • 查看绑定的 PV 名称、事件(Events)、状态变更历史
    • 查看挂载该 PVC 的 Pod 列表
  4. 删除 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
操作系统节点运行的操作系统linuxwindows

功能与操作

  1. 查看节点列表

    • 展示集群中的所有节点
    • 支持按节点名称搜索(右上角搜索框)
    • 支持刷新(🔄 按钮)和筛选(🔍 按钮)
  2. 查看节点详情

    • 点击某个节点行,进入详情页
    • 查看节点的资源使用情况(CPU、内存、磁盘)
    • 查看节点标签(Labels)、污点(Taints)、条件(Conditions)
    • 查看节点上运行的 Pod 列表
  3. 节点调度控制

    • Cordon(标记不可调度):阻止新 Pod 调度到该节点,现有 Pod 继续运行
    • Uncordon(恢复调度):允许新 Pod 再次调度到该节点
    • Drain(优雅驱逐):驱逐节点上的所有 Pod(除 DaemonSet),用于节点维护或下线
  4. 节点监控

    • 查看节点的健康状态(Ready、MemoryPressure、DiskPressure、PIDPressure)
    • 监控节点的可分配资源(Allocatable)与已分配资源(Allocated)

使用场景

  • 节点维护:执行 Drain 操作,安全驱逐 Pod 后对节点进行升级、重启或硬件维护
  • 资源调度优化:通过 Cordon 控制特定节点不接受新 Pod,进行资源调整或测试
  • 故障排查:当 Pod 调度失败或节点 NotReady 时,查看节点状态与事件
  • 容量规划:查看节点资源使用情况,评估是否需要扩容集群

操作建议

最佳实践

  • Drain 前检查:执行 Drain 前,确认节点上的关键服务有多副本或可迁移
  • DaemonSet 处理:Drain 时使用 --ignore-daemonsets 参数,避免驱逐系统 Pod(如监控、日志采集)
  • PodDisruptionBudget:为关键应用配置 PDB,防止 Drain 导致服务完全不可用
  • 定期巡检:定期查看节点状态,及时发现 NotReady 或资源压力问题

常见问题排查:

问题可能原因解决方法
节点状态 NotReadykubelet 异常、网络中断、资源耗尽(磁盘/内存/PID)检查 kubectl describe node <name> 的 Conditions 和 Events,登录节点查看 kubelet 日志
Pod 无法调度到节点节点被 Cordon、污点(Taints)阻止、资源不足检查节点是否可调度,查看节点的 Taints 和资源使用情况
Drain 失败PodDisruptionBudget 限制、有本地数据的 Pod使用 --delete-emptydir-data--force 参数,或调整 PDB 配置

故障排查与常见问题

  1. API Server 无法访问
  • 可能原因:证书或凭据错误、网络策略阻断、API Server 地址填写有误
  • 排查建议:验证 kubeconfig、curl API Server /version、检查集群网络路由
  1. 命名空间不存在或无权限
  • 可能原因:命名空间拼写错误、所用凭据权限不足
  • 排查建议:使用有权限用户检查 kubectl get ns 或更新凭据
  1. PVC 长时间 Pending
  • 可能原因:没有可匹配的 PV、StorageClass 配置错误、集群存储容量不足
  • 排查建议:查看 kubectl describe pvc <name> 的 Events,检查 StorageClass 与 PV
  1. 节点不可用(NotReady)
  • 可能原因:节点磁盘/网络/CPU 资源耗尽、kubelet 异常
  • 排查建议:查看节点 kubectl describe node <node> 与节点日志,检查 kubelet 状态

最佳实践

  • 在创建环境时采用最小权限原则,为平台提供专用的 service account 或 kubeconfig
  • 对不同场景(dev/test/prod)使用独立命名空间和不同 StorageClass
  • 定期执行连通性测试并配置告警(当连通性失败时通知运维)
  • 对生产 PVC 做好备份策略,谨慎执行删除或回收操作

Released under the MIT License.