View the status of the cluster
Requests
HTTP request
GET /apis/platform.tkestack.io/v1/clusters/{name}/status
read status of the specified Cluster
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | True | name of the Cluster |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| exact | boolean | False | Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18. |
| export | boolean | False | Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18. |
| pretty | string | False | If 'true', then the output is pretty printed. |
Responses
Content-Type
application/json,
application/yaml,
application/vnd.kubernetes.protobuf
Status code: 200
OK
Sample response
Cluster is a Kubernetes cluster in
{
"addresses": [
{
"host": "192.168.16.53",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.16.54",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.16.55",
"path": "",
"port": 6443,
"type": "Real"
},
{
"host": "192.168.16.52",
"path": "",
"port": 6443,
"type": "Advertise"
}
],
"clusterCIDR": "10.199.0.0/16",
"conditions": [
{
"lastProbeTime": "2021-09-12T05:14:34Z",
"lastTransitionTime": "2021-09-12T05:14:34Z",
"status": "True",
"type": "EnsureCopyFiles"
},
{
"lastProbeTime": "2021-09-12T05:14:34Z",
"lastTransitionTime": "2021-09-12T05:14:34Z",
"status": "True",
"type": "EnsurePreClusterInstallHook"
},
{
"lastProbeTime": "2021-09-12T05:14:34Z",
"lastTransitionTime": "2021-09-12T05:14:34Z",
"status": "True",
"type": "EnsurePreInstallHook"
},
{
"lastProbeTime": "2021-09-12T05:14:42Z",
"lastTransitionTime": "2021-09-12T05:14:34Z",
"status": "True",
"type": "EnsurePrepareNode"
},
{
"lastProbeTime": "2021-09-12T05:14:42Z",
"lastTransitionTime": "2021-09-12T05:14:42Z",
"status": "True",
"type": "EnsureClusterComplete"
},
{
"lastProbeTime": "2021-09-12T05:15:27Z",
"lastTransitionTime": "2021-09-12T05:14:42Z",
"status": "True",
"type": "EnsureContainerRuntime"
},
{
"lastProbeTime": "2021-09-12T05:16:13Z",
"lastTransitionTime": "2021-09-12T05:15:27Z",
"status": "True",
"type": "EnsureKubeNode"
},
{
"lastProbeTime": "2021-09-12T05:16:13Z",
"lastTransitionTime": "2021-09-12T05:16:13Z",
"status": "True",
"type": "EnsureNodeHostname"
},
{
"lastProbeTime": "2021-09-12T05:17:09Z",
"lastTransitionTime": "2021-09-12T05:16:13Z",
"status": "True",
"type": "EnsureInitMaster"
},
{
"lastProbeTime": "2021-09-12T05:17:11Z",
"lastTransitionTime": "2021-09-12T05:17:09Z",
"status": "True",
"type": "EnsureStoreCredential"
},
{
"lastProbeTime": "2021-09-12T05:17:12Z",
"lastTransitionTime": "2021-09-12T05:17:11Z",
"status": "True",
"type": "EnsureKubeconfig"
},
{
"lastProbeTime": "2021-09-12T05:19:58Z",
"lastTransitionTime": "2021-09-12T05:17:12Z",
"status": "True",
"type": "EnsureJoin"
},
{
"lastProbeTime": "2021-09-12T05:19:58Z",
"lastTransitionTime": "2021-09-12T05:19:58Z",
"status": "True",
"type": "EnsureCreateClusterMark"
},
{
"lastProbeTime": "2021-09-12T05:19:58Z",
"lastTransitionTime": "2021-09-12T05:19:58Z",
"status": "True",
"type": "EnsureCleanupScript"
},
{
"lastProbeTime": "2021-09-12T05:19:58Z",
"lastTransitionTime": "2021-09-12T05:19:58Z",
"message": "Skip current condition",
"reason": "Skip",
"status": "True",
"type": "EnsureCNI"
},
{
"lastProbeTime": "2021-09-12T05:20:27Z",
"lastTransitionTime": "2021-09-12T05:19:58Z",
"status": "True",
"type": "EnsureUpdateCISConfiguration"
},
{
"lastProbeTime": "2021-09-12T05:20:29Z",
"lastTransitionTime": "2021-09-12T05:20:27Z",
"status": "True",
"type": "EnsureRenewCertsService"
},
{
"lastProbeTime": "2021-09-12T05:20:29Z",
"lastTransitionTime": "2021-09-12T05:20:29Z",
"status": "True",
"type": "EnsurePostInstallHook"
},
{
"lastProbeTime": "2021-09-12T05:20:29Z",
"lastTransitionTime": "2021-09-12T05:20:29Z",
"status": "True",
"type": "EnsurePostClusterInstallHook"
},
{
"lastProbeTime": "2021-09-12T05:20:29Z",
"lastTransitionTime": "2021-09-12T05:20:29Z",
"status": "True",
"type": "EnsureCleanupCluster"
},
{
"lastProbeTime": "2021-09-12T05:20:29Z",
"lastTransitionTime": "2021-09-12T05:20:29Z",
"status": "True",
"type": "EnsureWaitClusterModuleReady"
},
{
"lastProbeTime": "2021-10-12T03:41:07Z",
"lastTransitionTime": "2021-09-12T05:23:51Z",
"status": "True",
"type": "HealthCheck"
}
],
"dnsIP": "10.96.0.10",
"nodeCIDRMaskSize": 24,
"phase": "Running",
"resource": {},
"serviceCIDR": "10.96.0.0/12",
"version": "1.21.2"
}Parameters
| Name | Type | Description |
|---|---|---|
| apiVersion | string | See common parameters |
| kind | string | See common parameters |
| metadata | object | See common parameters |
| spec | object |
ClusterSpec is a description of a cluster.
Path: spec |
| spec.apiServerExtraArgs | object |
api server extra arguments
Path: spec.apiServerExtraArgs |
| spec.clusterCIDR | string |
ClusterCIDR is used to set a separated CIDR for k8s pod
Path: spec.clusterCIDR |
| spec.clusterCredentialRef | object |
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
Path: spec.clusterCredentialRef |
| clusterCredentialRef.name | string |
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Path: spec.clusterCredentialRef.name |
| spec.controllerManagerExtraArgs | object |
controller manager extra arguments
Path: spec.controllerManagerExtraArgs |
| spec.displayName | string |
DisplayName is the display name of the cluster.
Path: spec.displayName |
| spec.dnsDomain | string |
DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
Path: spec.dnsDomain |
| spec.dockerExtraArgs | object |
docker extra arguments
Path: spec.dockerExtraArgs |
| spec.etcd | object |
Etcd contains elements describing Etcd configuration.
Path: spec.etcd |
| etcd.external | object |
ExternalEtcd describes an external etcd cluster. Kubeadm has no knowledge of where certificate files live and they must be supplied.
Path: spec.etcd.external |
| external.caFile | string |
CAFile is an SSL Certificate Authority file used to secure etcd communication. Required if using a TLS connection.
Path: spec.etcd.external.caFile |
| external.certFile | string |
CertFile is an SSL certification file used to secure etcd communication. Required if using a TLS connection.
Path: spec.etcd.external.certFile |
| external.endpoints | array |
Endpoints of etcd members. Required for ExternalEtcd.
Path: spec.etcd.external.endpoints |
| external.endpoints[] | string |
Path: spec.etcd.external.endpoints[] |
| external.keyFile | string |
KeyFile is an SSL key file used to secure etcd communication. Required if using a TLS connection.
Path: spec.etcd.external.keyFile |
| etcd.local | object |
LocalEtcd describes that kubeadm should run an etcd cluster locally
Path: spec.etcd.local |
| local.dataDir | string |
DataDir is the directory etcd will place its data. Defaults to "/var/lib/etcd".
Path: spec.etcd.local.dataDir |
| local.extraArgs | object |
ExtraArgs are extra arguments provided to the etcd binary when run inside a static pod.
Path: spec.etcd.local.extraArgs |
| local.peerCertSANs | array |
PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
Path: spec.etcd.local.peerCertSANs |
| local.peerCertSANs[] | string |
Path: spec.etcd.local.peerCertSANs[] |
| local.serverCertSANs | array |
ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
Path: spec.etcd.local.serverCertSANs |
| local.serverCertSANs[] | string |
Path: spec.etcd.local.serverCertSANs[] |
| spec.features | object |
ClusterFeature records the features that are enabled by the cluster.
Path: spec.features |
| features.authzWebhookAddr | object |
Path: spec.features.authzWebhookAddr |
| authzWebhookAddr.builtin | object |
Path: spec.features.authzWebhookAddr.builtin |
| authzWebhookAddr.external | object |
Path: spec.features.authzWebhookAddr.external |
| external.ip | string |
ip
Path: spec.features.authzWebhookAddr.external.ip |
| external.port | integer (int32) |
port
Path: spec.features.authzWebhookAddr.external.port |
| features.csiOperator | object |
Path: spec.features.csiOperator |
| csiOperator.version | string |
version
Path: spec.features.csiOperator.version |
| features.enableMasterSchedule | boolean |
enable master node schedule or not
Path: spec.features.enableMasterSchedule |
| features.enableMetricsServer | boolean |
enable metrics server or not
Path: spec.features.enableMetricsServer |
| features.files | array |
files
Path: spec.features.files |
| features.files[] | object |
Path: spec.features.files[] |
| files[].dst | string |
destination file, only support regular file
Path: spec.features.files[].dst |
| files[].src | string |
source file, only support regular file
Path: spec.features.files[].src |
| features.gpuType | string |
GPU type
Path: spec.features.gpuType |
| features.ha | object |
Path: spec.features.ha |
| ha.thirdParty | object |
Path: spec.features.ha.thirdParty |
| thirdParty.vip | string |
virtual IP of the HA
Path: spec.features.ha.thirdParty.vip |
| thirdParty.vport | integer (int32) |
virtual port of the HA
Path: spec.features.ha.thirdParty.vport |
| ha.tke | object |
Path: spec.features.ha.tke |
| tke.vip | string |
virtual IP of the HA
Path: spec.features.ha.tke.vip |
| tke.vrid | integer (int32) |
vrid of the HA
Path: spec.features.ha.tke.vrid |
| features.hooks | object |
hooks
Path: spec.features.hooks |
| features.internalLB | boolean |
internalLB on-off
Path: spec.features.internalLB |
| features.ipv6DualStack | boolean |
enable IPV4/IPV6 dual stack or not
Path: spec.features.ipv6DualStack |
| features.ipvs | boolean |
ipvs on-off
Path: spec.features.ipvs |
| features.publicLB | boolean |
publicLB on-off
Path: spec.features.publicLB |
| features.skipConditions | array |
SkipConditions is a set of conditions that needs to be skipped
Path: spec.features.skipConditions |
| features.skipConditions[] | string |
Path: spec.features.skipConditions[] |
| features.upgrade | object |
Path: spec.features.upgrade |
| upgrade.mode | string |
Upgrade mode, default value is Auto.
Path: spec.features.upgrade.mode |
| upgrade.strategy | object |
UpgradeStrategy used to control the upgrade process.
Path: spec.features.upgrade.strategy |
| strategy.drainNodeBeforeUpgrade | boolean |
Whether drain node before upgrade. Draining node before upgrade is recommended. But not all pod running as cows, a few running as pets. If your pod can not accept be expelled from current node, this value should be false.
Path: spec.features.upgrade.strategy.drainNodeBeforeUpgrade |
| strategy.maxUnready | string (int-or-string) |
IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.
Path: spec.features.upgrade.strategy.maxUnready |
| spec.finalizers | array |
Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
Path: spec.finalizers |
| spec.finalizers[] | string |
Path: spec.finalizers[] |
| spec.hostnameAsNodename | boolean |
If true will use hostname as nodename, if false will use machine IP as nodename.
Path: spec.hostnameAsNodename |
| spec.kubeletExtraArgs | object |
kubelet extra arguments
Path: spec.kubeletExtraArgs |
| spec.machines | array |
cluster machine, represent master nodes in the cluster
Path: spec.machines |
| spec.machines[] | object |
ClusterMachine is the master machine definition of cluster.
Path: spec.machines[] |
| machines[].displayName | string |
displayName
Path: spec.machines[].displayName |
| machines[].ip | string |
Path: spec.machines[].ip |
| machines[].ipv6 | string |
ipv6
Path: spec.machines[].ipv6 |
| machines[].labels | object |
Path: spec.machines[].labels |
| machines[].networkDevice | string |
networkDevice
Path: spec.machines[].networkDevice |
| machines[].passPhrase | string (byte) |
Path: spec.machines[].passPhrase |
| machines[].password | string (byte) |
Path: spec.machines[].password |
| machines[].port | integer (int32) |
Path: spec.machines[].port |
| machines[].privateKey | string (byte) |
Path: spec.machines[].privateKey |
| machines[].proxy | object |
MachineProxy is the proxy to connect Machine's ssh.
Path: spec.machines[].proxy |
| proxy.address | string |
address
Path: spec.machines[].proxy.address |
| proxy.password | string (byte) |
password
Path: spec.machines[].proxy.password |
| proxy.type | string |
type
Path: spec.machines[].proxy.type |
| proxy.username | string |
username
Path: spec.machines[].proxy.username |
| machines[].publicIP | string |
publicIP
Path: spec.machines[].publicIP |
| machines[].role | string |
master/node
Path: spec.machines[].role |
| machines[].taints | array |
If specified, the node's taints.
Path: spec.machines[].taints |
| machines[].taints[] | object |
The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint.
Path: spec.machines[].taints[] |
| taints[].effect | string |
Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
Path: spec.machines[].taints[].effect |
| taints[].key | string |
Required. The taint key to be applied to a node.
Path: spec.machines[].taints[].key |
| taints[].timeAdded | string (date-time) |
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Path: spec.machines[].taints[].timeAdded |
| taints[].value | string |
The taint value corresponding to the taint key.
Path: spec.machines[].taints[].value |
| machines[].username | string |
Path: spec.machines[].username |
| spec.networkArgs | object |
network arguments
Path: spec.networkArgs |
| spec.networkDevice | string |
network device
Path: spec.networkDevice |
| spec.networkType | string |
network type
Path: spec.networkType |
| spec.properties | object |
ClusterProperty records the attribute information of the cluster.
Path: spec.properties |
| properties.maxClusterServiceNum | integer (int32) |
max number of cluster service
Path: spec.properties.maxClusterServiceNum |
| properties.maxNodePodNum | integer (int32) |
max number of node pod
Path: spec.properties.maxNodePodNum |
| properties.oversoldRatio | object |
oversold ratio
Path: spec.properties.oversoldRatio |
| spec.publicAlternativeNames | array |
public alternative names
Path: spec.publicAlternativeNames |
| spec.publicAlternativeNames[] | string |
Path: spec.publicAlternativeNames[] |
| spec.scalingMachines | array |
ScalingMachines is a set of the machines that we want to add/delete from the cluster.
Path: spec.scalingMachines |
| spec.scalingMachines[] | object |
ClusterMachine is the master machine definition of cluster.
Path: spec.scalingMachines[] |
| scalingMachines[].displayName | string |
displayName
Path: spec.scalingMachines[].displayName |
| scalingMachines[].ip | string |
Path: spec.scalingMachines[].ip |
| scalingMachines[].ipv6 | string |
ipv6
Path: spec.scalingMachines[].ipv6 |
| scalingMachines[].labels | object |
Path: spec.scalingMachines[].labels |
| scalingMachines[].networkDevice | string |
networkDevice
Path: spec.scalingMachines[].networkDevice |
| scalingMachines[].passPhrase | string (byte) |
Path: spec.scalingMachines[].passPhrase |
| scalingMachines[].password | string (byte) |
Path: spec.scalingMachines[].password |
| scalingMachines[].port | integer (int32) |
Path: spec.scalingMachines[].port |
| scalingMachines[].privateKey | string (byte) |
Path: spec.scalingMachines[].privateKey |
| scalingMachines[].proxy | object |
MachineProxy is the proxy to connect Machine's ssh.
Path: spec.scalingMachines[].proxy |
| proxy.address | string |
address
Path: spec.scalingMachines[].proxy.address |
| proxy.password | string (byte) |
password
Path: spec.scalingMachines[].proxy.password |
| proxy.type | string |
type
Path: spec.scalingMachines[].proxy.type |
| proxy.username | string |
username
Path: spec.scalingMachines[].proxy.username |
| scalingMachines[].publicIP | string |
publicIP
Path: spec.scalingMachines[].publicIP |
| scalingMachines[].role | string |
master/node
Path: spec.scalingMachines[].role |
| scalingMachines[].taints | array |
If specified, the node's taints.
Path: spec.scalingMachines[].taints |
| scalingMachines[].taints[] | object |
The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint.
Path: spec.scalingMachines[].taints[] |
| taints[].effect | string |
Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
Path: spec.scalingMachines[].taints[].effect |
| taints[].key | string |
Required. The taint key to be applied to a node.
Path: spec.scalingMachines[].taints[].key |
| taints[].timeAdded | string (date-time) |
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Path: spec.scalingMachines[].taints[].timeAdded |
| taints[].value | string |
The taint value corresponding to the taint key.
Path: spec.scalingMachines[].taints[].value |
| scalingMachines[].username | string |
Path: spec.scalingMachines[].username |
| spec.schedulerExtraArgs | object |
scheduler extra arguments
Path: spec.schedulerExtraArgs |
| spec.serviceCIDR | string |
ServiceCIDR is used to set a separated CIDR for k8s service, it's exclusive with MaxClusterServiceNum.
Path: spec.serviceCIDR |
| spec.tenantID | string |
tenant id
Path: spec.tenantID |
| spec.type | string |
cluster type, baremetal or imported
Path: spec.type |
| spec.version | string |
cluster version
Path: spec.version |
| status | object |
ClusterStatus represents information about the status of a cluster.
Path: status |
| status.addresses | array |
List of addresses reachable to the cluster.
Path: status.addresses |
| status.addresses[] | object |
ClusterAddress contains information for the cluster's address.
Path: status.addresses[] |
| addresses[].host | string |
The cluster address.
Path: status.addresses[].host |
| addresses[].path | string |
path
Path: status.addresses[].path |
| addresses[].port | integer (int32) |
port
Path: status.addresses[].port |
| addresses[].type | string |
Cluster address type, one of Public, ExternalIP or InternalIP.
Path: status.addresses[].type |
| status.clusterCIDR | string |
ClusterCIDR is used to set a separated CIDR for k8s pod
Path: status.clusterCIDR |
| status.components | array |
cluster component
Path: status.components |
| status.components[] | object |
ClusterComponent records the number of copies of each component of the cluster master.
Path: status.components[] |
| components[].replicas | object |
ClusterComponentReplicas records the number of copies of each state of each component of the cluster master.
Path: status.components[].replicas |
| replicas.available | integer (int32) |
Available
Path: status.components[].replicas.available |
| replicas.current | integer (int32) |
Current
Path: status.components[].replicas.current |
| replicas.desired | integer (int32) |
Desired
Path: status.components[].replicas.desired |
| replicas.updated | integer (int32) |
Updated
Path: status.components[].replicas.updated |
| components[].type | string |
type
Path: status.components[].type |
| status.conditions | array |
cluster conditions
Path: status.conditions |
| status.conditions[] | object |
ClusterCondition contains details for the current condition of this cluster.
Path: status.conditions[] |
| conditions[].lastProbeTime | string (date-time) |
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Path: status.conditions[].lastProbeTime |
| conditions[].lastTransitionTime | string (date-time) |
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Path: status.conditions[].lastTransitionTime |
| conditions[].message | string |
Human-readable message indicating details about last transition.
Path: status.conditions[].message |
| conditions[].reason | string |
Unique, one-word, CamelCase reason for the condition's last transition.
Path: status.conditions[].reason |
| conditions[].status | string |
Status is the status of the condition. Can be True, False, Unknown.
Path: status.conditions[].status |
| conditions[].type | string |
Type is the type of the condition.
Path: status.conditions[].type |
| status.dnsIP | string |
dns ip
Path: status.dnsIP |
| status.locked | boolean |
lock status of the cluster
Path: status.locked |
| status.message | string |
A human readable message indicating details about why the cluster is in this condition.
Path: status.message |
| status.nodeCIDRMaskSize | integer (int32) |
node CIDR mask size
Path: status.nodeCIDRMaskSize |
| status.nodeCIDRMaskSizeIPv4 | integer (int32) |
node CIDR mask size of the IPV4
Path: status.nodeCIDRMaskSizeIPv4 |
| status.nodeCIDRMaskSizeIPv6 | integer (int32) |
node CIDR mask size of the IPV6
Path: status.nodeCIDRMaskSizeIPv6 |
| status.phase | string |
cluster phase
Path: status.phase |
| status.reason | string |
A brief CamelCase message indicating details about why the cluster is in this state.
Path: status.reason |
| status.registryIPs | array |
registry ip
Path: status.registryIPs |
| status.registryIPs[] | string |
Path: status.registryIPs[] |
| status.resource | object |
ClusterResource records the current available and maximum resource quota information for the cluster.
Path: status.resource |
| resource.allocatable | object |
Allocatable represents the resources of a cluster that are available for scheduling. Defaults to Capacity.
Path: status.resource.allocatable |
| resource.allocated | object |
Allocated represents the resources of a cluster that have been allocated
Path: status.resource.allocated |
| resource.capacity | object |
Capacity represents the total resources of a cluster.
Path: status.resource.capacity |
| status.secondaryClusterCIDR | string |
secondary ClusterCIDR, for dual stack IPV4/IPV6.
Path: status.secondaryClusterCIDR |
| status.secondaryServiceCIDR | string |
secondary ServiceCIDR, for dual stack IPV4/IPV6.
Path: status.secondaryServiceCIDR |
| status.serviceCIDR | string |
ServiceCIDR is used to set a separated CIDR for k8s service, it's exclusive with MaxClusterServiceNum.
Path: status.serviceCIDR |
| status.version | string |
cluster version
Path: status.version |