You can scale up or scale down the number of Worker nodes in each node pool and add or remove labels on nodepool's nodes. VMware Telco Cloud Automation enables vertical scaling the nodes by increase or decrease vCPUs count and memory and disk size for Classy Standard cluster. You can also configure Machine Health Check along with Nodepool Variable on the nodes and also relocate the vCenter resource for Classy Standard cluster. If a network function with infrastructure requirements is running in this node pool, the scaling-up operation automatically applies all the node customizations on the new nodes.

Prerequisites

The Workload Cluster is in Provisioned status. The Nodepool is in Provisioned status.

Note:
  • When you are vertical scaling the Nodepool's node, it may cause a rolling update.
  • When you relocate the vCenter resource on Nodepool's node, it may cause a rolling update.
  • When you configure the Topology Variable on control plane node, it may cause a rolling update.

Procedure

  1. Log in to the VMware Telco Cloud Automation web interface.
  2. Go to Infrastructure > CaaS Infrastructure > Cluster Instances.
  3. Click the Kubernetes cluster name that you want to configure.
  4. Click Node Pools.
  5. Select the Options () symbol corresponding to the node pool you want to edit and click Edit.
  6. Under VM Placement, edit the following:
    • Edit the Resource Pool to relocated Nodepool's node VM to other vCenter Resource Pool.
    • Edit the VM Folder to relocated Nodepool's node VM to other vCenter VM folder.
    • Edit the Datastore to relocated Nodepool's node VM to other vCenter Datastore.
    • Edit the VM Template to relocated Nodepool's node VM to other vCenter VM Template.
      Note: You can update Resource Pool, VM Folder, and Datastore only for Classy Standard Cluster. If you update Resource Pool, VM Folder, Datastore, and VM Template, the Nodepool node is redeployed due to rollout.
  7. Under VM Size, edit the following:
    • Number of replicas: Scale down or scale up the node pool nodes.
    • Number of vCPUs: Edit the Number of vCPUs. If the underlying ESXi host has hyperthreading enabled and the network function requires NUMA alignment or supports SMT or CPU reservation, the count of CPUs must be even. This ensures that the physical CPU core is used by the same node.
    • Memory: Increase or decrease the memory as required for the node pool.
    • Disk Size: Increase or decrease the disk size as required for the node pool.
      Note: If you update the number of vCPUs, memory, and disk size, the node pool is redeployed due to rollout.
  8. Under Devices, edit the following:
    • Edit the Management Network to relocated Nodepool's node VM to other vCenter Management Network Portgroup.
    • Edit the DNS to new if Management Network if changed other vCenter Management Network Portgroup.
      Note: You can update Management Network and DNS only for Classy Standard Cluster. If you update Management Network and DNS, the Nodepool node is redeployed due to rollout.
  9. Under Labels, click Add Label to configure the node labels.
  10. Under Variables, click Add Variable to specify the worker kubelet flags.
    workerKubeletExtraArgs

    Specify the worker kubelet flags. For example, limit the number of worker nodes with max-pods: 50

    Object

    YAML code.

    Sample code to set the maximum limit of worker pods to 50:
    max-pods: '50'
    read-only-port: '10255'
    max-open-files: '100000'
  11. Edit the Advanced Options as required for the node pool.
    • Maintenance Mode: Select the check box to enable the maintenance mode.
    • Configure Machine Health Check: Select the check box to configure machine health check. You can define conditions under which machines in a cluster are considered unhealthy by using a MachineHealthCheck resource. Machines matching the conditions are automatically remediated.
      • Node Start Up Timeout: It is optional,This option controls the amount of time that the MachineHealthCheck controller waits for a machine to join the cluster before considering the machine unhealthy.
      • Node Unhealthy Conditions: This option can set the Ready, MemoryPressure, DiskPressure, PIDPressure, and NetworkUnavailable conditions. The MachineHealthCheck controller uses the conditions that you set to monitor the health of your control plane and worker nodes. To set the status of a condition, use True, False,or Unknown.
      • Type: Ready, MemoryPressure, DiskPressure, PIDPressure, and NetworkUnavailable.
      • Status: True, False,or Unknown.
      • Timeout: Specify the timeout duration for the node condition. If the condition is met for the duration of the timeout, the machine will be remediated. Long timeouts can result in long periods of downtime for a workload on an unhealthy machine.
    • Node Pool Upgrade Strategy (YAML): Activate or deactivate the node pool upgrade process. If you activate it, during the node pool upgrade process, the existing node is deleted before creating a new node. If you deactivate it, during the node pool upgrade process, the new node is first created and then the existing node is deleted. about the parametes refer to Table1: Node Pool Upgrade Strategy configuration under Configuration section.
  12. Click Apply.
  13. (Optional) In the Node Policy step, you can add secondary network devices. Click Select Policy Profile and choose tca-multi-interface-profile-1.0.0. Under Configuration, click Add to add a network devices, and enter the following information:
    • Interface Name: Enter a name for this device.
    • MTU: Provide the MTU value for the network and this device. The minimum MTU value is 1500 while the maximum value depends on the configuration of network switch.
    • Network Name: Choose the network to be associated.
    • (Optional) Network Configuration: Enter network configuration for this device.
      • Add vlan subinterfaces, following is an example to create 2 vlan subinterfaces: if (<interfaceName>.vl101 and <interfaceName>.vl102) are added against the network device, ${interfaceName} will be replaced automatically with user specified Interface Name for the network device.

        - config:
            - Network.VLAN=${interfaceName}.vl101
            - Network.VLAN=${interfaceName}.vl102
          type: networkd.network
        - config:
            - NetDev.Name=${interfaceName}.vl101
            - NetDev.Kind=vlan
            - VLAN.Id=101
          type: networkd.netdev
        - config:
            - NetDev.Name=${interfaceName}.vl102
            - NetDev.Kind=vlan
            - VLAN.Id=102
          type: networkd.netdev

        To know more, read Edit Node Policy.

  14. Click Next > Update Node Pool.

Results

You have successfully edited the Node Pool configuration of a Kubernetes cluster instance.

Node Pool Upgrade Strategy Configuration

Parameters Description Sample
rollingUpdate.MaxSurge specifies the maximum number of machine the Nodepool is allowed to create at one time. This can be an absolute number of the nodepool replicas count. The default is 1. The value cannot be 0 if MaxUnavailable is 0
rollingUpdate:maxSurge: 1
rollingUpdate.MaxUnavailable specifies the maximum number of machine that are allowed to be unavailable during the rollout. This can be an absolute number of the nodepool replicas count; the default is 0. The value cannot be 0 if maxSurge is 0
rollingUpdate:maxUnavailable: 0
nodeDeletionTimeout is a *metav1.Duration defining how long the controller will attempt to delete the Node from Kubernetes API server to delete the older node during upgrade. A duration of 0 will retry deletion indefinitely. It defaults to 10 seconds on the Machine. nodeDeletionTimeout: 10s
nodeDrainTimeout is a *metav1.Duration defining the total amount of time that the controller will spend on draining a node to delete the older node during upgrade. The default value is 0, meaning that the node can be drained without any time limitations. nodeDrainTimeout: 20m0s
nodeVolumeDetachTimeout is a *metav1.Duration defining how long the controller will spend on waiting for all volumes to be detached to delete the older node during upgrade. The default value is 0, meaning that the volume can be detached without any time limitations. nodeVolumeDetachTimeout: 1m0s