TKE 标准集群指南

最佳实践

API 文档

有奖征文|投稿上云技术实践,赢取价值5000元大奖> HOT

kubectl 支持操作

CRD 类型 操作项
MachineSet 创建原生节点池
kubectl ceate -f machineset-demo.yaml
查看原生节点池列表
kubectl get machineset
查看原生节点池 YAML 详情
kubectl describe ms machineset-name
删除原生节点池(包年包月节点池需要在控制台删除)
kubectl delete ms machineset-name
扩容原生节点池
kubectl scale --replicas=3 machineset/machineset-name
Machine 查看原生节点
kubectl get machine
查看原生节点 YAML 详情
kubectl describe ma machine-name
删除原生节点
kubectl delete ma machine-name
HealthCheckPolicy 创建故障检测自愈规则
kubectl ceate -f demo-HealthCheckPolicy.yaml
查看故障自愈规则列表
kubectl kubectl get HealthCheckPolicy
查看故障自愈规则 YAML 详情
kubectl describe HealthCheckPolicy HealthCheckPolicy-name
删除故障自愈规则
kubectl delete HealthCheckPolicy HealthCheckPolicy-name
RollingUpgrade 创建自动升级规则
kubectl ceate -f rollingupgrade.yaml
查看自动升级规则
kubectl get RollingUpgrade
查看自动升级规则 YAML 详情
kubectl describe RollingUpgrade rollingupgrade-name
删除自动升级规则
kubectl delete RollingUpgrade rollingupgrade-name

通过 YAML 使用 CRD

MachineSet

apiVersion: node.tke.cloud.tencent.com/v1beta1
kind: MachineSet
spec:
  type: Native
  displayName: mstest
  replicas: 2
  autoRepair: true
  deletePolicy: Random
  healthCheckPolicyName: test-all
  instanceTypes:
  - C3.LARGE8
  subnetIDs:
  - subnet-xxxxxxxx
  - subnet-yyyyyyyy
  scaling:
    createPolicy: ZonePriority
    maxReplicas: 100
  template:
    spec:
      displayName: mtest
      runtimeRootDir: /var/lib/containerd
      unschedulable: false
      metadata:
        labels:
          key1: "val1"
          key2: "val2"
      providerSpec:
        type: Native
        value:
          instanceChargeType: PostpaidByHour
          lifecycle:
            preInit: "echo hello"
            postInit: "echo world"
          management:
            hosts:
            - Hostnames:
              - lkongtest
              IP: 22.22.22.22
            nameservers:
            - 183.60.83.19
            - 183.60.82.98
            - 8.8.8.8
          metadata:
            creationTimestamp: null
          securityGroupIDs:
          - sg-xxxxxxxx
          systemDisk:
            diskSize: 50
            diskType: CloudPremium

kubectl 操作 demo

MachineSet

  1. 执行命令kubectl create -f machineset-demo.yaml根据上述 YAML 创建 MachineSet:

  2. 根据命令kubectl get machineset查看 MachineSet np-pjrlok3w 状态。此时控制台上已出现对应节点池,节点在创建中:

  1. 根据命令kubectl describe machineset np-pjrlok3w查看 MachineSet np-pjrlok3w 描述:

  2. 根据命令 kubectl scale --replicas=2 machineset/np-pjrlok3w 执行节点池扩缩容:

  3. 根据命令kubectl delete ms np-pjrlok3w 删除节点池。

Machine

  1. 根据命令kubectl get machine查看 Machine 列表,此时控制台上已存在对应节点:

  2. 根据命令kubectl describe ma np-14024r66-nv8bk查看 Machine np-14024r66-nv8bk 描述:

  3. 根据命令kubectl delete ma np-14024r66-nv8bk 删除节点。

说明:

  • 如果没有调整节点池期望节点数而直接删除节点,节点池内会在检测到实际节点数不满足声明式节点数量,创建一个新节点加入节点池。删除节点的推荐操作方式如下:
    1. 调整期望节点数:kubectl scale --replicas=1 machineset/np-xxxxx
    2. 删除对应节点:kubectl delete machine np-xxxxxx-dtjhd
  • 针对包年包月类型的节点,因为涉及到节点销毁退费,因此无法直接通过 kubectl 删除。
目录