2022年山东省职业院校技能大赛高职组云计算赛项试卷第二场-容器云

2022年山东省职业院校技能大赛高职组云计算赛项试卷

目录

【赛程名称】云计算赛项第二场-容器云

需要竞赛软件包以及资料可以私信博主!


【赛程名称】云计算赛项第场-容器云

【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00

说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机:master和node。Chinaskill_Cloud_PaaS.iso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。

某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD (Continuous Integration持续集成、Continuous Delivery持续交付) 成了公司的当务之急,研发团队决定搭建基于Kubernetes 的CICD环境,希望基于这个平台来实现DevOps的部分流程,来减轻开发、部署、运维的负担。

为了能够让公司开发的web应用系统产品能够基于服务器的性能、可靠性、高可用性与方便维护,研发部决定使用微服务架构,实现基于Kubernetes的容器化部署。

节点规划如表1所示。

表1容器云平台节点规划

节点角色

主机名

VCPUS

内存

硬盘

Master、Harbor、CICD

master

4

12G

100G

Worker Node

node

4

12G

100G

【任务1】容器云平台搭建[5分]

【适用平台】私有云

【题目1】平台部署--部署容器云平台[1分]

使用提供的用户名和密码,登录OpenStack私有云平台,当前租户下,已经存在两台云主机,使用CRT工具进行连接,使用kubeeasy工具完成Kubernetes 1.22.1集群的搭建。然后使用nginx镜像在default命名空间下创建一个名为exam的Pod,并为该Pod设置环境变量exam,其值为2022。(搭建kubernetes集群需要用到的iso镜像已经在master节点中)

完成后提交master节点的用户名、密码和IP到答题框。

【题目2】Pod管理--创建Pod[1分]

在default命名空间下使用nginx:latest镜像创建一个QoS类为Burstable的Pod,名称为qos-demo。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目3】平台部署--部署Istio服务网格[1分]

在Kubernetes集群上完成Istio服务网格环境的安装,在default命名空间下使用busybox镜像创建一个名为busybox的Pod,并手动为该Pod注入Sidecar。

完成后提交master节点的用户名、密码和IP到答题框。

【题目4】平台部署--部署KubeVirt虚拟化[0.5分]

在Kubernetes集群上完成KubeVirt虚拟化环境的安装。

完成后提交master节点的用户名、密码和IP到答题框。

【题目5】平台部署--部署Harbor仓库及Helm包管理工具[0.5分]

在master节点上完成Harbor镜像仓库及Helm包管理工具的部署。然后使用nginx镜像自定义一个Chart,Deployment名称为nginx,副本数为1,然后将该Chart部署到default命名空间下,Release名称为web。

完成后提交master节点的用户名、密码和IP到答题框。

【题目6】集群管理--备份ETCD数据[1分]

Kubernetes使用ETCD来存储集群的实时运行数据,为防止服务器宕机导致Kubernetes集群数据丢失,请将Kubernetes集群数据备份到/root/etcd.db中。

完成后提交master节点的IP地址、用户名和密码到答题框。

【任务2】容器化应用搭建:Docker Compose编排部署[7分]

【适用平台】私有云

【题目1】容器化Memcached服务[1分]

在master节点/root/DjangoBlog目录下编写Dockerfile-memcached文件构建blog-memcached:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)完成memcached服务的安装;

(3)声明端口:11211;

(4)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目2】容器化Mariadb服务[1.5分]

在master节点/root/DjangoBlog目录下编写Dockerfile-mariadb文件构建blog-mysql:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装MariaDB服务并设置root用户的密码为root;

(3)创建数据库djangoblog并将sqlfile.sql导入该数据库;

(4)声明端口:3306;

(5)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目3】容器化前端服务[1分]

在master节点/root/DjangoBlog目录下编写Dockerfile-nginx文件构建blog-nginx:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装nginx服务;

(3)使用提供的nginx.conf作为默认的配置文件;

(3)声明端口:80;

(4)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目4】容器化Blog服务[1.5分]

在master节点/root/DjangoBlog目录下编写Dockerfile-blog文件构建blog-service:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装Python3.6环境;

(3)使用pip3工具离线安装requirements.txt中的软件包;

(4)安装DjangoBlog服务;

(5)声明端口:8000;

(6)设置DjangoBlog服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目5】编排部署博客系统[2分]

