kubeedge mappers

文章详细介绍了如何在KubeEdge环境中进行Mappers的开发,包括基于SDK创建Mapper、使用golangci-lint进行代码检查、打包镜像并上传到Dockerhub,以及通过Kubernetes的Deployment将应用下发到边端节点。在开发过程中,强调了Mapper的Get方法用于设备采集和MQTT发布,以及配置和调试的方法。最后,提到了解决K8s授权问题的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

之前把kubeedge 云边环境搭建好了,现在开始做mappers开发。包括以下几个步骤
1、基于标准sdk 开发mappers(边端、云端都行,因为测试的时候需要mqtt环境,我用的边端)
2、将mappers 打包镜像,上传docker hub
3、云端使用deployment,将pod下发到边端
系统:ubuntu20

需要用到golangci-lint
我直接用命令snap install golangci-lint

1、开发mappers

下载mappers-go-main

根目录下运行 make template Testtcpserver
可以看到
mappers-go-main/mappers 多了个项目 Testtcpserver
Testtcpserver/driver/client.go 里面有个Get方法,定时调用这个get方法,做设备采集,然后基于mqtt topic 做定时发布

采集项目一般分server、client,如果你写的是server端,那么你要重新写server方法,被动接收client数据,并缓存数据,mapper定时调用get方法的时候,就把缓存的数据,发布到mqtt

这个项目用klog做调试,运行的命令跟klog 等级相关,比如 
klog.V(4).Info("Set result:", err, results) 对应的命令就是
go run main.go --v 4

goland 的对应的参数可以设置
在这里插入图片描述

mappers 有个configmap
对应到testtcpserver/configmap 路径下的 configmap_test.json,这个文件的路径需要配置到testtcpserver下的 config.xml 的configmap

2、打包并上传镜像

我的本地docker hub 地址、端口是192.168.21.12:5000
注:docker 添加本地仓库,还要配置参数

Testtcpserver目录下运行以下命令
maker mapper Testtcpserver // 打包二进制文件
 docker build -t testtcpserver /usr/local/software/edgex/mappers-go-main/mappers/testtcpserver/
 docker tag testtcpserver:latest 192.168.21.12:5000/testtcpserver:v1.0
 docker push 192.168.21.12:5000/testtcpserver:v1.0 //打包镜像并上传到本地docker hub

3、云端下发镜像到边端pod

云端新建deploymentTesttcpserver.yaml 文件如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: testtcpserver
  labels:
    app: testtcpserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: testtcpserver
  template:
    metadata:
      labels:
        app: testtcpserver
    spec:
      hostNetwork: true
      containers:
        - name: testtcpserver
          image: 192.168.21.12:5000/testtcpserver :v1.0 (本地docker hub镜像地址)
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
      # 指定节点运行
      nodeName: k8s-node2 (边端hostname)

···
kubectl create -f deploymentTesttcpserver.yaml
···

注意

打包镜像的时候,会有个k8s 授权的问题,需要把master 的 $HOME/.kube/config 文件拷贝到 镜像里面,不然的话,镜像无法获取授权,就连不到master

1、把 master的$HOME/.kube/config文件拷贝到边端
2、在testtcpserver/config 文件夹下
3、修改Dockerfile
4、包括configmap_negtest.json 文件,也要拷贝到镜像中

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值