You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s默认资源部分恢复:是否存在通用YAML仓库?

误删Kubernetes默认资源的恢复方案

一、有没有通用默认资源YAML仓库?

Kubernetes官方没有专门的“通用默认资源仓库”,但可以通过两种方式获取对应版本的默认资源配置:

  • 从对应版本的Kubernetes源码仓库提取:每个版本的默认APIService、核心组件配置都在源码的cluster/addons或pkg相关目录下,切换到对应版本分支就能找到。
  • 通过kubeadm生成/导出:如果集群是用kubeadm部署的,执行kubeadm init phase系列命令可以重新应用组件配置,加上--dry-run -o yaml参数就能导出YAML到本地,之后用kubectl apply手动恢复。

二、如何匹配对应Kubernetes版本的YAML?

  • 操作源码仓库时,直接切换到集群对应的版本分支(比如git checkout v1.28.0),就能拿到该版本的资源定义。
  • 使用kubeadm时,确保本地kubeadm版本和集群版本一致(用kubeadm version确认),生成的YAML自然匹配集群版本。

三、误删v1.networking.k8s.io APIService的具体恢复步骤

以你提到的场景为例,操作如下:

  1. 确认集群版本:
    kubectl version --short
    
  2. 用kubeadm导出该APIService的YAML配置:
    kubeadm init phase addon apiserver --dry-run -o yaml | grep -A 20 "v1.networking.k8s.io" > networking-apiservice.yaml
    
  3. 检查导出的YAML内容无误后,应用配置:
    kubectl apply -f networking-apiservice.yaml
    
  4. 验证恢复状态:
    kubectl get apiservices v1.networking.k8s.io
    
    当状态显示为Available时,说明恢复成功。

四、部分恢复 vs ETCD全量恢复

  • 单独恢复特定资源(如某类APIService)操作更轻量,不会影响其他正常运行的资源,适合误删单个/少量核心资源的场景。
  • ETCD全量恢复是兜底方案,适合大量核心资源丢失的情况,但操作复杂度高,需要提前有ETCD备份,还会导致集群短暂不可用。

内容的提问来源于stack exchange,提问作者R2D2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:05:18