在master节点/root/DjangoBlog目录下编写docker-compose.yaml文件,具体要求如下:

(1)容器1名称:blog-memcached;镜像:blog-memcached:v1.0;端口映射:11211:11211;

(2)容器2名称:blog-mysql;镜像:blog-mysql:v1.0;端口映射:3306:3306;

(3)容器3名称:blog-nginx;镜像:blog-nginx:v1.0;端口映射:80:8888;

(4)容器4名称:blog-service;镜像:blog-service:v1.0;端口映射:8000:8000。

完成后编排部署该博客系统,并提交master节点的用户名、密码和IP地址到答题框。

【任务3】容器云应用部署:基于Kubernetes构建CICD[8分]

该公司决定采用GitLab +Jenkins来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成GitLab + Jenkins + Kubernetes的CICD环境部署(构建持续集成所需要的所有软件包在软件包BlueOcean.tar.gz中)。CICD应用系统架构如下:

【适用平台】私有云

【题目1】安装Jenkins环境[1.5分]

使用镜像jenkins/Jenkins:latest在Kubernetes集群devops命名空间下完成Jenkins的部署,Deployment和Service名称均为jenkins,要求以NodePort方式将Jenkins的8080端口对外暴露为30880,并使用提供的软件包完成Blue Ocean等离线插件的安装。部署完成后设置Jenkins用户名为jenkins;密码为000000,并在授权策略中配置“任何用户可以做任何事(没有任何限制)”。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目2】安装GitLab环境[1.5分]

使用镜像gitlab/gitlab-ce:latest在Kubernetes集群devops命名空间下完成GitLab的部署,Deployment和Service名称均为gitlab,设置GitLab的root用户密码为admin@123,并以NodePort方式将GitLab的80端口对外暴露为30888。部署完成后新建公开项目springcloud,并将springcloud文件夹中的代码上传到该项目。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目3】配置Jenkins连接GitLab[1分]

在GitLab中生成名为jenkins的“Access Tokens”,在Jenkins中配置GitLab凭据并测试其连通性。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目4】构建CI/CD[4分]

在Jenkins中新建流水线任务springcloud,流水线选择“Pipeline script from SCM”。在springcloud项目中新建Jenkinsfile脚本文件,编写声明式Pipeline,要求完成构建maven项目,然后构建Docker镜像并推送到Harbor仓库的springcloud项目,并基于新构建的镜像完成config和gateway服务自动发布到Kubernetes集群springcloud命名空间下。最后配置Webhook触发构建。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【任务4】容器云服务运维:Kubernetes基于容器的运维[10分]

【适用平台】私有云

【题目1】安全管理--配置Pod安全上下文[0.5分]

使用busybox镜像启动一个名为context-demo的Pod,为该Pod配置安全上下文,要求容器内以用户1000和用户组3000来运行所有进程,并在启动时执行“sleep 1h”命令。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目2】CRD管理--创建自定义资源类型[0.5分]

在Kubernetes集群中自定义一种资源类型Student,API为stable.example.com/v1,单数形式为student,复数形式为students,简写为stu,作用域为命名空间级,然后在default命名空间下创建一个名为exam的Student对象。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目3】HPA管理--创建HPA规则[0.5分]

默认情况下HPA是无法调整伸缩灵敏度的,但不同的业务场景对伸缩灵敏度的要求不一样。要求在default命名空间下使用nginx镜像创建一个名为web的deployment,自定义HPA的伸缩灵敏度,为该deployment创建一个名为web的HPA,扩容时立即新增当前9倍数量的副本数,时间窗口为5s,伸缩范围为1--1000。例如一开始只有1个Pod,当CPU使用率超过80%时,Pod数量变化趋势为:1 → 10 → 100 → 1000。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目4】节点亲和性管理--创建软限制规则的Pod[1分]

在default命名空间下使用nginx镜像运行一个Pod,名称为nginx,要求使用preferredDuringSchedulinglgnoredDuringExecution策略将Pod调度到具有"disktype=ssd"标签的节点。

完成后提交master节点的用户名、密码和IP到答题框。

【题目5】驱逐机制管理--配置节点压力驱逐[0.5分]

设置kubelet数据存储在/apps/data/kubelet目录下,并设置当kubelet的存储空间不足5%,或者当容器运行时文件系统可用存储空间不足5%时开始驱逐Pod。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目6】LimitRange管理--配置内存默认值[0.5分]

