__ ROS / ROS 2 with Kubernetes __

ROS / ROS 2 with Kubernetes

Tomoya Fujita
Sony R&D US Laboratory

__ ROS / ROS 2 with Kubernetes __

Slides are available

__ ROS / ROS 2 with Kubernetes __

References

__ ROS / ROS 2 with Kubernetes __

Background / Problems

  • Broad use cases (factory, logistics, entertainment, rescue, car, drone...)
  • ROS and ROS 2 Distributed and Connected System.
  • Collaborative and Orchestrated Application.
  • AI/ML Ops Application lifecycle
  • Hardware Acceleration / Platform Dependencies.
__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __

Goal / Requirements

  • Flexible Application Deployment.
  • Network, Device and Storage Abstraction.
  • Application Modularity / Platform Agnostic.
  • Sustainability / Efficiency
  • Observability / Network Policy
__ ROS / ROS 2 with Kubernetes __

Kubernetes

  • Application Deployment and Orchestration.
  • Device Capability and Label Control.
  • Auto-Scaling and Healing.
  • Roll Up/Down, Canary Test.
  • Role Based Access Control.
  • Device-Plugin / Container Device Interfaces.
  • Container Network Interfaces.
  • Observability / Network Policy.
__ ROS / ROS 2 with Kubernetes __

KubeEdge

  • Cloud-Edge Coordination
  • Edge Autonomy
  • Kubernetes-native Support
  • Resource Efficient
__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __

What's missing?

  • Missing CNI supports multicast (Cilium)
  • KubeEdge CNI support (Cilium)
  • Edge Optimization / Configuration
  • KubeEdge Cloud-Native Digital Twin RobotDevOps
  • Far Edge Devices? WasmEdge?
__ ROS / ROS 2 with Kubernetes __

Open Issues

__ ROS / ROS 2 with Kubernetes __

Demo

__ ROS / ROS 2 with Kubernetes __

Check Kuberntes Cluster

__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __

)

__ ROS / ROS 2 with Kubernetes __
__ ROS / ROS 2 with Kubernetes __

Questions?

# Slide deck for https://www.meetup.com/ros-by-the-bay/events/297626997/

# Comment Here

# Comment Here

# Comment Here

# Comment Here

# Closure Remarks

# Comments

# Comments

# Comments

# Comments

### I NEED TO SETUP EVERYTHING BEFORE DOWNLOADING IMAGES TAKE REALLY LONG TIME ### ### # KIND required CNI binaries to bind: # > git clone https://github.com/containernetworking/plugins.git # > cd plugins # > ./build_linux.sh # > export OPT_CNI_BIN_PATH=$(realpath -s bin) # > cd <ros_k8s>/yaml # > sed 's/OPT_CNI_BIN_PATH/${OPT_CNI_BIN_PATH}/' kind-multiple-node.yaml.template | envsubst > kind-multiple-node.yaml ### # create/delete kind cluster: # > <ros_k8s>/yaml # > kind create cluster --config=kind-multiple-node.yaml # > kind delete cluster ### # deploy/delete weavenet: # > kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s-1.11.yaml # > kubectl delete -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s-1.11.yaml

# Demo Commands: # > kubectl get nodes --show-labels # > kubectl label --overwrite nodes kind-control-plane nodetype=master # > kubectl label --overwrite nodes kind-worker nodetype=worker # > kubectl get nodes --show-labels # > kubectl apply -f ros1-multinode.yaml # > kubectl delete -f ros1-multinode.yaml

# Demo Commands: # > kubectl apply -f ros2-sample.yaml # > kubectl exec --stdin --tty <pod> -- /bin/bash # > kubectl delete -f ros2-sample.yaml

# Demo Commands: # > kubectl label --overwrite nodes kind-control-plane nodetype=edgeserver # > kubectl label --overwrite nodes kind-worker nodetype=edgedevice # > kubectl get nodes --show-labels # > kubectl apply -f ros2-config.yaml # > kubectl apply -f ros2-domain-configmap.yaml # > kubectl delete -f ros2-domain-configmap.yaml # > kubectl delete -f ros2-config.yaml

# Comments

# Comments