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

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

最近在学习云边协同,需要搭建一个云边协同的实验环境,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

版本兼容


1.png

参考地址: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,如下图所示,标注的两个要下载下来备用。


2.png


下载好之后通过rz命令或者其他工具上传到云端服务器中,

然后解压缩

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

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

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

输入keadm version,如果能输出版本信息,说明安装成功。如下图所示:


3.png

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上下载好,

4.png


kubeedge-v1.13.0-linux-amd64.tar.gz文件位置:https://github.com/kubeedge/kubeedge/releases/5.png


cloudcore.service在源码目录,先选择对应版本下载源码

6.png


下载好之后放到/etc/kubeedge目录下

此刻,相信到现在再执行上面的那个init命令应该会很快顺利完成,如果还有什么问题,可以参考我其他博客中遇到的问题解决办法。


2.3 获取token

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

keadm gettoken


7.png

至此云端节点部分已经安装完毕。

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目录,将提前准备好的文件放入即可,边缘端所需文件如下,其余文件会自动生成。

8.png

这一步用到的edgecore.service 就是上面说提到的让都下载下来的。

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

kubectl get nodes


输出如下图所示表示顺利安装完成。

9.png


如遇其他问题可参考本文其他博客查看有无同样的问题和解决方案!

之后有时间再整理kubeedge+sedna云边端环境的安装和部署以及使用问题等。


参考资料

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


kubernetes 的安装与部署:https://blog.csdn.net/feiyuchuixue/article/details/126373118

keadm安装KubeEdge:https://blog.csdn.net/qq_46618998/article/details/120549346

KubeEdge-Sedna搭建指南–从零开始搭建边云协同应用:https://zhuanlan.zhihu.com/p/572681911

(https://docs.kubeedge.io/zh/docs/setup/keadm_zh/)

小白的边缘计算初探:kubeedge1.7使用keadm安装(半手动安装):https://www.codeleading.com/article/42775790842/

kubeEdge官网:[https://docs.kubeedge.io/zh/docs/setup/keadm_zh/]






相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2天前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
7天前
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
91 10
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
135 60
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
269 62
|
25天前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
49 0
|
1月前
|
Kubernetes Ubuntu Linux
我应该如何安装Kubernetes
我应该如何安装Kubernetes
|
2月前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
280 1
|
2月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
92 3
|
2月前
|
NoSQL 关系型数据库 Redis
高可用和性能:基于ACK部署Dify的最佳实践
本文介绍了基于阿里云容器服务ACK,部署高可用、可伸缩且具备高SLA的生产可用的Dify服务的详细解决方案。
下一篇
DataWorks