创建命名空间default-mem-example,在master节点/root目录下编写YAML文件,具体要求如下:

(1)LimitRange名称:mem-limit-range;

(2)命名空间:default-mem-example;

(3)设置容器默认分配256M的内存请求和512M的内存上限。

完成后使用该YAML文件创建LimitRange,并提交master节点的用户名、密码和IP到答题框。

【题目7】RBAC管理--创建角色并绑定[1分]

创建一个名为deployment-clusterrole的clusterrole,并且对该clusterrole只绑定对Deployment、Daemonset、Statefulset的创建权限。在指定命名空间exam创建一个名为exam-user的serviceaccount,并且将上一步创建clusterrole和该serviceaccount绑定。

完成后提交master节点的用户名、密码和IP地址到答题框。

【题目8】存储卷管理--Pod时间同步[1分]

容器默认的时区采用的是UTC时区,而宿主机采用的是CST时区。使用nginx:latest镜像在default命名空间下创建一个名为exam的Pod,要求Pod时区与宿主机时区同步。

完成后提交master节点的IP、用户名和密码到答题框。

【题目9】流量管理--创建Ingress Gateway[0.5分]

使用提供的软件包ServiceMesh.tar.gz将Bookinfo应用部署到default命名空间下,使用Istio Gateway可以实现应用程序从外部访问,请为Bookinfo应用创建一个名为bookinfo-gateway的网关,指定所有HTTP流量通过80端口流入网格,然后将网关绑定到虚拟服务bookinfo上。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目10】服务网格--创建默认目标规则[1分]

为Bookinfo应用的四个微服务设置默认目标规则,名称分别为productpage、reviews、ratings和details。定义好可用的版本,productpage服务可用的版本为v1,reviews服务可用的版本为v1、v2、v3,ratings服务可用的版本为v1、v2,details服务可用的版本为v1、v2。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目11】服务网格--创建基于用户身份的路由[0.5分]

创建一个名为reviews路由,要求来自名为Jason的用户的所有流量将被路由到服务reviews:v2。

完成后提交master节点的用户名、密码和IP到答题框。

【题目12】VM管理--创建VM[0.5分]

使用镜像fedora-virt:v1.0在default命名空间下创建一台vm,名称为vm-fedora,内存为1G。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目13】存储与卷--创建emptyDisk卷[1分]

使用镜像fedora-virt:v1.0在default命名空间下创建一台vmi,名称为vmi-fedora,并使用emptyDisk卷为vmi挂载一块2G的磁盘。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目14】KubeVirt运维--创建VMI[1分]

将提供的镜像exam.qcow2转换为docker镜像exam:v1.0,然后使用镜像exam:v1.0镜像在default命名空间下创建一台vmi,名称为exam,将虚拟机的80端口以NodePort的方式对外暴露为30082,并使用数据源在启动时将VM的主机名初始化为exam。

完成后提交master节点的IP地址、用户名和密码到答题框。

【任务5】容器云运维开发Kubernetes APIs运维开发[10分]

【适用平台】私有云

【题目1】Kubernetes Python运维脚本开发:使用Restful API方式管理service服务[3分]

在提供的OpenStack私有云平台上,使用k8s-python-dev镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/1DaoYun@2022”。

使用python request库和Kubernetes Restful APIs,在/root目录下,创建api_manager_service.py文件,要求编写python代码,代码实现以下任务:

(1)首先查询查询服务service,如果service名称“nginx-svc”已经存在,先删除。

(2)如果不存在“nginx-svc”,使用service.yaml文件创建服务。

(3)创建完成后,查询该服务的信息,查询的body部分以json格式的文件输出到当前目录下的service_api_dev.json文件中。

(4)然后使用service_update.yaml更新服务端口。

(5)完成更新后,查询该服务的信息,信息通过控制台输出,并通过json格式追加到service_api_dev.json文件后。

编写完成后,提交该云主机的用户名、密码和IP地址到答题框。

【题目2】Python运维开发:基于Kubernetes Python SDK方式管理deployment服务[3分]

在提供的OpenStack私有云平台上,使用“k8s-python-dev”镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/1DaoYun@2022”。使用Kubernetes python SDK的“kubernetes”Python库,在/root目录下,创建sdk_manager_deployment.py文件,要求编写python代码,代码实现以下任务:

(1)首先使用nginx-deployment.yaml文件创建deployment资源。

