体验 Shifu 解决报错流程

打开技术文档,首先看了一下目录,简单了解一下框架结构,目录的其中重点是“下载安装” 和 ”本机安装测试“,这两部分。

由于没有学过K8s的缘故,所以刚开始看命令都是一知半解,啃了半天的K8s快速入门,理解基础知识如Pod是什么。

Shifu安装方式

安装前提是:都需要安装Docker,文中是安装 Docker Desktop,我们是Linux安装Docker就行

从文档中总结得出,Shifu安装方式共分为三种:

  1. 下载准备好的Shifu安装包(Docker镜像压缩文件)并安装,Shifu会快捷方便的在Docker中运行
  2. 本机安装中:手动安装Shifu所需要的组件如 kubectl ,kind ,再安装 Shifu仓库 。   
    # clone Shifu仓库
    git clone https://github.com/Edgenesis/shifu.git
    cd shifu
    # 在集群中安装Shifu
    sudo kubectl apply -f pkg/k8s/crd/install/shifu_install.yml
     就是各种组件配置安装很麻烦,并且没有deviceshifu的pods资源,无法进行资源的交互,也就是无法使用shifu的API,使用数字孪生的命令(这也是卡了我许久的原因,一直以为是环境配置错误,所以一直回滚数据,但运行时还是提示无法连接本地主机,或无资源)
  3. 在生产环境部署 Shifu 前您需要先安装 Kubernetes

    Shifu 提供了一键安装的方式,您可以使用如下命令将 Shifu 安装到您的集群中:

    kubectl apply -f https://raw.githubusercontent.com/Edgenesis/shifu/v0.1.1/pkg/k8s/crd/install/shifu_install.yml
    

1.使用Docker运行Shifu

环境别人已经给你搭好了,运行环境在容器中,已经提交为镜像并转为了压缩文件,我们只需要使用就可以了

安装测试

 先根据 “下载安装” 中的

1.2 下载 Shifu 安装包

curl -LO https://demo.shifu.run/demo-content/shifu_demo_aio_linux_amd64.tar

1.3 将所下载的安装包解压到testdir文件夹中

mkdir testdir && tar -xvf shifu_demo_aio_linux_amd64.tar -C testdir && cd testdir

1.4 运行Demo

chmod +x scripts/deviceshifu-demo-aio.sh && sudo ./scripts/deviceshifu-demo-aio.sh run_demo

注意这里运行的时候有一个问题:

 每次都是这里报错,但本机Kind的环境已经配置好了,而且这是Docker里的环境啊。。怎么会找不到?

于是去重启并重新修改了三次环境(回滚重装),都没有解决问题

去报错提示信息  ./scripts/deciceshifu-demo-aio.sh :line 97 这里看看

也就是一个kind命令,在shell文件中执行,找不到kind 这个命令行(这时候我还没有看见执行命令行中的sudo 字段)

于是去在本地安装kind 和 kubctl 环境,并将该文件中的所有kind命令修改为 /usr/local/bin/kind ,kubctl同理。于是可以运行成功并自动创建集合了。

 之后又总结了一下其他的解决办法:

程序是在  sudo ./scripts....   下运行的,所以必须要在刚刚创建的testdir目录下,并且拥有sudo访问该目录的权限,否则会在执行 kind 和 kubctl 命令时,会报sudo: command not found错误

有三个解决办法:

1.删去sudo运行

chmod +x scripts/deviceshifu-demo-aio.sh && ./scripts/deviceshifu-demo-aio.sh run_demo

2.配置 /etc/sudoers 

vim /etc/sudoers

在里面找到secure_path行,添加到你需要访问的路径

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/root/go/bin:

 原理参考如下:

(8条消息) sudo: command not found 的解决方法_ByteSaid的博客-CSDN博客

3.(本人第一次的解决过程)在本地配置安装好环境 如 kubctl和 Kind ,并修改./scripts/deciceshifu-demo-aio.sh   文件,将其中命令 的环境改为本地的命令地址 

​​​​​​​

2.本地主机环境配置测试Shifu

安装Docker -- > 安装kubctl -->  安装 go  --> 通过go/或直接 安装kind --> 创建集群 -->下载镜像并加载到集群 --> 安装Shifu,在集群中安装Shifu 

测试

sudo kubectl get pods -A 

结果:(缺少deviceshifu服务)

NAMESPACE                    NAME                                 READY       STATUS      RESTARTS       AGE

kube-system         coredns-6d4b75cb6d-gjzmw                       1/1        Running        0           34s
kube-system         coredns-6d4b75cb6d-rncrk                       1/1        Running        0           34s
kube-system         etcd-kind-control-plane                        1/1        Running        0           49s
kube-system         kindnet-t69bx                                  1/1        Running        0           34s
kube-system         kube-apiserver-kind-control-plane              1/1        Running        0           49s
kube-system         kube-controller-manager-kind-control-plane     1/1        Running        0           48s
kube-system         kube-proxy-7dfvm                               1/1        Running        0           34s
kube-system         kube-scheduler-kind-control-plane              1/1        Running        0           48s
local-path-storage  local-path-provisioner-9cd9bd544-6zgpv         1/1        Running        0           34s
shifu-crd-system    shifu-crd-controller-manager-94c8c779d-czvkx   2/2        Running        0           17s

Shifu使用

所有的操作都可以总结为以下四步

  • 创建数字孪生
  • 查看pod(可选)
  • 进入nginx,准备调用接口
  • 与数字孪生进行交互(调用程序)

与AGV交互

与温度计交互

与酶标仪交互

与PLC交互

与机械臂交互

与OPC UA设备交互

与 Socket 设备交互

与 MQTT 设备交互

总结:

太过依赖文档给出的命令,此次出错的大部分时间浪费在没有看见  sudo 的调用上,经验也有所不足,才无法快速定位到错误本身,而在配置环境上浪费了大部分时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值