Part01-基础概念与理论知识
1.1 边缘计算基本概念
边缘计算是一种分布式计算范式,将计算和数据存储放在靠近数据源的边缘设备上,以减少延迟、提高响应速度、降低网络带宽消耗。边缘计算的核心特点包括:
- 低延迟:计算在靠近数据源的边缘设备上进行,减少数据传输时间
- 高带宽:减少数据传输到云端的需求,降低网络带宽消耗
- 离线运行:边缘设备可以在网络连接中断时继续运行
- 数据隐私:敏感数据可以在边缘设备上处理,减少数据传输到云端的风险
- 可扩展性:边缘设备可以根据需要灵活部署和扩展
1.2 云原生基本概念
云原生是一种构建和运行应用程序的方法,利用云计算的优势,包括容器化、微服务、DevOps和持续交付。云原生的核心特点包括:
- 容器化:使用容器技术打包应用程序及其依赖
- 微服务:将应用程序拆分为小型、独立的服务
- DevOps:开发和运维的紧密协作
- 持续交付:频繁、可靠地交付应用程序更新
- 弹性伸缩:根据需求自动调整资源
风哥提示:云原生技术为边缘计算提供了标准化、可移植的部署和管理方案,使边缘设备的管理更加高效。
1.3 边缘计算与云原生的关系
边缘计算与云原生相互补充,共同构成了现代分布式系统的基础:
- 容器化技术:容器技术使应用程序在边缘设备和云端都能一致运行
- 编排管理:Kubernetes等编排工具可以管理边缘和云端的容器
- 微服务架构:微服务架构使应用程序可以在边缘和云端灵活部署
- 持续交付:持续交付流程可以将应用程序更新推送到边缘设备
- 统一管理:云原生工具可以统一管理边缘和云端的资源
from PG视频:www.itpux.com
Part02-生产环境规划与建议
2.1 边缘计算架构规划
在规划边缘计算架构时,需要考虑以下因素:
- 边缘设备类型:根据边缘设备的性能、资源和网络条件选择合适的部署方案
- 边缘集群架构:选择集中式或分布式边缘集群架构
- 网络拓扑:设计边缘设备与云端之间的网络连接
- 数据处理策略:确定哪些数据在边缘处理,哪些数据传输到云端
- 安全策略:制定边缘设备的安全防护策略
常见的边缘计算架构包括:
- 层级架构:边缘设备 → 边缘网关 → 区域中心 → 云端
- 星型架构:所有边缘设备直接连接到云端
- mesh架构:边缘设备之间相互连接,形成自组织网络
2.2 云原生集成策略
制定云原生集成策略时,需要考虑以下因素:
- 容器编排:选择合适的容器编排工具,如Kubernetes
- 镜像管理:建立边缘和云端共享的镜像仓库
- 配置管理:使用统一的配置管理工具管理边缘和云端的配置
- 监控与日志:建立统一的监控和日志系统
- CI/CD流程:建立将应用程序更新推送到边缘设备的CI/CD流程
2.3 资源规划与容量评估
在边缘计算环境中,需要进行资源规划和容量评估:
- 计算资源:评估边缘设备的CPU和内存需求
- 存储资源:评估边缘设备的存储需求
- 网络资源:评估边缘设备与云端之间的网络带宽需求
- 电源需求:评估边缘设备的电源需求,特别是在远程或无电网环境
- 扩展性:考虑边缘设备的扩展需求
风哥提示:边缘设备通常资源有限,需要合理规划资源,确保应用程序能够在边缘设备上正常运行。
Part03-生产环境项目实施方案
3.1 边缘K8s集群部署
部署边缘K8s集群的步骤如下:
- 准备边缘设备:确保边缘设备满足Kubernetes的运行要求
- 选择边缘K8s发行版:根据边缘设备的资源和需求选择合适的Kubernetes发行版,如K3s、MicroK8s等
- 部署Kubernetes集群:在边缘设备上部署Kubernetes集群
- 配置网络:配置边缘集群的网络,确保边缘设备之间以及边缘设备与云端之间的通信
- 验证部署:验证边缘K8s集群是否正常运行
部署K3s边缘集群的示例命令:
[INFO] Using v1.26.0+k3s1 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
edge-node Ready control-plane,master 1m v1.26.0+k3s1
3.2 边缘与云的网络集成
配置边缘与云的网络集成的步骤如下:
- 建立网络连接:使用VPN、专线或公网连接边缘设备和云端
- 配置网络路由:确保边缘设备和云端之间的网络路由正确
- 配置防火墙:设置合理的防火墙规则,确保网络安全
- 配置DNS:设置边缘设备和云端之间的DNS解析
- 测试网络连接:验证边缘设备和云端之间的网络连接是否正常
配置边缘与云网络连接的示例命令:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
10.0.0.0/8 via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
3.3 边缘应用部署与管理
部署和管理边缘应用的步骤如下:
- 容器化应用:将应用程序容器化,确保在边缘设备上能够正常运行
- 构建镜像:构建适合边缘设备的容器镜像,注意镜像大小和资源需求
- 推送镜像:将镜像推送到镜像仓库,学习交流加群风哥微信: itpux-com供边缘设备拉取
- 部署应用:在边缘K8s集群中部署应用
- 监控应用:监控边缘应用的运行状态和性能
部署边缘应用的示例命令:
apiVersion: apps/v1
kind: Deployment
metadata:
name: fgedu-edge-app
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: fgedu-edge-app
template:
metadata:
labels:
app: fgedu-edge-app
spec:
containers:
- name: fgedu-edge-app
image: fgedu/edge-app:v1.0
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
ports:
- containerPort: 8080
env:
- name: EDGE_DEVICE_ID
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: CLOUD_ENDPOINT
value: "https://cloud.fgedu.net.cn"
3.4 边缘与云的协同工作
实现边缘与云协同工作的步骤如下:
- 数据同步:配置边缘设备与云端之间的数据同步
- 配置管理:使用统一的配置管理工具管理边缘和云端的配置
- 任务调度:根据边缘设备的资源和网络条件,合理调度任务
- 故障处理:制定边缘设备故障时的处理策略
- 升级管理:制定边缘设备和应用的升级策略
配置边缘与云数据同步的示例命令:
风哥提示:边缘与云的协同工作需要考虑网络延迟、带宽限制等因素,确保系统在各种网络条件下都能正常运行。
Part04-生产案例与实战讲解
4.1 边缘K8s集群部署案例
案例背景:某企业需要在工厂部署边缘K8s集群,实现设备数据的实时处理和分析。
部署步骤:
- 准备边缘设备:选择适合工业环境的边缘服务器
- 部署K3s集群:
$ curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE=”644″ sh –[INFO] Finding release for channel stable
[INFO] Using v1.26.0+k3s1 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s- 添加边缘节点:
$ curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.100:6443 K3S_TOKEN=K107c49e755a67890abcdef1234567890abcdef1234567890abcdef1234567890::server:1234567890abcdef sh –[INFO] Finding release for channel stable
[INFO] Using v1.26.0+k3s1 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.26.0+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO] systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO] systemd: Starting k3s-agent- 验证集群:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION
edge-master Ready control-plane,master 5m v1.26.0+k3s1
edge-worker-1 Ready2m v1.26.0+k3s1
edge-worker-2 Ready1m v1.26.0+k3s1 4.2 边缘与云集成案例
案例背景:某企业需要将边缘设备的数据同步到云端,实现边缘与云的协同工作。
集成步骤:
- 配置网络连接:建立边缘设备与云端之间的VPN连接
- 部署数据同步服务:
apiVersion: apps/v1 kind: Deployment metadata: name: fgedu-data-sync namespace: default spec: replicas: 1 selector: matchLabels: app: fgedu-data-sync template: metadata: labels: app: fgedu-data-sync spec: containers: - name: fgedu-data-sync image: fgedu/data-sync:v1.0 resources: requests: cpu: "100m" memory: "256Mi" limits: cpu: "500m" memory: "512Mi" env: - name: CLOUD_ENDPOINT value: "https://cloud.fgedu.net.cn/api/data" - name: SYNC_INTERVAL value: "60" volumeMounts: - name: data-volume mountPath: /data volumes: - name: data-volume hostPath: path: /data type: Directory$ kubectl apply -f data-sync.yamldeployment.apps/fgedu-data-sync created- 配置云端服务:在云端部署数据接收和处理服务
- 验证数据同步:
$ kubectl logs deployment/fgedu-data-sync2026-04-03 10:00:00 INFO Starting data sync service
2026-04-03 10:01:00 INFO Syncing data to cloud: https://cloud.fgedu.net.cn/api/data
2026-04-03 10:01:00 INFO Sync successful, 100 records synced
2026-04-03 10:02:00 INFO Syncing data to cloud: https://cloud.fgedu.net.cn/api/data
2026-04-03 10:02:00 INFO Sync successful, 120 records synced4.3 边缘应用部署案例
案例背景:某企业需要在边缘设备上部署实时视频分析应用,实现对工厂生产过程的监控。
部署步骤:
- 容器化应用:将视频分析应用容器化
- 构建镜像:
$ docker build -t fgedu/video-analytics:v1.0 .Sending build context to Docker daemon 100.5MB
Step 1/5 : FROM python:3.9-slim
—> a3562aa0b991
Step 2/5 : WORKDIR /app
—> Using cache
—> b8b0e6c4c756
Step 3/5 : COPY requirements.txt .
—> 4f7a2b3c1d4e
Step 4/5 : RUN pip install –no-cache-dir -r requirements.txt
—> Running in 5a6b7c8d9e0f
Collecting opencv-python==4.5.5.64
Downloading opencv_python-4.5.5.64-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.3 MB)
Collecting numpy==1.21.5
学习交流加群风哥QQ113257174 Downloading numpy-1.21.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
Installing collected packages: numpy, opencv-python
Successfully installed numpy-1.21.5 opencv-python-4.5.5.64
Removing intermediate container 5a6b7c8d9e0f
—> 1a2b3c4d5e6f
Step 5/5 : COPY . .
—> 7a8b9c0d1e2f
Successfully built 7a8b9c0d1e2f
Successfully tagged fgedu/video-analytics:v1.0- 推送镜像:
$ docker push fgedu/video-analytics:v1.0The push refers to repository [docker.io/fgedu/video-analytics]
1a2b3c4d5e6f: Pushed
7a8b9c0d1e2f: Pushed
v1.0: digest: sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef size: 529- 部署应用:
apiVersion: apps/v1 kind: Deployment metadata: name: fgedu-video-analytics namespace: default spec: replicas: 1 selector: matchLabels: app: fgedu-video-analytics template: metadata: labels: app: fgedu-video-analytics spec: containers: - name: fgedu-video-analytics image: fgedu/video-analytics:v1.0 resources: requests: cpu: "1" memory: "2Gi" limits: cpu: "2" memory: "4Gi" ports: - containerPort: 8080 volumeMounts: - name: video-volume mountPath: /video volumes: - name: video-volume hostPath: path: /video type: Directory$ kubectl apply -f video-analytics.yamldeployment.apps/fgedu-video-analytics created4.更多视频教程www.fgedu.net.cn4 大规模边缘计算运维案例
案例背景:某大型企业需要管理分布在全国各地的数千个边缘设备,实现统一的运维和管理。
运维策略:
- 统一管理平台:使用Kubernetes多集群管理工具,如Kubernetes Federation或Open Cluster Management
- 自动化运维:使用Ansible或Terraform实现边缘设备的自动化配置和管理
- 监控与告警:建立统一的监控和告警系统,实时监控边缘设备的状态
- 远程管理:实现对边缘设备的远程管理和故障排查
- 批量升级:实现边缘设备和应用的批量升级
实施步骤:
- 部署多集群管理平台:部署Open Cluster Management或类似工具
- 注册边缘集群:将边缘K8s集群注册到管理平台
- 配置监控系统:部署Prometheus和Grafana,监控边缘设备的状态
- 配置告警规则:设置合理的告警规则,及时发现和解决问题
- 实现自动化升级:使用CI/CD流程实现边缘应用的自动升级
风哥提示:大规模边缘计算的运维需要自动化工具和平台的支持,减少人工操作,提高运维效率。
Part05-风哥经验总结与分享
5.1 边缘计算与云原生集成的关键成功因素
- 合理的架构设计:根据业务需求设计合适的边缘计算架构
- 选择合适的技术栈:根据边缘设备的资源和需求选择合适的技术栈
- 可靠的网络连接:确保边缘设备与云端之间的网络连接稳定可靠
- 有效的资源管理:合理管理边缘设备的资源,确保应用程序能够正常运行
- 完善的监控体系:建立完善的监控和告警体系,及时发现和解决问题
- 专业的团队:拥有专业的技术团队,能够应对复杂的边缘计算和云原生集成挑战
5.2 常见问题与解决方案
- 资源限制:边缘设备通常资源有限,需要优化应用程序,减少资源消耗
- 网络不稳定:边缘设备的网络连接可能不稳定,需要设计容错机制
- 安全风险:边缘设备可能部署在不安全的环境中,需要加强安全防护
- 管理复杂性:大规模边缘设备的管理复杂,需要使用自动化工具
- 数据同步:边缘设备与云端之间的数据同步需要考虑网络带宽和延迟
5.3 最佳实践建议
- 从小规模开始:先在小规模环境中部署边缘计算,积累经验后再扩展到大规模环境
- 重视自动化:使用自动化工具部署和管理边缘设备,减少人为错误
- 合理配置资源:根据边缘设备的实际需求配置资源,避免资源浪费
- 定期备份数据:定期备份边缘设备的数据,确保数据安全
- 持续监控:建立持续的监控和告警体系,及时发现和解决问题
- 培训团队:对团队进行边缘计算和云原生相关培训,提高团队能力
5.4 未来发展趋势
- 边缘AI:将AI模型部署到边缘设备,实现实时数据处理和分析
- 5G集成:利用5G网络的低延迟特性,增强边缘计算的能力
- 边缘容器编排:专门为边缘环境优化的容器编排工具
- 边缘安全:增强边缘设备的安全防护能力
- 边缘与云的深度集成:实现边缘与云的无缝集成,提供统一的管理体验
from Linux:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
- 推送镜像:
- 添加边缘节点:
