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

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基