kubeedge v1.17.0部署教程

2024-06-06 02:28
文章标签 部署 教程 kubeedge v1.17

本文主要是介绍kubeedge v1.17.0部署教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、安装k8s平台
  • 二、部署kubeedge
    • 1.部署MetalLB(可选)
    • 2.cloud
    • 3.edge
    • 4. 部署nginx到edge端
  • 总结
  • 参考


前言

本文主要介绍kubeedge v1.17.0的安装过程

主要环境如下表

应用版本
centos7.0
k8s1.28.2
kubeedge1.17.0
docker24.0.8
centos7.0

一、安装k8s平台

本文主要参考
centos7 部署k8s 1.28.2
K8s集群搭建教程

根据上面的过程部署好k8s平台
注意 k8s版本不一样 部署的要求不一样
如:k8s 1.24以后版本需要装cri-docker等工具
docker安装需要配置阿里云容器镜像加速服务

二、部署kubeedge

1.部署MetalLB(可选)

是支持LoadBalancer的负载均衡器,能够帮助我们映射一个ip地址,直接访问pod的服务

  1. 修改kube-proxy
    将对应的位置修改为如图所示的
kubectl edit configmap -n kube-system kube-proxy

在这里插入图片描述

  1. k8s部署MetalLB
    这里部署的版本为0.13.5
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.5/config/manifests/metallb-native.yaml
  1. 配置MetalLB
    新建两个文件
# advertise.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:name: l2advernamespace: metallb-system
spec:ipAddressPools: # 如果不配置则会通告所有的IP池地址- ip-pool
# ip-pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:name: ip-poolnamespace: metallb-system
spec:addresses:- 192.168.184.120-192.168.184.140 # 根据虚拟机的ip地址来配置 这些ip地址可以分配给k8s中的服务
kubectl apply -f advertise.yaml
kubectl apply -f ip-pool.yaml

2.cloud

  1. 下载keadm
    进入github搜索kubeedge,下载对应版本
    1.17.0下载地址
    根据需要部署的平台下载对应的版本
    在这里插入图片描述
  2. 解压keadm 并 移动到 /usr/local/bin下 (移动到这个目录下可以再任何目录下执行keadm命令)
tar -zxvf keadm-v1.17.0-linux-amd64.tar.gz
mv  keadm-v1.17.0-linux-amd64/keadm/keadm /usr/local/bin 
  1. 初始化cloudcore
# 192.168.184.120 ip-pool中没有被分配的ip地址
keadm init --advertise-address=192.168.184.120 --set iptablesHanager.mode="external"

执行成功结果
在这里插入图片描述

  1. 修改cloudcore的svc
    修改服务的暴露方式,让外部可以连接
    也可以使用NodePort,但是在初始化edgecore时就需要修改对应的ip映射了,上面初始化advertise-address也需要修改
kubectl edit svc cloudcore -n kubeedge 

在这里插入图片描述
在这里插入图片描述
5. 打标签

因为边缘计算的硬件条件都不好,这里我们需要打上标签,让一些应用不扩展到edge节点上去

这里有三个应用需要打 kube-system kube-flannel metallb-system
将下面命令中的两个位置替换即可

kubectl get daemonset -n kube-system |grep -v NAME |awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n kube-system --type='json' -p='[{"op": "replace","path": "/spec/template/spec/affinity","value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'

3.edge

  1. cloud获取token
keadm gettoken
  1. edge端加入
    设置token和server方便输入命令
    在这里插入图片描述
echo $SERVER   # 可以查看对应的
#加入到cloudcore中
keadm join --remote-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cloudcore-ipport=$SERVER --token=$TOKEN --kubeedge-version=1.17.0 --with-mqtt

成功截图如下
在这里插入图片描述
在这里插入图片描述
注意
在这里插入图片描述

  1. docker和cri-docker的安装

  2. cni网络插件一定要记得安装
    在这里插入图片描述
    下载该文件,上传

source install.sh  # 将脚本文件放入环境
install_cni_plugins # 执行安装cni命令

如果下载速度慢,可以在有条件的情况下载好
注释掉 wget
在这里插入图片描述
再上传 后执行该方法即可

建议: 这个子网范围 我觉得应该改成k8s再 init 设置的子网范围
在这里插入图片描述

4. 部署nginx到edge端

nginx部署的yaml文件
vi nginx-deployment.yaml

#nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-metallb
spec:replicas: 1 selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:nodeName: k8s-edge  # 边缘端的名字 kubectl get node里面的containers:- name: nginximage: nginx:latestports:- containerPort: 80---
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- name: http port: 80targetPort: 80type: LoadBalancer

在这里插入图片描述


总结

kubeedge 不同版本的部署方法会有不同的地方,k8s也是有需要注意的地方
看官方文档一定要仔细,我edge端没有安装cni网络插件,导致一直无法成功连接
之前看得文档和视频对应的版本都比较老了,edge端不需要安装cni插件也可直接连接成功

参考

centos7 部署k8s 1.28.2
K8s集群搭建教程
kubeedge部署 写的挺详细的
kubeedge v1.17官方文档 官方文档一定要看仔细!!!
b站 kubeedge部署教程

这篇关于kubeedge v1.17.0部署教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034837

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像