首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用client-go删除所有kubernetes资源?

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

Stack Overflow用户
提问于 2020-07-09 15:46:20
回答 1查看 1.9K关注 0票数 0

是否可以使用客户端go删除带有特定标签的所有资源?client-go的版本为0.17.3。

我在客户机中看到,每种资源类型都有一个字段,但它们有不同的接口。

代码语言:javascript
复制
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
    batchV2alpha1                 *batchv2alpha1.BatchV2alpha1Client
    certificatesV1beta1           *certificatesv1beta1.CertificatesV1beta1Client
    coordinationV1beta1           *coordinationv1beta1.CoordinationV1beta1Client
    coreV1                        *corev1.CoreV1Client
    eventsV1beta1                 *eventsv1beta1.EventsV1beta1Client
    extensionsV1beta1             *extensionsv1beta1.ExtensionsV1beta1Client
    networkingV1                  *networkingv1.NetworkingV1Client
    policyV1beta1                 *policyv1beta1.PolicyV1beta1Client
    rbacV1                        *rbacv1.RbacV1Client
    rbacV1beta1                   *rbacv1beta1.RbacV1beta1Client
    rbacV1alpha1                  *rbacv1alpha1.RbacV1alpha1Client
    schedulingV1alpha1            *schedulingv1alpha1.SchedulingV1alpha1Client
    schedulingV1beta1             *schedulingv1beta1.SchedulingV1beta1Client
    settingsV1alpha1              *settingsv1alpha1.SettingsV1alpha1Client
    storageV1beta1                *storagev1beta1.StorageV1beta1Client
    storageV1                     *storagev1.StorageV1Client
    storageV1alpha1               *storagev1alpha1.StorageV1alpha1Client
}

是否可以这样做(从这里获得):

代码语言:javascript
复制
kubectl delete "$(kubectl api-resources --verbs=delete -o name | tr "\n" "," | sed -e 's/,$//')" --all

但利用客户-去?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-09 22:07:41

是的,它是有可能做任何事情,库贝克尔自己做的,使用客户端。毕竟,kubectl使用客户端-go本身。

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

  1. 获取支持delete谓词的api资源列表。有关如何做到这一点,请参阅api-资源命令实现
  2. 对于找到的每个资源,获取一个具有您要查找的标签和值的对象的列表。关于如何做到这一点,请查看kubectl的get命令实现
  3. 删除与条件匹配的每个对象。有关此问题,请参见kubectl的delete命令实现
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62818719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档