本文是基于github上提供的kubeedge-counter-demo进行的。
1、准备工作
1)kubeedge v1.3.1版本安装成功,并正常运行。
2)本文接下来的验证将使用边缘节点bluejoy-jing进行(如果你参考本文进行相关验证,后续边缘节点名称的配置需要根据你的实际情况进行更改)。
3)本示例要求的kubeedge版本必须是v1.2.1+ 。
4)确保kubernetes apiserver开启了以下配置:
--insecuret-port=8080
--insecure-bind-address=0.0.0.0
可以通过修改/etc/kubernetes/manifests/kube-apiserver.yaml文件,并重启k8s-apiserver组件的pod来进行更改。
5)从github上clone示例代码
mkdir /home/bluejoy/kubeedge/kubeedge-example/
git clone https://github.com/kubeedge/examples.git
2、创建device model和device
2.1 创建device model
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/crds
kubectl create -f kubeedge-counter-model.yaml
2.2 创建device
根据你的实际情况修改matchExpressions:
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/crds
vim kubeedge-counter-instance.yaml
apiVersion: devices.kubeedge.io/v1alpha1
kind: Device
metadata:
name: counter
labels:
description: 'counter'
manufacturer: 'test'
spec:
deviceModelRef:
name: counter-model
nodeSelector:
nodeSelectorTerms:
- matchExpressions:
- key: 'kubernetes.io/hostname'
operator: In
values:
- bluejoy-jing
status:
twins:
- propertyName: status
desired:
metadata:
type: string
value: 'OFF'
reported:
metadata:
type: string
value: '0'
kubectl create -f kubeedge-counter-instance.yaml
3. 运行kubeedge Web App
3.1 修改代码
web-controller-app程序默认监听的端口号为80,此处修改为8089,如下所示:
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/web-controller-app
vim main.go
package main
import (
"github.com/astaxie/beego"
"github.com/kubeedge/examples/kubeedge-counter-demo/web-controller-app/controller"
)
func main() {
beego.Router("/", new(controllers.TrackController), "get:Index")
beego.Router("/track/control/:trackId", new(controllers.TrackController), "get,post:ControlTrack")
beego.Run(":8089")
}
3.2 构建镜像
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/web-controller-app
make all
make docker
注意:构建镜像时,请将源码拷贝到GOPATH对应的路径下,如果开启了go mod请关闭。
3.3 部署kubeedge web app
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/crds
kubectl apply -f kubeedge-web-counter-app.yaml
3.4 查看部署结果
在浏览器中打开如下网址:http://192.168.56.105:8089/
4. 运行Pi Counter App
4.1 构建镜像
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/counter-mapper
make all
make docker
注意:构建镜像时,请将源码拷贝到GOPATH对应的路径下,如果开启了go mod请关闭。
4.2 部署Pi Counter App
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-counter-demo/crds
kubectl apply -f kubeedge-pi-counter-app.yaml
5、通过Web App来控制counter的
5.1 访问Web App
在浏览器中打开如下网址:http://192.168.56.105:8089/
5.2 执行ON命令
在web页面上选择ON,并点击Execute,可以再edge节点上通过以下命令查看执行结果:
docker logs -f counter-container-id
5.3 查看counter STATUS
在web页面上选择STATUS,并点击Execute,会在Web页面上返回counter当前的status,如下所示:
也可以在云端通过如下命令查看status的值:
kubectl get device counter -o yaml -w
5.4 执行OFF命令
在web页面上选择OFF,并点击Execute,可以再edge节点上通过以下命令查看执行结果:
docker logs -f counter-container-id