(2)创建完成后,查询该服务的信息,查询的body部分通过控制台输出,并以json格式的文件输出到当前目录下的deployment_sdk_dev.json文件中。

编写完成后,提交该云主机的用户名、密码和IP地址到答题框。

【题目3】Python运维开发:Pod资源的Restful APIs HTTP服务封装[2分]

编写Python程序实现Pod资源管理程序,将Pod资源管理的封装成Web服务。

在/root目录下创建pod_server.py程序,实现Pod的增删查改等Web访问操作。http.server的host为localhost,端口8889;程序内部实现Kubernetes认证。

提示说明:Python标准库http.server模块,提供了HTTP Server请求封装。

需要实现的Restful API接口如下:

GET /pod/{name} ,查询指定名称{name}的Pod;Response的Body以json格式输出。

POST /pod/{yamlfilename} 创建yaml文件名称为{yamlfilename}的Pod;Response的Body以json格式。

编码完成后,“手工下载”文件服务器主目录所有*.yaml文件到root目录下,“手动执行”所编写pod_server.py程序,提交答案进行检测。

【题目4】Python运维开发:Service资源Restful APIs HTTP服务封装[2分]

编写Python程序实现Service资源管理程序,将Service资源管理的封装成Web服务。

在/root目录下创建service_server.py程序,实现Service的增删查改等Web访问操作。http.server的host为localhost,端口8888;程序内部实现Kubernetes认证。

提示说明:Python标准库http.server模块,提供了HTTP Server请求封装。

需要实现的Restful API接口如下:

GET /services/{name},查询指定名称{name}的Service;Response的Body以json格式输出。

POST /services/{yamlfilename} 创建yaml文件名称为{yamlfilename}的Service;Response的Body以json格式,(手工将文件服务器主目录所有*.yaml文件下载到root目录下)。

DELETE /services/{name};删除指定名称的Service;Response的Body以json格式。

编码完成后,自己手动执行提供Web HTTP服务的service_server.py程序,提交答案进行检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/284515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【揭秘】如何使用LinkedHashMap来实现一个LUR缓存?

LRU&#xff08;Least Recently Used&#xff09;缓存是一种常用的缓存淘汰策略&#xff0c;用于在有限的缓存空间中存储数据。其基本思想是&#xff1a;如果数据最近被访问过&#xff0c;那么在未来它被访问的概率也更高。因此&#xff0c;LRU缓存会保留最近访问过的数据&…

23种设计模式Python版

目录 创建型模式简单工厂模式工厂方法模式抽象工厂模式单例模式原型模式建造者模式 结构型模式适配器模式桥接模式组合模式装饰器模式外观模式享元模式代理模式 行为型模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访…

linux安装rabbitmq

文章目录 前言一、下载安装包二、erlang1.安装依赖2.解压3.安装4.环境变量5.验证 三、rabbitmq1.安装依赖2.解压3.新建目录4.rabbitmq.env.conf5.rabbitmq.conf6.环境变量7.启动8.验证9.停止 四、安装web1.安装插件2.访问控制台界面 五、开机启动1.编写脚本2.设置开机启动3.测试…

服务器的TCP连接限制:如何优化并提高服务器的并发连接数?

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff09;&#xff0c;发送【资料】可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列…

目标检测-One Stage-YOLOv1

文章目录 前言一、YOLOv1的网络结构和流程二、YOLOv1的损失函数三、YOLOv1的创新点总结 前言 前文目标检测-Two Stage-Mask RCNN提到了Two Stage算法的局限性&#xff1a; 速度上并不能满足实时的要求 因此出现了新的One Stage算法簇&#xff0c;YOLOv1是目标检测中One Stag…

TecoGAN视频超分辨率算法

1. 摘要 对抗训练在单图像超分辨率任务中非常成功&#xff0c;因为它可以获得逼真、高度细致的输出结果。因此&#xff0c;当前最优的视频超分辨率方法仍然支持较简单的范数&#xff08;如 L2&#xff09;作为对抗损失函数。直接向量范数作损失函数求平均的本质可以轻松带来时…

C++数据结构-栈

目录 栈顺序栈链栈 栈 栈是允许在表的一端进行插入和删除的线性表。表中允许插入删除的一端是栈顶&#xff0c;栈顶的当前位置是动态变化的&#xff1b;不允许插入和删除的一端是栈底&#xff0c;栈底的位置是不变的。当表中没有元素时称为空栈&#xff0c;插入数据的运算称为…

