批量删除集群
请求信息
请求行
DELETE /apis/platform.tkestack.io/v1/clusters
批量删除集群。
请求参数
名称 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
allowWatchBookmarks | boolean | 否 | allowWatchBookmarks请求“ BOOKMARK”类型的监控事件。 未实现书签的服务器可能会忽略此标志,并且服务器会酌情发送书签。 客户端不应假定书签以任何特定的时间间隔返回,也不能假定服务器将在会话期间发送任何BOOKMARK事件。 如果不是手表,则忽略此字段。 如果未在apiserver中启用功能门WatchBookmarks,则将忽略此字段。 |
continue | string | 否 | 服务器定义的值,⽤于从服务器中查询更多的返回结果。客户端只能从上⼀个查询结果中获取该值。当查询列表时设置了limit 参数,返回结果未包含服务器上可以查询到的所有数据,此时,会返回 continue 参数,并为 continue 参数赋值⼀个 Token。需要查询更多返回结果时,可将 continue 参数及其值作为查询参数查询更多结果。说明:如果列表配置发⽣变化或查询过期,输⼊此查询参数后,会返回 410 错误码,如果继续输⼊该查询参数进⾏查询,返回的查询结果可能不是最新的数据。 |
dryRun | string | 否 | 当该参数出现时,表示不应该持久化修改。一个无效的或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:All,将处理所有的试运行阶段。 |
fieldSelector | string | 否 | 字段选择器,可通过资源对象的字段过滤、筛选资源对象,默认返回所有资源对象。 |
gracePeriodSeconds | integer | 否 | 对象被删除之前的宽限期,单位:秒。值必须是非负整数。值 0 表示立即删除。如果该值为 nil,则将使用指定类型的默认宽限期。 |
labelSelector | string | 否 | 标签选择器,可通过标签过滤、筛选资源对象,默认返回所有资源对象。 |
limit | integer | 否 | limit 是查询列表请求返回的最大响应数。 如果存在更多项,则服务器会将列表元数据上的 “continue” 字段设置为一个值,该值可与相同的初始查询一起使用用来检索下一组结果。如果所有请求的对象都被过滤掉了,则设置的限制返回的项目数可能少于请求的项目数(最多为零),并且客户端应仅使用 continue 字段的存在来确定是否有更多结果可用。服务器可能选择不支持 limit 参数,并将返回所有可用结果。如果指定了限制,并且 continue 字段为空,则客户端可能会认为没有更多结果可用。如果 watch 为 true,则不支持此字段。 服务器保证使用 continue 时返回的对象与发出单个列表调用无限制地相同,也就是说,在发出第一个请求后,任何创建、修改或删除的对象都不会包含在任何后续的继续请求中。有时这被称为一致快照,并确保使用限制接收非常大结果的较小块的客户端可以确保它们看到所有可能的对象。如果在分块列表期间更新对象,则将返回在计算第一个列表结果时存在的对象版本。 |
orphanDependents | boolean | 否 | 已弃用:请使用 PropagationPolicy,此字段将在 1.7 中弃用。 是否应该孤立依赖对象。 如果为 true / false,则将 “orphan” 终结器添加到对象的终结器列表中/从该列表中删除。 可以设置此字段或 PropagationPolicy,但不能同时设置。 |
propagationPolicy | string | 否 | 是否以及如何执行垃圾回收。 可以设置此字段或 OrphanDependents,但不能两者都设置。 默认策略由 meta.finalizers 中设置的现有终结器和特定于资源的默认策略决定。 可接受的值为:Orphan,孤立; Background,允许垃圾收集器在后台删除依赖项; Foreground,一种级联策略,删除前台中的所有依赖项。 |
resourceVersion | string | 否 | 当指定使用 watch 请求时,将显示在资源的特定版本之后发生的更改。默认从历史开始更改。当为 list 指定时:-如果未设置,则基于 quora -read 标志从远程存储返回结果;-如果它是 0,那么我们只是返回我们目前在缓存,没有保证;-如果设置为非零,那么结果至少与给定的 resourceVersion 一样为最新的值。 |
timeoutSeconds | integer | 否 | list/watch 方法的调用超时时长。这限制了调用的持续时间,不管是否活跃。 |
watch | boolean | 否 | 监视对所描述的资源的更改,并将其作为添加、更新和删除通知的流返回。需要指定 resourceVersion。 |
pretty | string | 否 | 如果为 true,则会将返回结果输出成适合打印的格式。 |
请求体
Content-Type
*/*
请求体示例
当删除一个 API 对象时,DeleteOptions 可能被提供。
{
"apiVersion": "",
"dryRun": [
""
],
"gracePeriodSeconds": 1,
"kind": "",
"orphanDependents": false,
"preconditions": {
"resourceVersion": "",
"uid": ""
},
"propagationPolicy": ""
}
请求体说明
名称 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
apiVersion | string | 否 | 查看公共参数 |
dryRun | array | 否 |
试运行模式。设置该参数表示修改不会写入存储。一个无效的或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。 有效值为 All,表示将运行所有的试运行阶段。
字段路径:dryRun |
dryRun[] | string | 否 |
字段路径:dryRun[] |
gracePeriodSeconds | integer (int64) | 否 |
表示对象被删除之前的持续时间(以秒为单位)。 值必须是非负整数。零值表示立即删除。如果此值为 nil,则将使用指定类型的默认宽限期。如果未指定,则为每个对象的默认值。
字段路径:gracePeriodSeconds |
kind | string | 否 | 查看公共参数 |
orphanDependents | boolean | 否 |
已弃用:该字段将在 1.7 中弃用,请使用 propagationPolicy 字段。 该字段表示依赖对象是否为孤儿对象(Orphan)。如果为 true/false,对象的 finalizers 列表中会被添加上或者移除掉 “orphan” 终结器(Finalizer)。 可以设置此字段或者设置 propagationPolicy 字段,但不能同时设置以上两个字段。
字段路径:orphanDependents |
preconditions | object | 否 |
执行操作(更新、删除等)之前必须满足前提条件。
字段路径:preconditions |
preconditions.resourceVersion | string | 否 |
指定目标资源版本。
字段路径:preconditions.resourceVersion |
preconditions.uid | string | 否 |
指定目标 UID。
字段路径:preconditions.uid |
propagationPolicy | string | 否 |
表示是否以及如何执行垃圾收集。可以设置此字段或 orphanDependents 字段,但不能同时设置二者。 默认策略由 metadata.finalizers 中现有终结器(Finalizer)集合和特定资源的默认策略决定。 可接受的值为: Orphan - 令依赖对象成为孤儿对象;Background -允许垃圾收集器在后台删除依赖项;Foreground - 一个级联策略,前台删除所有依赖项。
字段路径:propagationPolicy |
返回信息
Content-Type
application/json
,
application/yaml
,
application/vnd.kubernetes.protobuf
状态码: 200
OK
返回体示例
Status 是不返回其他对象的请求的返回值。
[
{
"apiVersion": "platform.tkestack.io/v1",
"kind": "Cluster",
"metadata": {
"annotations": {
"cpaas.io/network-type": "kube-ovn",
"platform.tkestack.io/galaxy-ipam-ip": "10.96.0.8",
"platform.tkestack.io/gpu-quota-admission-ip": "10.96.0.9"
},
"creationTimestamp": "2021-06-21T04:10:33Z",
"labels": {
"cluster-type": "Baremetal",
"cpaas.io/arch": "amd64"
},
"name": "global",
"resourceVersion": "11982192",
"selfLink": "/apis/platform.tkestack.io/v1/clusters/global",
"uid": "6cc56a49-8ac3-45ea-916c-10fb67b9472b"
},
"spec": {
"clusterCIDR": "10.199.0.0/16",
"clusterCredentialRef": {
"name": "cc-global"
},
"displayName": "Global",
"dnsDomain": "cluster.local",
"etcd": {
"local": {
"dataDir": "/var/lib/etcd",
"serverCertSANs": [
"etcd",
"etcd.kube-system",
"192.168.0.100"
]
}
},
"features": {
"enableMasterSchedule": true,
"files": [
{
"dst": "/etc/kubernetes/audit/policy.yaml",
"src": "/app/provider/baremetal/audit/policy.yaml"
}
],
"ha": {
"thirdParty": {
"vip": "192.168.0.100",
"vport": 6443
}
},
"ipvs": true,
"skipConditions": [
"EnsureGalaxy",
"EnsureNvidiaDriver",
"EnsureKubernetesImages",
"EnsureMetricsServer"
],
"upgrade": {
"mode": "Auto",
"strategy": {
"drainNodeBeforeUpgrade": false,
"maxUnready": 0
}
}
},
"finalizers": [
"cluster"
],
"kubeletExtraArgs": {
"max-pods": "110"
},
"machines": [
{
"displayName": "",
"ip": "192.168.0.101",
"ipv6": "",
"labels": {
"node-role.kubernetes.io/master": "",
"nvidia-device-enable": "false"
},
"networkDevice": "",
"port": 22,
"proxy": {},
"publicIP": "",
"role": "",
"username": "root"
},
{
"displayName": "",
"ip": "192.168.0.102",
"ipv6": "",
"labels": {
"node-role.kubernetes.io/master": "",
"nvidia-device-enable": "false"
},
"networkDevice": "",
"port": 22,
"proxy": {},
"publicIP": "",
"role": "",
"username": "root"
},
{
"displayName": "",
"ip": "192.168.0.103",
"ipv6": "",
"labels": {
"node-role.kubernetes.io/master": "",
"nvidia-device-enable": "false"
},
"networkDevice": "",
"port": 22,
"proxy": {},
"publicIP": "",
"role": "",
"username": "root"
}
],
"networkDevice": "eth0",
"properties": {
"maxNodePodNum": 256
},
"publicAlternativeNames": [
"192.168.0.101",
"192.168.0.102",
"192.168.0.103",
"192.168.0.100"
],
"serviceCIDR": "10.96.0.0/12",
"tenantID": "default",
"type": "Baremetal",
"version": "1.19.9"
},
"status": {
"addresses": [
{
"host": "192.168.0.101",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.0.102",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.0.103",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.0.100",
"path": "",
"port": 6443,
"type": "Advertise"
}
],
"clusterCIDR": "10.199.0.0/16",
"conditions": [
{
"lastProbeTime": "2021-07-01T07:58:26Z",
"lastTransitionTime": "2021-06-29T02:15:58Z",
"status": "True",
"type": "HealthCheck"
}
],
"dnsIP": "10.96.0.10",
"nodeCIDRMaskSize": 24,
"phase": "Terminating",
"resource": {},
"serviceCIDR": "10.96.0.0/12",
"version": "1.19.9"
}
},
{
"apiVersion": "platform.tkestack.io/v1",
"kind": "Cluster",
"metadata": {
"creationTimestamp": "2021-06-24T04:31:13Z",
"labels": {
"cluster-type": "",
"cpaas.io/arch": "amd64"
},
"name": "import-cluter",
"resourceVersion": "2032899",
"selfLink": "/apis/platform.tkestack.io/v1/clusters/import-cluter",
"uid": "5a5c2132-1811-4be0-bcaf-74ffc87701b2"
},
"spec": {
"clusterCredentialRef": {
"name": "clustercredential-zjvswlqf"
},
"displayName": "Imported-Cluster",
"dnsDomain": "cluster.local",
"features": {
"upgrade": {
"mode": "Auto",
"strategy": {
"drainNodeBeforeUpgrade": false,
"maxUnready": 0
}
}
},
"finalizers": [
"cluster"
],
"properties": {},
"tenantID": "",
"type": "Imported",
"version": ""
},
"status": {
"addresses": [
{
"host": "10.0.132.151",
"path": "",
"port": 6443,
"type": "Advertise"
}
],
"conditions": [
{
"lastProbeTime": "2021-06-24T04:31:13Z",
"lastTransitionTime": "2021-06-24T04:31:13Z",
"status": "True",
"type": "EnsureCreateClusterMark"
},
{
"lastProbeTime": "2021-07-01T08:39:06Z",
"lastTransitionTime": "2021-06-24T04:31:13Z",
"status": "True",
"type": "HealthCheck"
}
],
"phase": "Terminating",
"resource": {},
"version": "1.16.15"
}
}
]
返回体说明
名称 | 类型 | 描述 |
---|---|---|
apiVersion | string | 查看公共参数 |
code | integer (int32) |
此状态的 HTTP 返回码(建议值),如果不设置,将为 0 。
字段路径:code |
details | object |
StatusDetails 是一组附加属性,可以由服务器设置以提供有关响应的附加信息。 状态对象的 Reason 字段定义了将设置哪些属性。 客户端必须忽略与每个属性的定义类型不匹配的字段,并且应该假定任何属性可能为空、无效或未定义。
字段路径:details |
details.causes | array |
Causes 数组包含与 StatusReason 故障相关的更多详细信息。 并非所有 StatusReasons 都可以提供详细的原因。
字段路径:details.causes |
details.causes[] | object |
StatusCause 提供有关 api.Status 故障的更多信息,包括遇到多个错误的情况。
字段路径:details.causes[] |
causes[].field | string |
导致此错误的资源的字段,由其 JSON 序列化命名。可以包含用于嵌套属性的点和后缀符号。数组是 0。字段可能在原因数组中出现多次,因为字段有多个错误。可选。
字段路径:details.causes[].field |
causes[].message | string |
对错误原因的可读描述。 该字段可按原样呈现给读者。
字段路径:details.causes[].message |
causes[].reason | string |
机器可读的错误根因描述。如果为空,说明没有可获取的信息。
字段路径:details.causes[].reason |
details.group | string |
与状态 StatusReason 关联的资源的组属性。
字段路径:details.group |
details.kind | string |
与状态 StatusReason 关联的资源的 kind 属性。某些操作可能与请求的资源类型不同。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
字段路径:details.kind |
details.name | string |
与状态 StatusReason 关联的资源的名称属性(当只有一个名称可以描述时)。
字段路径:details.name |
details.retryAfterSeconds | integer (int32) |
如果指定,为应重试操作前的秒数时间。某些错误可能表明客户端必须采取替代操作——对于这些错误,此字段可能指示在采取替代操作之前需要等待多长时间。
字段路径:details.retryAfterSeconds |
details.uid | string |
资源的 UID。更多信息:http://kubernetes.io/docs/user-guide/identifiers#uids
字段路径:details.uid |
kind | string | 查看公共参数 |
message | string |
该操作状态的可读描述。
字段路径:message |
metadata | object | 查看公共参数 |
reason | string |
关于此操作为何处于 Failure (失败)状态的机器可读描述。 如果该值为空,表示没有可用信息。 Reason 澄清了 HTTP 状态代码,但不会覆盖它。
字段路径:reason |
status | string |
操作的状态,取值为 “Success” 或 “Failure”。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
字段路径:status |