名称: k8s-capi
描述: 使用 Cluster API 进行 Kubernetes 集群生命周期管理,包括集群的创建、扩缩容和升级。适用于管理集群基础设施或多集群操作。
使用 kubectl-mcp-server 的 Cluster API 工具(共 11 个)管理 Kubernetes 集群。
capi_detect_tool()
# 列出所有 CAPI 集群
capi_clusters_list_tool(namespace="default")
# 显示信息:
# - 集群名称
# - 阶段(Provisioning, Provisioned, Deleting)
# - 基础设施就绪状态
# - 控制平面就绪状态
capi_cluster_get_tool(name="my-cluster", namespace="default")
# 显示信息:
# - 规格(控制平面、基础设施)
# - 状态(阶段、条件)
# - 网络配置
# 获取工作负载集群的 kubeconfig
capi_cluster_kubeconfig_tool(name="my-cluster", namespace="default")
# 返回用于访问集群的 kubeconfig
capi_machines_list_tool(namespace="default")
# 显示信息:
# - 机器名称
# - 所属集群
# - 阶段(Running, Provisioning, Failed)
# - 提供商 ID
# - 版本
capi_machine_get_tool(name="my-cluster-md-0-xxx", namespace="default")
capi_machinedeployments_list_tool(namespace="default")
# 显示信息:
# - 部署名称
# - 所属集群
# - 副本数(就绪数/总数)
# - 版本
# 扩缩容工作节点
capi_machinedeployment_scale_tool(
name="my-cluster-md-0",
namespace="default",
replicas=5
)
capi_machinesets_list_tool(namespace="default")
capi_machinehealthchecks_list_tool(namespace="default")
# 健康检查会自动修复不健康的机器
# 列出集群模板
capi_clusterclasses_list_tool(namespace="default")
# ClusterClasses 定义了可复用的集群配置
kubectl_apply(manifest="""
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
**元数据:**
name: my-cluster
namespace: default
spec:
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/12
controlPlaneRef:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
name: my-cluster-control-plane
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: AWSCluster
name: my-cluster
""")
kubectl_apply(manifest="""
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
**元数据:**
name: my-cluster-md-0
namespace: default
spec:
clusterName: my-cluster
replicas: 3
selector:
matchLabels:
cluster.x-k8s.io/cluster-name: my-cluster
template:
spec:
clusterName: my-cluster
version: v1.28.0
bootstrap:
configRef:
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
name: my-cluster-md-0
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: AWSMachineTemplate
name: my-cluster-md-0
""")
1. kubectl_apply(cluster_manifest)
2. capi_clusters_list_tool(namespace) # 等待状态变为 Provisioned
3. capi_cluster_kubeconfig_tool(name, namespace) # 获取访问权限
1. capi_machinedeployments_list_tool(namespace)
2. capi_machinedeployment_scale_tool(name, namespace, replicas)
3. capi_machines_list_tool(namespace) # 监控状态
1. # 更新控制平面版本
2. # 更新机器部署版本
3. capi_machines_list_tool(namespace) # 监控滚动更新
1. capi_cluster_get_tool(name, namespace) # 检查条件
2. capi_machines_list_tool(namespace) # 检查机器状态
3. get_events(namespace) # 检查事件
4. # 检查基础设施提供商日志
1. capi_machine_get_tool(name, namespace)
2. get_events(namespace)
3. # 常见问题:
# - 云提供商配额不足
# - 机器模板无效
# - 网络问题