
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源
去关联
# 如果你是通过pod安装的cloudcore 查看是否开启
#可以通过kubectl edit pod <cloudcore_name> -n kubeedge 修改
kubectl describe cm cloudcore -n kubeedge
.......
router:
enable: true
.......
eventbus
和servicebus
vi /etc/kubeedge/config/edgecore.yaml
metaManager:
contextSendGroup: hub
contextSendModule: websocket
enable: true
metaServer:
enable: true
server: 127.0.0.1:10550
tlsCaFile: /etc/kubeedge/ca/rootCA.crt
tlsCertFile: /etc/kubeedge/certs/server.crt
tlsPrivateKeyFile: /etc/kubeedge/certs/server.key
remoteQueryTimeout: 60
serviceBus:
enable: true
port: 9060
server: 127.0.0.1
timeout: 60
servicebus
和eventbus
,检查你的 /etc/kubeedge/config/edgecore.yaml
kubectl apply -f ruleEndpoint-eventbus.yaml
kubectl apply -f ruleEndpoint-rest.yaml
ruleEndpoint-rest.yaml:
apiVersion: rules.kubeedge.io/v1
kind: RuleEndpoint
metadata:
name: my-rest
labels:
description: test
spec:
ruleEndpointType: "rest"
properties: {}
ruleEndpoint-eventbus.yaml:
apiVersion: rules.kubeedge.io/v1
kind: RuleEndpoint
metadata:
name: my-eventbus
labels:
description: test
spec:
ruleEndpointType: "eventbus"
properties: {}
node_name
为你的边缘节点,targetResource
:用的你的服务器iprule-eventbus-to-rest.yaml:
apiVersion: rules.kubeedge.io/v1
kind: Rule
metadata:
name: my-rule-eventbus-rest
labels:
description: test
spec:
source: "my-eventbus"
sourceResource: {"topic": "test","node_name": "edge-02"}
target: "my-rest"
targetResource: {"resource":"http://yourip/myevents"}
main.go:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"io/ioutil"
)
func main() {
r := gin.Default()
r.POST("/myevents", func(c *gin.Context) {
s, _ := ioutil.ReadAll(c.Request.Body)
fmt.Printf("edge say '%s' ", s)
})
r.Run()
}
go mod tidy
go run main.go
mosquitto
进行测试mosquitto_pub -t 'default/test' -d -m '{"edgemsg":"edge send msg to cloud by eventbus"}'
kubectl apply -f ruleEndpoint-rest.yaml
kubectl apply -f ruleEndpoint-servicebus.yaml
ruleEndpoinr-rest.yaml:
apiVersion: rules.kubeedge.io/v1
kind: RuleEndpoint
metadata:
name: my-rest
labels:
description: test
spec:
ruleEndpointType: "rest"
properties: {}
ruleEndpoint-servicebus.yaml:
apiVersion: rules.kubeedge.io/v1
kind: RuleEndpoint
metadata:
name: my-servicebus
labels:
description: test
spec:
ruleEndpointType: "servicebus"
properties: { "service_port": "8888" }
apiVersion: rules.kubeedge.io/v1
kind: Rule
metadata:
name: my-rule-rest-servicebus
labels:
description: test
spec:
source: "my-rest"
sourceResource: { "path": "/rest" }
target: "my-servicebus"
targetResource: { "path": "/servicebus" }
go mod tidy
go run main.go
main.go:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.POST("/servicebus", func(c *gin.Context) {
s, _ := ioutil.ReadAll(c.Request.Body)
fmt.Printf("edge say '%s' ", s)
})
r.Run(":8888")
}
edge-02
是你边缘节点的名字curl -H "Content-type: application/json" -X POST -d '{"msg":"cloud send"}' http://127.0.0.1:9443/edge-02/default/rest