(接上篇)
部署 KubeEdge
在Kubernetes已经安装成功的基础上安装KubeEdge1.1.0,使用Kubernetes的master节点作为其云控制节点。
(1)安装Cloud部分
1)修改Kubernetes master节点配置。
cloud端是KubeEdge中与kube-apiserver交互的组件,在该教程中cloud端与kube-apiserver交互使用的是非安全端口,需要在Kubernetes master节点上做如下修改:
#vi /etc/Kubernetes/manifests/kube-apiserver.yaml
-
--insecure-port=8080
-
--insecure-bind-address=0.0.0.0
2)下载安装包。
可以通过两种方式下载安装包:通过curl直接下载;在KubeEdge的release仓库中下载。
第一种方式:通过curl直接下载。
VERSION="v1.0.0"
OS="linux"
ARCH="amd64"
curl -L "GitHub.com/KubeEdge/Ku…" --output KubeEdge-{OS}-{ARCH}.tar.gz && tar -xf KubeEdge-{VERSION}-{ARCH}.tar.gz -C /etc
注意:通过curl直接下载,由于网速问题一般需要时间比较久,失败的可能较大。
第二种方式:在KubeEdge的release仓库中下载。
进入KubeEdge的GitHub仓库中的KubeEdge v1.0.0 release,下载KubeEdge-v1.0.0-linux-amd64.tar.gz,将下载的安装包上传到Kubernetes master节点的/root目录下,进行如下操作:
#tar -zxvf KubeEdge-v1.0.0-linux-amd64.tar.gz
mv KubeEdge-v1.0.0-linux-amd64 /etc/KubeEdge
3)在Kubernetes master节点生成证书。
生成的证书用来在KubeEdge的edge与cloud端加密通信。证书生成命令如下:
#wget -L raw.GitHubusercontent.com/KubeEdge/Ku…
#chmod +x certgen.sh bash -x ./certgen.sh genCertAndKey edge
注意:上述步骤执行成功之后,会在/etc/KubeEdge下生成ca和certs两个目录。
4)创建device model 和 device CRDs。
在Kubernetes master节点上创建KubeEdge所需的device model和device CRD。创建步骤如下:
#wget -L raw.GitHubusercontent.com/KubeEdge/Ku…
#chmod +x devices_v1alpha1_devicemodel.yaml
#kubectl create -f devices_v1alpha1_devicemodel.yaml
#wget -L raw.GitHubusercontent.com/KubeEdge/Ku…
#chmod +x devices_v1alpha1_device.yaml
#kubectl create -f devices_v1alpha1_device.yaml
5)运行cloud端。
在Kubernetes master节点上运行KubeEdge的cloud端,命令如下:
#cd /etc/KubeEdge/cloud
#./CloudCore
注意:本节为了方便查看进程输出采用了前台驻留进程的方式,除了上述方式外,还可以通过systemd来查看。
(2)安装Edge部分
edge端是KubeEdge运行在边缘设备上的部分,在edge端运行之前需要安装合适的容器运行时,包括docker、containerd和cri-o。本节采用的容器运行时是docker,具体安装步骤可以参考“ 部署docker”小节。
1)准备edge端安装包。
因为证书问题,可以将Kubernetes master节点上的/etc/KubeEdge直接复制到edge节点的/etc下,命令如下:
#scp -r /etc/KubeEdge root@{ edge节点ip }:/etc
2)在Kubernetes master节点上创建edge节点的node资源对象,命令如下:
vi node.json
{
"kind": "Node",
"apiVersion": "v1",
"metadata": {
"name": "edge-node",
"labels": {
"name": "edge-node",
"node-role.Kubernetes.io/edge": ""
}
}
}
kubectl create -f node.json
3)修改edge部分的配置.
修改两部分内容:edge端连接cloud端的ip;edge端的name与在Kubernetes master上创建的node相对应。
● edge端连接cloud端的IP
edgehub.websocket.url:IP修改成Kubernetes master IP端口不变。
edgehub.quic.url:IP修改成Kubernetes master IP端口不变。
● edge端的name与在Kubernetes master上创建的node相对应。
controller:node-id与在Kubernetes master上创建的node的name保持一致。edged:hostname-override与在Kubernetes master上创建的node的name保持一致。
4)运行edge端,命令如下:
#cd /etc/KubeEdge/edge
#./EdgeCore
注意:本节为了方便查看进程输出采用了前台驻留进程的方式,除了上述方式外,还可以通过systemd来查看。
(3)验证KubeEdge是否正常运行。
KubeEdge部署成功后,在Kubernetes master节点通过kubectl工具查看其运行状态,具体如图1-15所示。
图1-15集群节点运行状态
5.部署 E dgeX Foundry
EdgeX Foundry是一套可以用KubeEdge部署到边缘上的IoT SaaS平台。它可以采集、存储IoT设备的数据并将其导出到云数据中心,同时通过向终端设备下发指令对终端设备进行控制。
(1)准备镜像
本节以容器的形式部署EdgeX Foundry,需要在KubeEdge管理的边缘计算节点上准备edgex-ui-go、edgex-vault、edgex-mongo、support-scheduler-go、support-notifications-go、support-logging-go、core-command-go、core-metadata-go、core-data-go、export-distro-go、export-client-go、edgex-vault-worker-go、edgex-vault和edgex-volume共14个镜像。
有两种方法获取这些镜像:
1)直接在dockerhub上下载这些镜像;
2)根据EdgeX Foundry源码仓库中的Makefile文件构建这些镜像。
(2)准备部署EdgeXFdoundry组件所需的yaml文件
需要在前面部署的Kubernetes的master节点上准备与每个镜像对应的yaml文件对其进行部署。绝大多数镜像需要通过deployment进行部署,个别镜像需要Job进行部署,有些镜像还需要service对外暴露服务,这些yaml文件没有固定的标准。目前,EdgeX Foundry官方还没有提供相关yaml文件,建议根据具体场景进行编写。
(3)通过yaml文件部署EdgeX Foundry。
至此,我们已经拥有了Kubernetes的master节点,并将master节点作为云端控制节点,KubeEdge管理的节点作为边缘计算节点的云、边协同的集群。同时,在KubeEdge管理的节点上准备好了部署EdgeX Foundry所需的镜像,在Kubernetes的master节点上准备好了运行EdgeX Foundry镜像所需的yaml文件。接下来,只需在Kubernetes的master节点上通过kubectl命令创建yaml文件中描述的资源对象即可,具体命令如下:
#kubectl create -f {文件名}.yaml
yaml文件中描述的资源对象都创建好,意味着EdgeX Foundry的部署结束。至于,EdgeX Foundry是否部署成功,可以通过如下命令进行验证:
#kubectl get pods –all-namespace
从图1-16可知,部署的EdgeX Foundry相关组件都已正常运行。
图1-16 EdgeXFoundry组件运行状态
最后,通过在浏览器里访问edgex-ui-go(即在浏览器访问http://{EdgeX Foundry所运行主机的ip}:4000)进入EdgeX Foundry的登录页面,具体如图1-17所示。
图1-17 EdgeX Foundry的登录页面
在图1-17中输入对应的Name/Password,就可以成功进入EdgeX Foundry的控制台,具体如图1-18所示。
图1-18 EdgeX Foundry控制台
至此,我们已经拥有了由两个节点组成的,包含云、边、端的完整边缘计算系统。接下来介绍边缘计算系统的管理和在该边缘计算系统上部署应用。
「未完待续……」 点击下方标题可阅读技术文章