云计算-KubeEdge
KubeEdge边缘计算
1.KubeEdge简介
KubeEdge是一个开源系统,用于将本机容器化的应用程序编排功能扩展到Edge上的主机, 它基于kubernetes构建,并为网络,应用程序提供基本的基础架构支持。云和边缘之间的部署和元数据同步。 Kubeedge已获得Apache 2.0的许可。并且完全免费供个人或商业使用。我们欢迎贡献者!
我们的目标是建立一个开放平台,以支持Edge计算,将原生容器化应用程序编排功能扩展到Edge上的主机,该主机基于kubernetes,并为网络, 应用程序部署以及云与Edge之间的元数据同步提供基础架构支持。
1.架构组成
云端节点(CloudCore) [本地私有云机房、公有云机房中的机器]
CloudHub:云中的通信接口模块。
EdgeController:管理Edge节点。
DeviceController 负责设备管理。
边缘节点(EdgeCore) [部署在距离应用场景最近的节点或者机房]
Edged:在边缘管理容器化的应用程序。
EdgeHub:Edge上的通信接口模块。
EventBus:使用MQTT处理内部边缘通信。
DeviceTwin:它是用于处理设备元数据的设备的软件镜像。
MetaManager:它管理边缘节点上的元数据。
ServiceBus: 接收云上服务请求和边缘应用进行http交互
2.KubeEdge云端节点部署
KubeEdge运行以来kubernetes环境 需要在K8S上层搭建平台
KubeEdge中管理边缘节点就和K8S管理普通节点一般简单
1.基础环境准备
云端K8S需要大于2C4G
在本地创建两台Ubuntu22.04的机器 用于下载本地的部署包 上传至云端节点进行K8S与KubeEdge的部署
Ubuntu操作系统使用ubuntu登录 第一次登录需要修改密码
修改好主机名方便后期辨识
下载软件包
本地ubuntu操作
ubuntu@node-1:~$ curl -O http://172.128.10.10/ISO/zcloud_1.22.1_pass_v1.0.iso
ubuntu@node-1:~$ curl -O http://172.128.10.10/KubeEdge/KubeEdge1.11.zip
ubuntu@node-1:~$ scp KubeEdge1.11.zip root@121.199.41.59:/root
ubuntu@node-1:~$ scp zcloud_1.22.1_pass_v1.0.iso root@121.199.41.59:/root
云端节点搭建K8S
安装解压命令
[root@k8s-master-node1 ~]# yum install -y unzip
拷贝搭建命令
[root@iZbp1d3tnfbvzsyesn45h0Z ~]# mv kubezcloud /usr/local/bin/
安装基础软件包
[root@iZbp1d3tnfbvzsyesn45h0Z ~]# kubezcloud install dependencies --host 172.16.1.21 --user root --password Abc@1234 --offline-file /root/dependencies/base-rpms.tar.gz
安装K8S
[root@iZbp1d3tnfbvzsyesn45h0Z ~]# kubezcloud install kubernetes --master 172.16.1.21 --user root --password Abc@1234 --version 1.22.1 --pod-cidr 10.244.0.0/16 --offline-file /root/kubernetes.tar.gz
CloudCore搭建
如果搭建脚本删除了YUM源
使用该命令添加回
[root@k8s-master-node1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/repo/Centos-7.repo
部署KubeEdge相关组件
解压
[root@k8s-master-node1 KubeEdge1.11]# unzip /root/KubeEdge1.11.zip
查看压缩包内容
[root@k8s-master-node1 KubeEdge1.11]# ls
checksum_kubeedge-v1.11.1-linux-amd64.tar.gz.txt kubeedge_pause.tar
cloudcore.tar kubeedge-v1.11.1-linux-amd64.tar.gz
installation.tar mosquitto.tar
keadm-v1.11.1-linux-amd64.tar.gz pause.tar
kubeedge-1.11.1.tar.gz
加载搭建镜像
[root@k8s-master-node1 KubeEdge1.11]# docker load -i installation.tar
配置安装命令
[root@k8s-master-node1 KubeEdge1.11]# tar xf keadm-v1.11.1-linux-amd64.tar.gz
[root@k8s-master-node1 KubeEdge1.11]# cp keadm-v1.11.1-linux-amd64/keadm/keadm /usr/local/bin/
配置离线安装
由于kubeedge默认会去github拉去最新的软件包 所以我们需要指定相关的参数 同时将离线安装包放置对应目录 才可实现离线安装(不去github拉去软件包)
[root@k8s-master-node1 KubeEdge1.11]# mkdir /etc/kubeedge
拷贝离线文件
[root@k8s-master-node1 KubeEdge1.11]# cp checksum_kubeedge-v1.11.1-linux-amd64.tar.gz.txt kubeedge-v1.11.1-linux-amd64.tar.gz kubeedge-1.11.1.tar.gz /etc/kubeedge/
kubeedge所有资源都是通过CRD的形式注册 所以需要给CRD进行解压 并摆放至对应路径
[root@k8s-master-node1 KubeEdge1.11]# tar xf kubeedge-1.11.1.tar.gz
[root@k8s-master-node1 KubeEdge1.11]# cp -r kubeedge-1.11.1/build/crds/ /etc/kubeedge/
安装
使用二进制形式离线安装
[root@k8s-master-node1 KubeEdge1.11]# keadm deprecated init --advertise-address 121.199.41.59 --kubeedge-version 1.11.1 --tarballpath /etc/kubeedge/
配置CloudCore
配置CloudCore支持一些特性
[root@k8s-master-node1 KubeEdge1.11]# vim /etc/kubeedge/config/cloudcore.yaml
105 router:
106 address: 0.0.0.0
107 enable: true
拷贝service文件
[root@k8s-master-node1 KubeEdge1.11]# cp /etc/kubeedge/cloudcore.service /usr/lib/systemd/system/
杀掉cloudcore进程实现systemctl启动
[root@k8s-master-node1 KubeEdge1.11]# pkill cloudcore
启动cloudcore
[root@k8s-master-node1 KubeEdge1.11]# systemctl enable --now cloudcore
云端节点安全组放通10000-10005
初始化证书
[root@k8s-master-node1 tools]# ./certgen.sh genCertAndKey server
3.KubeEdge边缘节点部署
下载安装包
ubuntu@node-2:~$ curl -O http://172.128.10.10/KubeEdge/KubeEdge1.11.zip
配置DNS
配置DNS并安装unzip
ubuntu@node-1:~$ sudo vim /etc/resolv.conf
nameserver 223.5.5.5
ubuntu@ubuntu-2:~$ sudo apt-get update
ubuntu@node-1:~$ sudo apt-get install unzip
解压安装包
ubuntu@node-1:~$ unzip KubeEdge1.11.zip
安装docker
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y update
sudo apt-get -y install docker-ce
修改docker配置
ubuntu@node-1:~/KubeEdge1.11$ sudo vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
ubuntu@node-1:~/KubeEdge1.11$ sudo systemctl daemon-reload
ubuntu@node-1:~/KubeEdge1.11$ sudo systemctl restart docker
拷贝安装命令
ubuntu@node-1:~/KubeEdge1.11$ tar xf keadm-v1.11.1-linux-amd64.tar.gz
ubuntu@node-1:~/KubeEdge1.11$ sudo cp keadm-v1.11.1-linux-amd64/keadm/keadm /usr/local/bin/
拷贝离线安装包
ubuntu@node-1:~/KubeEdge1.11$ sudo cp checksum_kubeedge-v1.11.1-linux-amd64.tar.gz.txt kubeedge-v1.11.1-linux-amd64.tar.gz kubeedge-1.11.1.tar.gz /etc/kubeedge/
云端节点创建token
[root@k8s-master-node1 KubeEdge1.11]# keadm gettoken
边缘节点加入
ubuntu@node-1:~/KubeEdge1.11$ sudo keadm deprecated join --cloudcore-ipport 121.199.41.58:10000 --kubeedge-version 1.11.1 --token 1fcd96e62bc692430121ebb5f38759fe4fec
b02412fb970e4b0f4996ce7ad982.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTAwMTU4MDh9.kIikGfldQ2RIuXvNbiMCD2AW54iW-agjL2T_8qV4-SY --image-repository docker.io
如果加入失败 如下操作
ubuntu@node-1:~/KubeEdge1.11$ sudo rm -fr /etc/kubeedge/
关闭防火墙
ubuntu@node-1:~/KubeEdge1.11$ sudo systemctl disable ufw
4.开启边缘监控指标收集
使用top命令无法查看到两个节点的监控指标
云端节点证书初始化
[root@k8s-master-node1 ~]# cd /root/KubeEdge1.11/kubeedge-1.11.1/build/tools/
[root@k8s-master-node1 tools]# CLOUDCORE_DOMAINS=121.199.41.59 ./certgen.sh stream
修改云端配置
[root@k8s-master-node1 tools]# vim /etc/kubeedge/config/cloudcore.yaml
43 cloudStream:
44 enable: true
重启云端节点
[root@k8s-master-node1 tools]# systemctl restart cloudcore
边缘节点开启功能
ubuntu@node-1:~/KubeEdge1.11$ c
36 edgeStream:
37 enable: true
重启边缘节点
ubuntu@node-1:~/KubeEdge1.11$ sudo systemctl restart edgecore.service
- 点赞
- 收藏
- 关注作者
评论(0)