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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 最近在学习云边协同,需要搭建一个云边协同的实验环境,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搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
181 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
1月前
|
Kubernetes 负载均衡 前端开发
二进制部署Kubernetes 1.23.15版本高可用集群实战
使用二进制文件部署Kubernetes 1.23.15版本高可用集群的详细教程,涵盖了从环境准备到网络插件部署的完整流程。
54 2
二进制部署Kubernetes 1.23.15版本高可用集群实战
|
17天前
|
Kubernetes Cloud Native Linux
云原生入门:Kubernetes的简易部署与应用
【8月更文挑战第49天】在云原生的世界里,Kubernetes(K8s)是一颗璀璨的星。本文将带你走进K8s的世界,从安装到简单应用,轻松驾驭这个强大的容器编排工具。让我们一起探索云原生的奥秘,解锁新技能!
|
15天前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
29 1
|
23天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes上安装Metallb和Ingress并部署应用程序
Kubernetes上安装Metallb和Ingress并部署nginx应用程序,使用LoadBalancer类型的KubernetesService
93 5
|
1月前
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
67 4
|
1月前
|
Kubernetes Ubuntu 网络安全
Ubuntu基于kubeadm快速部署K8S实战
关于如何在Ubuntu系统上使用kubeadm工具快速部署Kubernetes集群的详细实战指南。
114 2
|
1月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
63 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
1月前
|
Kubernetes 容器
Kubernetes附加组件Dashboard部署实战篇
关于如何在Kubernetes集群中部署和配置Dashboard组件的详细实战指南,涵盖了从创建证书、部署Dashboard、设置服务访问到登录认证的完整流程。
105 0
Kubernetes附加组件Dashboard部署实战篇
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
1624 0
下一篇
无影云桌面