前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >源码安装KubeEdge

源码安装KubeEdge

作者头像
有点技术
发布2020-07-14 14:57:17
1.1K0
发布2020-07-14 14:57:17
举报
文章被收录于专栏:有点技术有点技术

依赖

  • 安装docker

docker的cgroup和集群kubelet的要一致,木搞明白为啥需要一致?

  • 安装kubeadm/kubectl
  • 创建k8s集群
  • 安装golang
  • 在每个edge节点安装mosquitto

以上安装可参考我的笔记有关内容

如果边缘节点为centos可以只直接yum安装mosquitto,如果为其他系统参见官方文档, centos执行以下命令:yum install epel*-y&&yum install-y mosquitto&&mosquitto-d-p1883

运行kubeedge

初始化云端

克隆kubeedge

代码语言:javascript
复制
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedgecd $GOPATH/src/github.com/kubeedge/kubeedge

生成证书

要为KubeEdge进行设置,需要RootCA证书和一个证书/密钥对。云和边缘都可以使用相同的证书/密钥对。

代码语言:javascript
复制
$GOPATH/src/github.com/kubeedge/kubeedge/build/tools/certgen.sh genCertAndKey edge

二进制运行

  • 查看gcc是否安装
代码语言:javascript
复制
gcc --version
  • 编译cloudcore
代码语言:javascript
复制
cd $GOPATH/src/github.com/kubeedge/kubeedge/make all WHAT=cloudcore

编译时因为墙的问题,可能拉不下来,可以使用vendor,根据屏幕输出的go build命令添加-mod vendor参数即可

  • 创建设备模块和设备CRD
代码语言:javascript
复制
cd $GOPATH/src/github.com/kubeedge/kubeedge/build/crds/deviceskubectl create -f devices_v1alpha1_devicemodel.yamlkubectl create -f devices_v1alpha1_device.yaml
  • 复制cloudcore二进制文件和配置文件
代码语言:javascript
复制
cd $GOPATH/src/github.com/kubeedge/kubeedge/cloudmkdir -p ~/cmd/confcp cloudcore ~/cmd/cp -rf conf/* ~/cmd/conf/

~/cmd/dir是一个示例,在以下示例中,我们继续使用~/cmd/作为二进制启动目录。您 可以将cloudcore或edgecore二进制文件移动到任何地方,但需要在与二进制文件相同的目录中创建conf目录。 如果cloud和edge是同一台机器请注意和edgecore分开目录

  • 配置
代码语言:javascript
复制
cd ~/cmd/confvim controller.yaml

大多默认配置即可,具体内容不再展示,在实验过程中发现 "~/"不能识别改成绝对路径就好了,但是看了下kubeedge的代码,直接用的client-go调用的kubeconfig文件,布吉岛咋回事

  • 运行
代码语言:javascript
复制
cd ~/cmd/nohup ./cloudcore &
  • 使用systemd启动cloudcore

也可以使用systemd启动cloudcore。如果需要,可以使用示例systemd-unit-file。以下命令将向您展示如何进行设置:

代码语言:javascript
复制
sudo ln build/tools/cloudcore.service /etc/systemd/system/cloudcore.servicesudo systemctl daemon-reloadsudo systemctl start cloudcore

请在cloudcore.service中修改ExecStart路径。不要使用相对路径,而要使用绝对路径

部署edge节点

我们提供了一个示例node.json来在kubernetes中添加一个节点。请确保在Kubernetes中添加了Edge节点。运行以下步骤以添加边缘节点

  • 复制 $GOPATH/src/github.com/kubeedge/kubeedge/build/node.json并且更改 metadata.name 为自己的边缘节点名称
代码语言:javascript
复制
mkdir ~/cmd/yamlcp $GOPATH/src/github.com/kubeedge/kubeedge/build/node.json ~/cmd/yaml
  • 确保该节点的角色设置为edge。为此,形式为 node-role.kubernetes.io/edge的标签必须设置
  • 请确保将标签 node-role.kubernetes.io/edge添加到 build/node.json文件中
代码语言:javascript
复制
{  "kind": "Node",  "apiVersion": "v1",  "metadata": {    "name": "edge-node",    "labels": {      "name": "edge-node",      "node-role.kubernetes.io/edge": ""    }  }}

name需要用到,edgecore上报的名称需要与这里一致

  • 如果未为节点设置角色,则无法在云中创建/更新的pod,configmap和secret与它们所针对的节点同步
  • 部署edge node,只是创建了节点,并没有状态,状态依赖于edgecore向cloudcore上报,cloudcore将更改节点状态
代码语言:javascript
复制
kubectl apply -f ~/cmd/yaml/node.json

初始化边缘侧

克隆KubeEdge

代码语言:javascript
复制
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedgecd $GOPATH/src/github.com/kubeedge/kubeedge

运行edge

二进制运行
  • 构建edge
代码语言:javascript
复制
cd $GOPATH/src/github.com/kubeedge/kubeedgemake all WHAT=edgecore
  • 配置edgecore
代码语言:javascript
复制
mkdir ~/cmd/confcp $GOPATH/src/github.com/kubeedge/kubeedge/edge/conf/* ~/cmd/confvim ~/cmd/conf/edge.yaml

edgecore和cloudcore在一台,默认配置即可,如果不在一台请修改edgehub对应配置

  • 运行
代码语言:javascript
复制
cp $GOPATH/src/github.com/kubeedge/kubeedge/edge/edgecore ~/cmd/cd ~/cmd./edgecore# ornohup ./edgecore > edgecore.log 2>&1 &
  • systemd 启动
代码语言:javascript
复制
sudo ln build/tools/edgecore.service /etc/systemd/system/edgecore.servicesudo systemctl daemon-reloadsudo systemctl start edgecoresudo systemctl enable edgecore
  • 验证
代码语言:javascript
复制
kubectl get nodes

在云端部署应用

请按照以下步骤尝试部署示例应用程序。

代码语言:javascript
复制
kubectl apply -f $GOPATH/src/github.com/kubeedge/kubeedge/build/deployment.yaml
  • 验证服务是否运行在边缘节点及状态是否正常
代码语言:javascript
复制
kubectl get pods
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有点技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 依赖
  • 运行kubeedge
    • 初始化云端
      • 克隆kubeedge
      • 生成证书
      • 二进制运行
      • 部署edge节点
    • 初始化边缘侧
      • 克隆KubeEdge
      • 运行edge
  • 在云端部署应用
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档