Kubernetes中误删Ingress资源如何恢复?恢复后需支持kubectl get ing查询
误删Kubernetes Ingress的恢复方案
你持有对应Terraform代码的前提下可以100%恢复Ingress资源,恢复后kubectl get ing可正常查询到对象,操作步骤如下:
- 进入对应Terraform代码的工作目录,先验证当前kubeconfig指向的是目标K8s集群,执行
kubectl config current-context确认集群正确性,避免误操作其他集群。 - 执行
terraform init,确保Kubernetes provider版本、后端状态配置和删除Ingress前的配置一致,避免版本兼容问题。 - 执行
terraform plan,核查输出的执行计划:正常情况下会提示Ingress资源不存在,需要执行创建操作,确认计划中仅包含你误删的Ingress的创建逻辑,无其他无关资源的变更。 - 确认计划无误后执行
terraform apply,输入yes确认执行,等待操作完成即可。
验证方法
执行完成后直接运行kubectl get ing -n <Ingress所在命名空间>,即可看到恢复后的Ingress对象,配置和Terraform代码中定义的完全一致。
注意事项
如果Terraform状态文件中仍留存该Ingress的记录,无需手动修改状态文件,plan阶段会自动识别资源缺失并触发重建逻辑。
如果你之前对该Ingress做过未同步到Terraform代码的手动修改,恢复后的Ingress会完全对齐代码配置,手动修改的内容会被覆盖,需要保留手动配置的话请先同步到Terraform代码后再执行apply操作。
内容的提问来源于stack exchange,提问作者Akshay Awate
相关产品推荐
相关产品推荐

