1 openEuler
版本至少在 22.03-LTS-SP1 以上
1 2
| dnf install -y docker conntrack-tools socat dnf install -y kubernetes*
|
1.1 安装集群自动化部署工具
1.1.1 minikube
1 2 3
| curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64 chmod +x minikube-linux-arm64 && sudo mv minikube-linux-arm64 /usr/local/bin/minikube
|
1.1.2 k3s
1.2 启动docker镜像
将当前用户加入 docker 权限组.
1 2
| sudo usermod -aG docker $USER newgrp docker
|
编写 Docker 配置文件.
下面的 Dockerfile 可以试试, 不知道为什么可能安装不了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| FROM openeuler/openeuler:24.03
RUN echo 'nameserver 8.8.8.8' > /etc/resolv.conf && \ echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
RUN echo '[openEulerROS-humble]' > /etc/yum.repos.d/ros.repo && \ echo 'name=openEulerROS-humble' >> /etc/yum.repos.d/ros.repo && \ echo 'baseurl=https://eulermaker.compass-ci.openeuler.openatom.cn/api/ems1/repositories/ROS-SIG-Multi-Version_ros-humble_openEuler-24.03-LTS-TEST4/openEuler%3A24.03-LTS/aarch64/' >> /etc/yum.repos.d/ros.repo && \ echo 'enabled=1' >> /etc/yum.repos.d/ros.repo && \ echo 'gpgcheck=0' >> /etc/yum.repos.d/ros.repo
RUN dnf makecache && \ dnf install -y \ ros-humble-desktop \ python3-pip \ python3-colcon-common-extensions && \ dnf clean all
RUN pip install torch colcon-common-extensions \ pandas seaborn
RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
CMD ["/bin/bash"]
|
构建 Docker 镜像.
1
| docker build -t ros-yolo:test .
|
部署docker集群.
1
| minikube start --driver=docker
|
加载镜像.
1
| minikube image load ros-yolo-openeuler:test
|
简单启一个pod.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| apiVersion: v1 kind: Pod metadata: name: ros-yolo-pod spec: containers: - name: ros-yolo image: ros-yolo-openeuler:test imagePullPolicy: IfNotPresent command: ["sleep", "infinity"] resources: limits: memory: "4Gi" cpu: "2"
|
之后创建 pod.
1
| kubectl apply -f ros-yolo-pod.yaml
|
可以进入 pod 中查看.
1
| kubectl exec -it ros-yolo-pod -- bash
|
一键启动.
1
| kubectl exec ros-yolo-pod -c ros-yolo -- bash -c "cd /ros2_ws && source install/setup.bash && ros2 run image_yolo publisher_node" & kubectl exec ros-yolo-pod -c ros-yolo -- bash -c "cd /ros2_ws && source install/setup.bash && ros2 run image_yolo subscriber_node"
|