Cloud Providers /
Deploy and scale node pools on a Kubernetes cluster with Northflank
You can add, configure, scale, and delete node pools on the node pools page in your cluster overview.
Click add node pool to add another pool, and to delete a node pool. Each cluster requires at least one node pool (Azure requires one pool to be the system node pool).
You should increase your nodes or add a node pool if your services are failing to progress from the staging
state, which indicates your cluster is at capacity. You can either increase the number of nodes in a pool, or add another node pool if the capacity of your node pools is exceeded. As each node in a pool is identical, adding another pool will allow you to add nodes of a different type, with autoscaling, spot instances, or larger disk sizes.
You are recommended to provision a cluster with a node size that strikes a balance of node redundancy and resource efficiency, while taking into account your workload's specific requirements. Too few nodes make workloads susceptible to downtime due to node failures and replacements, while too many small nodes are less cost effective as they incur a larger system overhead.
Select node type
The types of node available depend on your selected cloud provider, and you must have sufficient resource quotas available to deploy the desired type and quantity of nodes. Refer to the documentation for your cloud provider to select a type of node with sufficient resources for your workloads.
note
Select node disk
You can select the size of disk to assign to each node in the pool. Each node will use a disk of the specified size as ephemeral storage for workloads, cached image layers, and container logs.
Some node types may also have the option to choose the type of disk to use: SSD or HDD.
Choose availability zone
You must select an availability zone (AZ) for your node pool to be deployed. Availability zones differ according to your cloud provider, cluster region, and selected node type. Not all availability zones in a region may support your chosen node type.
Availability zones represent different facilities within the region of your cluster. You may want to provision multiple node pools in different availability zones to ensure workloads can be scheduled if there is an issue with one availability zone. You might also select a specific availability zone so that your workloads are deployed in the same location as external services, which will reduce latency and network egress costs.
Set node count and autoscaling
Select the number of nodes to create in the pool. Each node will be created with the same specifications defined by the node type.
Autoscaling
You can enable autoscaling to allow the cluster to automatically increase and decrease the number of nodes in the pool based on workload demand. Define a minimum and maximum number of nodes to ensure consistent availability, and to cap usage. Autoscaling can help prevent issues from attempting to run too many workloads for a set number of nodes, but will also mean your billing from your cloud provider will vary if more nodes are deployed.
Use spot instances
You can enable spot instances for a node pool to run workloads at a reduced cost on your chosen cloud provider, but these instances may be restarted at short notice. You may encounter issues provisioning node pools if the amount of available spot instances in a region or availability zone on a cloud provider is reduced.
Spot instances can be a good option to reduce costs for development and testing workloads, but you should ensure production applications can be interrupted and resumed without issue to take advantage of cheaper computing in off-peak hours. Otherwise, your production workloads should not be deployed with spot instances.
Spot instances are not available on Civo clusters.
Set scheduling rules
You can enable or disable different workloads from being scheduled on a node pool in the advanced menu when creating or updating a node pool.
You can configure whether to allow services, jobs, addons, or builds to be deployed to nodes in the pool. This allows you to deploy on node pools with an optimal configuration for a specific type of workload.
Add labels
You can add labels to your node pools to create tags with node affinity rules
You can add labels to new node pools, but they cannot be modified after creation.
Navigate to your cluster and add a new node pool with your desired configuration.
Expand the advanced section and enter as many labels as required, as a name-value pair. This allows you to create rules across different node pools and clusters by testing against values for a specific label.
See deploy your workloads to specific node pools for more information.
Next steps
Manage your Kubernetes cluster
Manage your clusters on other cloud providers using Northflank.
Deploy workloads to your cluster
Deploy services, jobs, and addons to your own cluster, and configure workloads to schedule on specific node pools.
Deploy workloads to GPUs
Create GPU-enabled node pools and deploy your AI, machine learning, and HPC workloads in your own cloud account.