(接上篇)
运行KubeEdge云组件,命令如下:
#nohup ./CloudCore &
除了上述形式,还可以通过systemd以后台进程的形式运行KubeEdge云组件,命令如下:
#ln KubeEdge/build/tools/CloudCore.service /etc/systemd/system/CloudCore.service
systemctl daemon-reload
systemctl start CloudCore
将KubeEdge云组件设置为开机自启动,命令如下:
#systemctl enable CloudCore
(2)安装KubeEdge的边缘组件
1)编译KubeEdge的边缘组件源码。
下载KubeEdge源码,命令如下:
#git clone GitHub.com/KubeEdge/Ku… KubeEdge
在编译之前确保gcc已经安装,命令如下:
#gcc --version
通过编译源码获得KubeEdge的边缘组件,命令如下:
#cd KubeEdge
#make all WHAT=EdgeCore
编译成功之后,会在./edge下生成可执行文件EdgeCore,将其复制到/usr/bin下即可。
2)从KubeEdge的云组件节点复制Certificates,命令如下:
#scp -r /etc/KubeEdge root@{KubeEdge edge节点IP}:/etc/KubeEdge
3)在KubeEdge的云组件节点为边缘节点创建node对象资源,命令如下:
#kubectl create -f KubeEdge/build/node.json
node.json具体内容如下所示。
| { "kind": "Node", "apiVersion": "v1", "metadata": { "name": "edge-node", "labels": { "name": "edge-node", "node-role.Kubernetes.io/edge": "" } }} |
|---|
4)生成和设置KubeEdge边缘组件的配置文件。
使用EdgeCore可以生成最小化配置文件和默认配置文件。
创建配置文件目录,命令如下:
#mkdir -p /etc/KubeEdge/config/
生成最小化配置文件,命令如下:
#EdgeCore –minconfig > /etc/KubeEdge/config/EdgeCore.yaml
生成默认配置文件,命令如下:
EdgeCore –defaultconfig > /etc/KubeEdge/config/EdgeCore.yaml
执行上述命令后,会在/etc/KubeEdge/config下生成EdgeCore.yaml文件。下面对执行EdgeCore生成的默认配置文件EdgeCore.yaml进行说明,具体如下所示。
| apiVersion: EdgeCore.config.KubeEdge.io/v1alpha1database: dataSource: /var/lib/KubeEdge/EdgeCore.dbkind: EdgeCoremodules: edged: cgroupDriver: cgroupfs clusterDNS: "" clusterDomain: "" devicePluginEnabled: false dockerAddress: unix:///var/run/docker.sock gpuPluginEnabled: false hostnameOverride: your_ip_address podSandboxImage: KubeEdge/pause:3.1 # KubeEdge/pause:3.1 for x86 arch , KubeEdge/pause-arm:3.1 for arm arch, KubeEdge/pause-arm64 for arm64 arch remoteImageEndpoint: unix:///var/run/dockershim.sock remoteRuntimeEndpoint: unix:///var/run/dockershim.sock runtimeType: docker edgehub: heartbeat: 15 # second tlsCaFile: /etc/KubeEdge/ca/rootCA.crt tlsCertFile: /etc/KubeEdge/certs/edge.crt tlsPrivateKeyFile: /etc/KubeEdge/certs/edge.key websocket: enable: true handshakeTimeout: 30 # second readDeadline: 15 # second server: 127.0.0.1:10000 # CloudCore address writeDeadline: 15 # second eventbus: mqttMode: 2 # 0: internal mqtt broker enable only. 1: internal and external mqtt broker enable. 2: external mqtt broker mqttQOS: 0 # 0: QOSAtMostOnce, 1: QOSAtLeastOnce, 2: QOSExactlyOnce. mqttRetain: false # if the flag set true, server will store the message and can be delivered to future subscribers. mqttServerExternal: tcp://127.0.0.1:1883 # external mqtt broker url. mqttServerInternal: tcp://127.0.0.1:1884 # internal mqtt broker url. |
|---|
其中,Modules.edged.hostnameOverride与node.json里的metadata.name保持一致;Modules.edged.nodeIP是KubeEdge边缘节点的IP;
Modules.edgehub.websocket.server是KubeEdge云节点的IP。
「未完待续……」 点击下方标题可阅读技术文章