为了账号安全,请及时绑定邮箱和手机立即绑定

使用client-go删除所有kubernetes资源?

使用client-go删除所有kubernetes资源?

Go
萧十郎 2022-06-13 17:04:51
是否可以使用客户端 go 删除具有特定标签的所有资源?client-go 的版本是 0.17.3我在客户端看到每种资源类型都有一个字段,但它们有不同的接口。type Clientset struct {    *discovery.DiscoveryClient    admissionregistrationV1alpha1 *admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Client    admissionregistrationV1beta1  *admissionregistrationv1beta1.AdmissionregistrationV1beta1Client    appsV1beta1                   *appsv1beta1.AppsV1beta1Client    appsV1beta2                   *appsv1beta2.AppsV1beta2Client    appsV1                        *appsv1.AppsV1Client    auditregistrationV1alpha1     *auditregistrationv1alpha1.AuditregistrationV1alpha1Client    authenticationV1              *authenticationv1.AuthenticationV1Client    authenticationV1beta1         *authenticationv1beta1.AuthenticationV1beta1Client    authorizationV1               *authorizationv1.AuthorizationV1Client    authorizationV1beta1          *authorizationv1beta1.AuthorizationV1beta1Client    autoscalingV1                 *autoscalingv1.AutoscalingV1Client    autoscalingV2beta1            *autoscalingv2beta1.AutoscalingV2beta1Client    autoscalingV2beta2            *autoscalingv2beta2.AutoscalingV2beta2Client    batchV1                       *batchv1.BatchV1Client    batchV1beta1                  *batchv1beta1.BatchV1beta1Client}是否有可能做这样的事情(从这里得到):kubectl delete "$(kubectl api-resources --verbs=delete -o name | tr "\n" "," | sed -e 's/,$//')" --all但是使用客户端去?
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

是的,可以使用 client-go 自己做 kubectl 所做的任何事情。毕竟,kubectl 使用的是 client-go 本身。

您可以查看kubectl 源代码以了解它是如何执行以下操作的:

  1. 获取支持删除动词的 api 资源列表。有关如何执行此操作,请参阅api-resources 命令实现。

  2. 对于找到的每个资源,获取具有您要查找的标签和值的对象列表。查看kubectl 的 get 命令实现以了解如何执行此操作

  3. 删除符合条件的每个对象。请参阅kubectl 的删除命令实现


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信