名称: k8s-multicluster
描述: 管理多个 Kubernetes 集群,切换上下文,并执行跨集群操作。适用于多集群工作、环境对比或集群生命周期管理场景。
利用 kubectl-mcp-server 的多集群支持,进行跨集群操作和上下文管理。
list_contexts_tool()
kubeconfig_view() # 显示脱敏后的 kubeconfig
CLI 命令:kubectl-mcp-server context <上下文名称>
所有 kubectl-mcp-server 工具均支持 context 参数:
# 从生产集群获取 Pod
get_pods(namespace="default", context="production-cluster")
# 从预发布集群获取 Pod
get_pods(namespace="default", context="staging-cluster")
# 跨集群对比部署
compare_namespaces(
namespace1="production",
namespace2="staging",
resource_type="deployment",
context="production-cluster"
)
同时查询多个集群:
# 生产集群
get_pods(namespace="app", context="prod-us-east")
get_pods(namespace="app", context="prod-eu-west")
# 开发集群
get_pods(namespace="app", context="development")
# 检查所有集群
for context in ["prod-1", "prod-2", "staging"]:
get_nodes(context=context)
get_pods(namespace="kube-system", context=context)
用于管理集群生命周期:
capi_clusters_list_tool(namespace="capi-system")
capi_cluster_get_tool(name="prod-cluster", namespace="capi-system")
capi_cluster_kubeconfig_tool(name="prod-cluster", namespace="capi-system")
capi_machines_list_tool(namespace="capi-system")
capi_machinedeployments_list_tool(namespace="capi-system")
capi_machinedeployment_scale_tool(
name="prod-cluster-md-0",
namespace="capi-system",
replicas=5
)
详细模式请参阅 CONTEXT-SWITCHING.md。
将 Chart 部署到指定集群:
install_helm_chart(
name="nginx",
chart="bitnami/nginx",
namespace="web",
context="production-cluster"
)
list_helm_releases(
namespace="web",
context="staging-cluster"
)
flux_kustomizations_list_tool(
namespace="flux-system",
context="cluster-1"
)
flux_reconcile_tool(
kind="kustomization",
name="apps",
namespace="flux-system",
context="cluster-2"
)
argocd_apps_list_tool(namespace="argocd", context="management-cluster")
# 从源集群读取
get_secrets(namespace="app", context="source-cluster")
# 应用到目标集群(通过清单)
apply_manifest(secret_manifest, namespace="app", context="target-cluster")
配合 Cilium ClusterMesh 或 Istio 多集群:
cilium_nodes_list_tool(context="cluster-1")
istio_proxy_status_tool(context="cluster-2")
命名规范:使用描述性上下文名称
- 例如:prod-us-east-1、staging-eu-west-1
访问控制:不同环境使用独立的 kubeconfig
- 生产环境:大多数用户仅限只读
- 开发环境:开发者拥有完全访问权限
始终指定上下文:避免意外的跨集群操作
# 显式指定更安全
get_pods(namespace="app", context="production")
集群分组:按用途组织
- 生产环境:prod-*
- 预发布环境:staging-*
- 开发环境:dev-*