Kubernetes Nodes in Thalassa Cloud
In Thalassa Cloud, a Kubernetes Node is a virtual machine that runs workloads within a Kubernetes cluster. Nodes are provisioned automatically and managed by the Thalassa Cloud Kubernetes Control Plane based on the Kubernetes Node Pool configured.
Each node includes the following core components:
- Kubelet: Communicates with the API server and manages workloads on the node.
- Container Runtime: Runs and manages containers (Thalassa Cloud supports containerd).
- Kube-Proxy: Handles networking and service discovery within the cluster (can be disabled when using Cilium CNI).
Node Types
Thalassa Cloud offers different types of nodes, depending on the workload requirements:
Node Type | Description |
---|---|
General Purpose Nodes | Standard compute nodes for most workloads. |
High-Memory Nodes | Optimized for memory-intensive applications such as databases and in-memory processing. |
GPU Nodes | Designed for AI, ML, and GPU-accelerated workloads. |
Node Labels in Thalassa Cloud
The Thalassa Cloud Controller Manager automatically assigns specific labels to nodes, which can be used for scheduling, node selection, and workload distribution.
Standard Node Labels
Label | Example Value | Description |
---|---|---|
k8s.thalassa.cloud/region | nl-1 | The region where the node is deployed. |
k8s.thalassa.cloud/zone | nl-1a | The availability zone of the node. |
kubernetes.io/hostname | node-1 | The unique hostname of the node. |
kubernetes.io/os | linux | The operating system of the node. |
kubernetes.io/arch | amd64 | The CPU architecture of the node. |
node.kubernetes.io/instance-type | pgp.large | The instance type of the node. |
k8s.thalassa.cloud/vpc | vpc-123456 | The VPC ID where the node is running. |
k8s.thalassa.cloud/subnet | subnet-abc123 | The subnet ID assigned to the node. |
k8s.thalassa.cloud/node-pool | general-pool | The node pool to which the node belongs. |
k8s.thalassa.cloud/gpu | true | Indicates whether the node has a GPU. |
These labels can be used in node affinity rules and taints/tolerations to ensure workloads are scheduled appropriately.
Example: Scheduling a Pod on a Specific Node Type
To ensure a workload runs on a node of type pgp.large
, use the following nodeSelector:
apiVersion: v1
kind: Pod
metadata:
name: gpu-workload
spec:
nodeSelector:
node.kubernetes.io/instance-type: "pgp.large"
containers:
- name: app
image: my-app:latest
Managing Nodes
Viewing Nodes in a Cluster
To list all nodes in your Kubernetes cluster:
kubectl get nodes
To get more details about a specific node:
kubectl describe node <node-name>
Taints and Tolerations
Taints prevent workloads from being scheduled on certain nodes unless they have a matching toleration.
To add a taint to a node:
kubectl taint nodes node-1 key=value:NoSchedule
To allow a pod to tolerate this taint:
apiVersion: v1
kind: Pod
metadata:
name: tolerant-pod
spec:
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"
containers:
- name: app
image: my-app:latest
Monitoring and Troubleshooting Nodes
Checking Node Resource Usage
kubectl top nodes
Viewing Node Events
kubectl get events --field-selector involvedObject.kind=Node
Summary
Thalassa Cloud provides flexible, scalable, and optimized Kubernetes nodes, automatically provisioned with labels, monitoring, and debugging support.
Key Takeaways:
- Nodes are virtual machines running workloads in a cluster.
- Cloud Controller Manager assigns predefined labels for scheduling and workload placement.
- Taints and tolerations control where workloads can run.
- Monitoring tools provide insights into node health and performance.