fujitatomoya / ros_k8s

Kuberenetes / ROS&ROS2 Cluster Samples
Creative Commons Attribution 4.0 International
192 stars 29 forks source link

Edge worker device offers limited resource to be managed by Kubernetes #26

Closed fujitatomoya closed 8 months ago

fujitatomoya commented 1 year ago

Add the following tutorial to conserve the resource for edge IoT devices.

Overview

Once edge devices join to the cluster, in default all resources will be advertised to cluster resource to be managed by Kubernetes. But considering the use case for edge IoT devices, sometimes we would want to reserve the resource to the host system or application running on the host system directly. To support those cases, edge devices should be able to advertise or offer the limited resource to be managed by Kubernetes to that it can reserve the certain resources running on bare metal system.

Feature Information

fujitatomoya commented 8 months ago

this requires the physical environment especially for edge IoT resource constrained devices, i can use Raspi4 arm64 platform for this tutorial. this is actually generic feature aside from robotics or ROS application, but this is really useful information to manage the edge device resource in edge.

my interests would be,

fujitatomoya commented 8 months ago

(nice to have) can k8s add or remove the resources offered by the node? for example, add one more CPU from the specific node or remove the CPU from it dynamically after the node joins the cluster.

AFAIS, there is no such thing we can do from the api server. the resources Node Allocatable is exposed by kubelet, that said we need to update kubelet systemd service file to change the Node Allocatable resources. I believe that typically we can set the available resource for each edge worker node when it joins to the cluster. and resources are dependent on edge system, so this should be find procedure that user needs to set.