KubeEdge 架构设计及其环境搭建(KubeEdge基础篇)
KubeEdge架构设计
类比
架构设计图
云边通信方式
- 云:
Cloud Hub
(公网) - 边:
Edge Hub
(局域网) - 通信方式:
Websocket
( 双向通信 ) - 通信数据:
配置数据
+业务数据
云端架构设计
EdgeController
DeviceController
边缘端架构设计
Edged
Pod 管理
Pod Management
Container Management
Pod 监控
Probe Management
Pod Status Management
Pod Lifecycle Event Generator
Edge 卷管理
Volume Management
Secret Management
ConfigMap Management
Pod 垃圾回收
Container Garbage Collection
Image Garbage Collection
元数据管理
MetaClient
MetaManager
- 数据库缓存, 用于存储边缘端的元数据信息
- 通过
MetaClient
与Edged
通信 - 通过
EdgeHub
与EdgeController
通信 - 用的是
sqlite3
数据库(轻量级) - 解决的是
EdgeController
与Edged
通信的问题(网络不稳定, 通信不可靠) - 这个解决的是
Pod
的运行问题
DeviceTwin
- 用于存储边缘端的设备信息
- 通过
EdgeHub
与EdgeController
通信 - 用的是
sqlite3
数据库(轻量级) - 实现原理和
MetaManager
一样 - 上面两个数据库都是
sqlite3
数据库, 为什么不合并呢?MetaManager
用于存储边缘端的元数据信息DeviceTwin
用于存储边缘端的设备信息- 两者的数据结构不一样, 不能合并
- 这个解决的是
边缘端介入设备
的运行问题
EventBus/SeriveBus
- 用于存储边缘端的事件信息
- 起到一个消息队列的作用
- 通过
EdgeHub
与EdgeController
通信 - 因为有实时性的需求, 所以就不需要用缓存了
K8S VS KubeEdge
Kubernetes 架构设计
- 用户创建
Pod
,Deployment
,Service
等资源
- 用户创建
kube-apiserver
接收到用户的请求, 将资源信息存储到etcd
中
kube-controller-manager
通过kube-apiserver
从etcd
中获取资源信息, 并将资源信息同步到kubelet
中
Scheduler
根据节点的运行情况, 将Pod
分配到某个节点
kubelet
通过kube-apiserver
从etcd
中获取资源信息, 并将资源信息同步到kube-proxy
中, 通过CRI
创建Pod
从 Kubernetes 向 KubeEdge 演进
30%的人观点
70%的人观点
KubeEdge
植入 Kubernetes
KubeEdge
实现了Kubernetes
的功能并向边缘端下沉.
Kubernetes环境搭建(进阶)
K8S 版本升级 (KubeEdge 控制面环境安装)
Master 节点
- 实验机器上面默认没有防火墙 所以将其注释了 如果需要手动取消注释即可
Node 节点
- 加入集群的命令在
/var/log/install_k8s.log
修改过期时间
查看证书过期时间
- https://github.com/kubernetes/kubernetes
- https://github.com/kubernetes/kubernetes/releases/tag/v1.21.6
KubeEdge 云端环境安装
KubeEdge 边缘端环境安装
- 若无法正常加载, 请点击查看 PDF 网页版本: 如何阅读KubeEdge框架源代码?框架源代码.pdf
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZkeqのCoding日志!
评论