kubernetes+KubeEdge云边环境的安装与部署

最近在学习云边协同,需要搭建一个云边协同的实验环境,kubernetes+KubeEdge+sedna,安装过程中遇到了一系列的问题,特此记录总结。

kubernetes 的安装与部署:

实验环境

云端:Centos7+ kubernetes 1.23.8 + Docker
这里我们的centos使用的是 centos7.9, 不同版本的系统对k8s影响较大,具体看实际情况而定。 有的还需要更新系统内核。

部署教程

前置需求

  • 了解image、container、pod等概念
  • 基础指令:容器运行时工具基本用法
  • 能耐心读容器日志
  • 能耐心读大量文档

部署k8s环境,但k8s本身是一个相当前沿的项目而且架构仍然在改变,所以网上的教程会有很多旧版本的坑,加之官方文档比较晦涩难懂,因此下面这篇文章给出了一个详细而又准确的安装部署教程,

参考地址: kubernetes 的安装与部署:https://blog.csdn.net/feiyuchuixue/article/details/126373118
这篇博客面向环境搭建,你不会学到太多K8S具体内容和工作原理,但你能知道自己一条命令下去做了什么,如何从log中获取有用信息并贴出一些官方文档链接,文章中提到了主节点master和从节点node的安装和配置,但是本文安装kubeedge只需要单节点 kubernetes就可以,从节点可选择性安装。

关于kubernetes的安装与部署有一篇文章已经讲解很详细了,并且我也是全程参考该文档实验kubernetes的主备节点的安装,该文章把其中可能遇到的问题都描述清楚了,根据该文档可以傻瓜式操作完成,本文就不再叙述kubernetes的安装与部署。

kubeedge的安装部署

1、部署要求

请确保已经在云端部署好k8s集群。
KubeEdge部署要求

  • 机器配置:
    • 云端: CPU2核+,内存2GB+,硬盘30GB+
    • 边缘: CPU1核+,内存256MB+
  • 网络要求:
    • 云端: 外网访问权限,开放 10000-10004 端口
    • 边缘:外网访问权限
  • 操作系统: ubuntu、 centos等
  • CPU架构: x86 64、arm64、arm32

版本兼容

k8s版本兼容
参考地址:https://github.com/kubeedge/kubeedge#kubernetes-compatibility
由于上文我们按照的k8s版本是1.23.8,所以kubeedge的版本应该是1.13以上,这里版本一定要对应上,不对应会出现很多莫名其妙的问题。

2、安装

2.1 下载keadm并解压

使用命令下载

wget https://github.com/kubeedge/kubeedge/releases/download/v1.13.0/keadm-v1.13.0-linux-amd64.tar.gz

如果网络状况不好,可提前下载好,下载地址:https://github.com/kubeedge/kubeedge/releases/,下载请确保一定要和k8s版本对应。
我选择的版本是1.13,如下图所示,标注的两个要下载下来备用。
在这里插入图片描述
下载好之后通过rz命令或者其他工具上传到云端服务器中,
然后解压缩

tar -zxvf keadm-v1.13.0-linux-amd64.tar.gz

将其配置进入环境变量,方便使用

扫描二维码关注公众号,回复: 14586197 查看本文章
cd keadm-v1.13.0-linux-amd64/keadm/
cp keadm /usr/sbin/ #将其配置进入环境变量,方便使用

输入keadm version,如果能输出版本信息,说明安装成功。如下图所示:
在这里插入图片描述

2.2 设置云端

注意:默认情况下需要开放10000,10002端口
在集群云端节点使用如下命令,将安装cloudcore,生成证书并安装CRD,–advertise-address指定云端的公开地址(边缘端可ping通的内网地址也可)

keadm init --advertise-address=172.23.70.235 --kube-config=$HOME/.kube/config --kubeedge-version=1.13.0

使用此命令会从gitHub上下载很多文件,网络有问题的用户,建议提前下载好,放置/etc/kubeedge目录下。

    F0608 11:40:15.689702    5530 keadm.go:27] failed to exec 'bash -c cd /etc/kubeedge/crds/devices && wget -k --no-check-certificate --progress=bar:force https://raw.githubusercontent.com/kubeedge/kubeedge/release-1.7/build/crds/devices/devices_v1alpha2_device.yaml', err: --2021-06-08 11:39:54--  https://raw.githubusercontent.com/kubeedge/kubeedge/release-1.7/build/crds/devices/devices_v1alpha2_device.yaml
    类似这种报错都是文件没有下载下来...

用红框标记的文件可以提前从gitHub上下载好,
在这里插入图片描述

  • kubeedge-v1.13.0-linux-amd64.tar.gz文件位置:https://github.com/kubeedge/kubeedge/releases/
    在这里插入图片描述

  • cloudcore.service在源码目录,先选择对应版本下载源码
    在这里插入图片描述
    下载好之后放到/etc/kubeedge目录下
    此刻,相信到现在再执行上面的那个init命令应该会很快顺利完成,如果还有什么问题,可以参考我其他博客中遇到的问题解决办法。

2.3 获取token

边缘节点加入云端节点需要通过token认证方式,使用如下命令获取边缘节点加入集群的token:

keadm gettoken

在这里插入图片描述
至此云端节点部分已经安装完毕。

3 设置边缘端

3.1 同理先下载keadm,解压,

为方便再重复一遍

# 1、下载
wget https://github.com/kubeedge/kubeedge/releases/download/v1.13.0/keadm-v1.13.0-linux-amd64.tar.gz

# 2、解压
tar -zxvf keadm-v1.13.0-linux-amd64.tar.gz

# 3、将其配置进入环境变量,方便使用
cd keadm-v1.13.0-linux-amd64/keadm/
cp keadm /usr/sbin/ #将其配置进入环境变量,方便使用

3.2 使用如下命令加入到集群

keadm join --cloudcore-ipport=172.23.70.235(云端ip):10000 --kubeedge-version=1.13.0 --token=步骤2.3云端生成的token

这里也可能会因为网络原因下载失败,可以将文件提前下载好,创建/etc/kubeedge目录,将提前准备好的文件放入即可,边缘端所需文件如下,其余文件会自动生成。
在这里插入图片描述
这一步用到的edgecore.service 就是上面说提到的让都下载下来的。

在边缘节点使用如下命令,查看节点状态,

kubectl get nodes

输出如下图所示表示顺利安装完成。
在这里插入图片描述
如遇其他问题可参考本文其他博客查看有无同样的问题和解决方案!
之后有时间再整理kubeedge+sedna云边端环境的安装和部署以及使用问题等。

参考资料

首先推荐几个写的很好的参考链接:

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/129530878