在Kubernetes中运行Shifu并编写一个应用的实践过程
sudo docker ps
Shifu 安装已完成
sudo kubectl get pods -A
sudo kubectl apply -f run_dir/shifu/demo_device/edgedevice-plate-reader
sudo kubectl get pods -A | grep plate
成功启动
进入 nginx
curl "deviceshifu-plate-reader.deviceshifu.svc.cluster.local/get_measurement"
编写代码
package main
import (
"io/ioutil"
"log"
"net/http"
"time"
)
func main() {
targetUrl := "http://deviceshifu-plate-reader.deviceshifu.svc.cluster.local/get_measurement"
req, _ := http.NewRequest("GET", targetUrl, nil)
for {
res, _ := http.DefaultClient.Do(req)
body, _ := ioutil.ReadAll(res.Body)
average := calculateAverage(body)
log.Println("Average:", average)
time.Sleep(2 * time.Second)
}
}
func calculateAverage(data []byte) float64 {
sum := 0
count := 0
for _, value := range data {
sum += int(value)
count++
}
if count > 0 {
return float64(sum) / float64(count)
}
return 0
}
docker 打包
将应用镜像加载到 kind
中
运行容器 Pod
成功运行
每两秒打印一次切片的值,符合程序预期