从 MySQL 的事务 到 锁机制 再到 MVCC

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、事务 1.1 含义 1.2 ACID 二、锁机制 2.1 锁分类 2.2 隔离级别 三、MVCC 3.1 介绍 3.2 隔离级别 3.3 原理 四、总结 前…

python使用动态规划解决不同路径问题

针对二维动态规划&#xff0c;还有一个问题就是关于求不同路径的实例&#xff0c;主要是说明在实际应用的场景中&#xff0c;要理解透彻实际问题的真正目的&#xff0c;就可以灵活实现代码编写。 对于求不同路径问题描述&#xff0c;对于一个机器人&#xff0c;处在一个mxn的网…

【Unity美术】Unity工程师对3D模型需要达到的了解【二】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

基于JavaWeb实验室预约管理系统(源码+数据库+文档)

一、项目简介 本项目是一套基于JavaWeb实验室预约管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;e…

【MATLAB】鲸鱼算法优化混合核极限学习机(WOA-HKELM)时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 鲸鱼算法优化混合核极限学习机&#xff08;WOA-HKELM&#xff09;是一种时序预测算法&#xff0c;它结合了鲸鱼算法和混合核极限学习机&#xff08;HKELM&#xff09;的优点。以下是该算法…

Ts自封装WebSocket心跳重连

WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;允许客户端和服务器之间进行双向实时通信。 所谓心跳机制&#xff0c;就是在长时间不使用WebSocket连接的情况下&#xff0c;通过服务器与客户端之间按照一定时间间隔进行少量数据的通信来达到确认连接稳定的手…

大模型微调LoRA训练与原理

1.什么是LoRA&#xff1f; LoRA的全称是LOW-RANK-ADAPTATION。是一种实现迁移学习的技术手段。 2. 矩阵的秩&#xff1f; 秩是一个向量空间的基向量的个数。例如&#xff1a;二维平面坐标系存在两个基向量&#xff0c;平面上任意的一个向量都可以使用这两个基向量进行线性表示…

PS制作淘宝主图

PS制作淘宝主图 1.制作主图主页1.1新建800x800画板1.2填充前景色&#xff1a;altdel1.3选择圆角矩形&#xff0c;半径501.4按住ALT&#xff0c;往下投复制 2.调色 1.制作主图主页 1.1新建800x800画板 1.2填充前景色&#xff1a;altdel 1.3选择圆角矩形&#xff0c;半径50 居中对…

矿用以太网通讯的电缆传输可行性分析

概述 井下通讯系统是煤矿安全及生产调度必不可少的设施&#xff0c;近年泄露技术、小灵通技术、无线对讲技术及WIFI技术相继应用于煤矿井下。WIFI技术在地面的短距离无线通讯中已有多年的应用&#xff0c;相对于其他的无线宽带技术来说比较成熟可靠。 “泄露”技术及低频穿透技…

VC2019更改文件名称代码

VC2019更改文件名称代码 效果代码 效果 华为手机拍摄的视频默认名称是“VID_20231213_111723”,图片名称是“IMG_20231213_111723”&#xff0c;需要批量将“VID”改为“IMG” 代码 代码&#xff08;C#&#xff09;&#xff1a; csharpStringBuilder sbnew StringBuilder()…

ROS TF坐标变换 - 静态坐标变换

目录 一、静态坐标变换&#xff08;C实现&#xff09;二、静态坐标变换&#xff08;Python实现&#xff09; 如前文所属&#xff0c;ROS通过广播的形式告知各模块的位姿关系&#xff0c;接下来详述这一机制的代码实现。 模块间的位置关系有两种类型&#xff0c;一种是相对固定…

使用spring boot实现异常的统一返回

在这个前后端分离的时代&#xff0c;一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式&#xff0c;不再出现服务器500的错误。 新建一个spring boot项目&#xff0c;并导入knife4j的依赖。 写一个controller控制器&#xff0c;用来是…

Vue中全局事件总线的配置和原理

实现任意组件之间的通信 任意组件通信的原理&#xff1a; 1、实现任意组件之间的通信,需要一个傀儡。这个傀儡既能被vm访问到,也能被VueComponent访问。 2、VueComponent.prototype.proto Vue.prototype为图上1.0黄色的线路。是Vue让组件实例对象VueComponent可以访问到Vue原…