tencent cloud

文档反馈

声明式操作实践

最后更新时间:2024-06-27 11:10:20

    kubectl 支持操作

    CRD 类型
    操作项
    MachineSet
    创建原生节点池
    kubectl create -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 create -f demo-HealthCheckPolicy.yaml
    查看故障自愈规则列表
    kubectl get HealthCheckPolicy
    查看故障自愈规则 YAML 详情
    kubectl describe HealthCheckPolicy HealthCheckPolicy-name
    删除故障自愈规则
    kubectl delete HealthCheckPolicy HealthCheckPolicy-name

    通过 YAML 使用 CRD

    MachineSet

    原生节点池参数填写可参考 原生节点创建参数说明
    apiVersion: node.tke.cloud.tencent.com/v1beta1
    kind: MachineSet
    spec:
    autoRepair: false #故障自愈开关
    displayName: test
    healthCheckPolicyName: #自愈规则名称
    instanceTypes: #机型规格
    - S5.MEDIUM2
    replicas: 1 #节点数
    scaling: #自动扩缩容策略
    createPolicy: ZonePriority
    maxReplicas: 1
    subnetIDs: #节点池子网
    - subnet-nnwwb64w
    template:
    metadata:
    annotations:
    node.tke.cloud.tencent.com/machine-cloud-tags: '[{"tagKey":"xxx","tagValue":"xxx"}]' #腾讯云标签
    spec:
    displayName: tke-np-mpam3v4b-worker #可自定义显示名称
    metadata:
    annotations:
    annotation-key1: annotation-value1 #自定义annotations
    labels:
    label-test-key: label-test-value #自定义labels
    providerSpec:
    type: Native
    value:
    dataDisks: #数据盘参数
    - deleteWithInstance: true
    diskID: ""
    diskSize: 50
    diskType: CloudPremium
    fileSystem: ext4
    mountTarget: /var/lib/containerd
    instanceChargeType: PostpaidByHour #节点付费模式
    keyIDs: #节点登陆SSH参数
    - skey-xxx
    lifecycle: #自定义脚本
    postInit: echo "after node init"
    preInit: echo "before node init"
    management: #management参数设置,包含kubelet\\kernel\\nameserver\\hostname
    securityGroupIDs: #安全组配置
    - sg-xxxxx
    systemDisk: #系统盘配置
    diskSize: 50
    diskType: CloudPremium
    runtimeRootDir: /var/lib/containerd
    taints: #污点 非必填
    - effect: NoExecute
    key: taint-key2
    value: value2
    type: Native
    
    

    kubectl 操作 demo

    MachineSet

    1. 执行命令kubectl create -f machineset-demo.yaml根据上述 YAML 创建 MachineSet:
    
    
    2. 根据命令kubectl get machineset查看 MachineSet np-pjrlok3w 状态。
    
    
    此时控制台上已出现对应节点池,节点在创建中:
    
    
    
    3. 根据命令kubectl describe machineset np-pjrlok3w查看 MachineSet np-pjrlok3w 描述:
    
    
    4. 根据命令 kubectl scale --replicas=2 machineset/np-pjrlok3w 执行节点池扩缩容:
    
    
    5. 根据命令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 删除节点。
    说明:
    如果没有调整节点池期望节点数而直接删除节点,节点池会检测到实际节点数不足以满足声明式节点数量,然后会创建一个新节点并将其加入节点池。因此,我们推荐按照以下方式进行节点删除操作:
    调整期望节点数:kubectl scale --replicas=1 machineset/np-xxxxx
    删除对应节点:kubectl delete machine np-xxxxxx-dtjhd
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持