KubeEdge 架构设计及其环境搭建(KubeEdge基础篇)

KubeEdge架构设计

类比

image-20230520024212337

架构设计图

image-20230520024242678

云边通信方式

  • 云: Cloud Hub(公网)
  • 边: Edge Hub(局域网)
  • 通信方式: Websocket ( 双向通信 )
  • 通信数据: 配置数据 + 业务数据

image-20230520024508796

云端架构设计

  • EdgeController

image-20230520024634596

  • DeviceController

image-20230520025036276

边缘端架构设计

Edged

image-20230520025317566

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

image-20230520025706926

  • 数据库缓存, 用于存储边缘端的元数据信息
  • 通过 MetaClientEdged 通信
  • 通过 EdgeHubEdgeController 通信
  • 用的是 sqlite3 数据库(轻量级)
  • 解决的是 EdgeControllerEdged 通信的问题(网络不稳定, 通信不可靠)
  • 这个解决的是 Pod 的运行问题

DeviceTwin

image-20230520030113342

  • 用于存储边缘端的设备信息
  • 通过 EdgeHubEdgeController 通信
  • 用的是 sqlite3 数据库(轻量级)
  • 实现原理和 MetaManager 一样
  • 上面两个数据库都是 sqlite3 数据库, 为什么不合并呢?
    • MetaManager 用于存储边缘端的元数据信息
    • DeviceTwin 用于存储边缘端的设备信息
    • 两者的数据结构不一样, 不能合并
  • 这个解决的是 边缘端介入设备 的运行问题

EventBus/SeriveBus

image-20230520030544319

  • 用于存储边缘端的事件信息
  • 起到一个消息队列的作用
  • 通过 EdgeHubEdgeController 通信
  • 因为有实时性的需求, 所以就不需要用缓存了

K8S VS KubeEdge

Kubernetes 架构设计

image-20230520030844032

    1. 用户创建 Pod , Deployment , Service 等资源
    1. kube-apiserver 接收到用户的请求, 将资源信息存储到 etcd
    1. kube-controller-manager 通过 kube-apiserveretcd 中获取资源信息, 并将资源信息同步到 kubelet
    1. Scheduler 根据节点的运行情况, 将 Pod 分配到某个节点
    1. kubelet 通过 kube-apiserveretcd 中获取资源信息, 并将资源信息同步到 kube-proxy 中, 通过 CRI 创建 Pod

从 Kubernetes 向 KubeEdge 演进

30%的人观点

image-20230520031438327

70%的人观点

image-20230520031502135

KubeEdge 植入 Kubernetes

image-20230520031524520

  • KubeEdge 实现了 Kubernetes 的功能并向边缘端下沉.

Kubernetes环境搭建(进阶)

K8S 版本升级 (KubeEdge 控制面环境安装)

Master 节点

  • 实验机器上面默认没有防火墙 所以将其注释了 如果需要手动取消注释即可

Node 节点

  • 加入集群的命令在 /var/log/install_k8s.log

修改过期时间

查看证书过期时间

KubeEdge 云端环境安装

KubeEdge 边缘端环境安装