kubeedge v1.3.1部署指南_Bluejoy Jing的博客-程序员ITS203

技术标签: KubeEdge  

1、准备工作

1.1 kubernetes集群和edge节点

1)需要先安装一个kubernetes集群
2)准备一个edge节点,安装docker
kubernetes集群和docker的安装教程网上有很多,此处不再详述。

1.2 创建安装目录(master节点)

mkdir -p /home/bluejoy/kubeedge/deploy-v1.3.1

1.3 下载kubeedge v1.3.1源码(master节点)

cd /home/bluejoy/kubeedge/deploy-v1.3.1
git clone https://github.com/kubeedge/kubeedge.git
cd kubeedge
git checkout v1.3.1

1.4 下载 kubeedge 1.3.1 版本二进制包(master节点)

cd /home/bluejoy/kubeedge/deploy-v1.3.1
wget https://github.com/kubeedge/kubeedge/releases/download/v1.3.1/kubeedge-v1.3.1-linux-amd64.tar.gz
tar -xzvf kubeedge-v1.3.1-linux-amd64.tar.gz
mv kubeedge-v1.3.1-linux-amd64 kubeedge-v1.3.1

2、kubeedge云端部分配置 (master节点)

2.1 生成证书

kubeedge从1.3.0版本开始不需要手动生成证书,如果已经安装了旧版本,则需要清除 /etc/kubeedge/ca 和 /etc/kubeedge/certs 目录的证书。
1)清除旧版本相关的证书

kubectl delete secret casecret -nkubeedge
kubectl delete secret cloudcoresecret -nkubeedge

如果是首次安装,忽略此步骤即可。
2) 生成证书以支持 kubectl logs 命令
确认 k8s 集群正常运行,本文使用 kubeadm 部署,其证书位于/etc/kubernetes/pki/目录(注:生成证书脚本需要使用/etc/kubernetes/pki/ca.crt和/etc/kubernetes/pki/ca.key文件)。
先设置云端IP:

export CLOUDCOREIPS="192.168.56.105"

生成证书:

mkdir -p /etc/kubeedge/ca
mkdir -p /etc/kubeedge/certs
cd /home/bluejoy/kubeedge/deploy-v1.3.1/tools/
bash certgen.sh stream 

2.2 安装crds

cd /home/bluejoy/kubeedge/deploy-v1.3.1/kubeedge/build/crds/devices
kubectl create -f devices_v1alpha1_devicemodel.yaml
kubectl create -f devices_v1alpha1_device.yaml

cd /home/bluejoy/kubeedge/deploy-v1.3.1/kubeedge/build/crds/reliablesyncs
kubectl create -f cluster_objectsync_v1alpha1.yaml
kubectl create -f objectsync_v1alpha1.yaml

2.3 拷贝二进制程序到/usr/local/bin目录

cp kubeedge/cloud/cloudcore /usr/local/bin/

2.4 配置云端节点

v1.3.1版本的配置文件是由 cloudcore 程序通过执行以下命令生成的:

mkdir -p /etc/kubeedge/config/ 
cloudcore --minconfig > /etc/kubeedge/config/cloudcore.yaml 

修改配置文件:

vim /etc/kubeedge/config/cloudcore.yaml 
# With --minconfig , you can easily used this configurations as reference

# It's useful to users who are new to KubeEdge, and you can modify/create your own configs accordingly. 
# This configuration is suitable for beginners.

apiVersion: cloudcore.config.kubeedge.io/v1alpha1
kind: CloudCore
kubeAPIConfig:
  kubeConfig: /root/.kube/config
  master: "https://192.168.56.105:6443"
leaderelection:
  LeaderElect: false
  LeaseDuration: 0s
  RenewDeadline: 0s
  ResourceLock: ""
  ResourceName: ""
  ResourceNamespace: ""
  RetryPeriod: 0s
modules:
  cloudHub:
    advertiseAddress:
    - 192.168.56.105
    https:
      address: 0.0.0.0
      enable: true
      port: 10002
    nodeLimit: 10
    tlsCAFile: /etc/kubeedge/ca/rootCA.crt
    tlsCAKeyFile: /etc/kubeedge/ca/rootCA.key
    tlsCertFile: /etc/kubeedge/certs/server.crt
    tlsPrivateKeyFile: /etc/kubeedge/certs/server.key
    unixsocket:
      address: unix:///var/lib/kubeedge/kubeedge.sock
      enable: true
    websocket:
      address: 0.0.0.0
      enable: true
      port: 10000

注意根据你的环境修改以下两处地方。
1)kubeConfig的值
2)master的值
3)advertiseAddress的值,修改为master节点的IP

2.5 运行云端部分(master节点)

cloudcore > /var/log/kubeedge/cloudcore.log 2>&1

3、kubeedge边端部分配置

3.1 安装Mosquitto(edge节点)

1)添加 apt-get 源:

add-apt-repository ppa:mosquitto-dev/mosquitto-ppa
apt-get update

2)安装:

apt-get install mosquitto

3.2 拷贝二进制程序到edge节点(master节点)

scp -r /home/bluejoy/kubeedge/deploy-v1.3.1/kubeedge-v1.3.1/edge/edgecore [email protected]:/home/bluejoy/kubeedge/deploy-v1.3.1/bin

3.3 拷贝二进制程序到/usr/local/bin目录(edge节点)

cp /home/bluejoy/kubeedge/deploy-v1.3.1/bin/edgecore /usr/local/bin/

3.4 获取 token(master节点)

前文已经运行了云端,会自动产生token,这里要先切换到云端机器,获取 secret,再将 tokendata 内容解码得到 token。示例如下:

kubectl get secret tokensecret -n kubeedge -oyaml

输出:

apiVersion: v1
data:
  tokendata: MDAyZTU0ZDBkYmZmZTUxMjAwMzc5YWY5NDc5NmM1Y2ExMDc1MzIzYWVhZjMzOTUzMWIxMTdlZjQxZGQ3ZTJiMy5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUxT1RNMU1Ea3dOakY5Lkdwdm11Q1d5cWgzYWZ4Ml93MmN2U1NaMFQtblF1LWF6TElwOHVwR1cweWs=
kind: Secret
metadata:
  creationTimestamp: "2020-06-29T09:24:11Z"
  name: tokensecret
  namespace: kubeedge
  resourceVersion: "4297716"
  selfLink: /api/v1/namespaces/kubeedge/secrets/tokensecret
  uid: c87819c7-61d0-4a49-a420-7fca0359800e
type: Opaque

解码:

echo MDAyZTU0ZDBkYmZmZTUxMjAwMzc5YWY5NDc5NmM1Y2ExMDc1MzIzYWVhZjMzOTUzMWIxMTdlZjQxZGQ3ZTJiMy5leUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKbGVIQWlPakUxT1RNMU1Ea3dOakY5Lkdwdm11Q1d5cWgzYWZ4Ml93MmN2U1NaMFQtblF1LWF6TElwOHVwR1cweWs= | base64 -d

输出结果为:

002e54d0dbffe51200379af94796c5ca1075323aeaf339531b117ef41dd7e2b3.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM1MDkwNjF9.GpvmuCWyqh3afx2_w2cvSSZ0T-nQu-azLIp8upGW0yk    

3.5 配置边缘节点(edge节点)

v1.3.1版本的配置文件由 edgecore 程序通过执行以下命令生成的:

mkdir -p /etc/kubeedge/config/
edgecore --minconfig > /etc/kubeedge/config/edgecore.yaml

修改配置文件:

vim /etc/kubeedge/config/edgecore.yaml
# With --minconfig , you can easily used this configurations as reference.
# It's useful to users who are new to KubeEdge, and you can modify/create your own configs accordingly. 
# This configuration is suitable for beginners.

apiVersion: edgecore.config.kubeedge.io/v1alpha1
database:
  dataSource: /var/lib/kubeedge/edgecore.db
kind: EdgeCore
modules:
  edgeHub:
    heartbeat: 15
    httpServer: https://192.168.56.105:10002
    tlsCaFile: /etc/kubeedge/ca/rootCA.crt
    tlsCertFile: /etc/kubeedge/certs/server.crt
    tlsPrivateKeyFile: /etc/kubeedge/certs/server.key
    token: "002e54d0dbffe51200379af94796c5ca1075323aeaf339531b117ef41dd7e2b3.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTM1MDkwNjF9.GpvmuCWyqh3afx2_w2cvSSZ0T-nQu-azLIp8upGW0yk"
    websocket:
      enable: true
      handshakeTimeout: 30
      readDeadline: 15
      server: 192.168.56.105:10000
      writeDeadline: 15
  edged:
    cgroupDriver: cgroupfs
    cgroupRoot: ""
    cgroupsPerQOS: true
    clusterDNS: ""
    clusterDomain: ""
    devicePluginEnabled: false
    dockerAddress: unix:///var/run/docker.sock
    gpuPluginEnabled: false
    hostnameOverride: bluejoy-jing
    interfaceName: enp0s8
    nodeIP: 192.168.56.111
    podSandboxImage: kubeedge/pause:3.1
    remoteImageEndpoint: unix:///var/run/dockershim.sock
    remoteRuntimeEndpoint: unix:///var/run/dockershim.sock
    runtimeType: docker
  eventBus:
    mqttMode: 2
    mqttQOS: 0
    mqttRetain: false
    mqttServerExternal: tcp://127.0.0.1:1883
    mqttServerInternal: tcp://127.0.0.1:1884

注意修改以下几处地方。
1)修改modules.edgehub.httpServer的值为https://192.168.56.105:10002,其中IP为云端master节点的IP
2)修改modules.edgehub.token的值为上一小节中获取到的token
3)修改modules.edgehub.websocket.server的值为192.168.56.105:10000,其中IP为云端master节点的IP地址
4)podSandboxImage,X86平台为podSandboxImage: kubeedge/pause:3.1,ARM 平台根据位数不同,可设为kubeedge/pause-arm:3.1或ubeedge/pause-arm64:3.1。
5)cgroup 驱动默认值为:cgroupDriver: cgroupfs(是否需要修改,需要查看docker info命令,获取自己节点上的值)。
6)网络设备接口名称interfaceName及节点IP地址nodeIP,在运行上述配置文件生成命令时会自动检测获取,一般无须修改,但是我的虚拟机有两块网卡,所以需要修改。
7)hostnameOverride需要修改为edge节点的主机名称。

3.6 运行边缘端(edge节点)

edgecore > /var/log/kubeedge/edgecore.log 2>&1

4、验证部署结果(master节点)

4.1 查看edge节点是否ready

在这里插入图片描述

4.2 部署一个deployment进行验证

cd /home/bluejoy/kubeedge/deploy-v1.3.1/kubeedge/build/
kubectl apply -f deployment.yaml

查看pod的部署结果:
在这里插入图片描述

4.3 删除deployment

cd /home/bluejoy/kubeedge/deploy-v1.3.1/kubeedge/build/
kubectl delete -f deployment.yaml
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44738411/article/details/107048809

智能推荐

JavaScript(一)_番茄火锅rrds的博客-程序员ITS203

JavaScript一、JavaScript的组成三部分二、JS的三种写法一、JavaScript的组成三部分    1、ECMAScript ( JS语法 )    2、DOM( 页面文档对象模型 )    3、BOM( 浏览器对象模型 )二、JS的三种写法    1、行内嵌入式< ... onlink = "alert ( .

GDB 调试_sfyt2000的博客-程序员ITS203

我们需要得到当前进程的函数调用栈的情况,以此回溯找到我们自己的方法。这时我们需要用到backtrace命令,一般简写为bt:们还可以使用list(简写为l)命令,打印出更多信息:    (gdb) l     5       6   int main(int argc, char **argv)     7   {     8       NSAutor

OpenGL API - glViewport_Jave.Lin的博客-程序员ITS203

文章目录名称原型参数描述错误https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glViewport.xhtmlOpenGL API - 笔记汇总名称glViewport ---- 设置视口。原型void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);参数x, y指定矩形视口的左下角,像素单位。初始值为 (0, 0)。

nodejs 远程连接redis (解决 -4078)_溜_x_i_a_o_迪的博客-程序员ITS203

报错小迪使用nodejs 远程连接redis 会报错 =>Error: Redis connection to 48.213.229.23:6379 failed - connect ECONNREFUSED 48.213.229.23:6379at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) {errno: -4078,code: ‘ECONNREFUSED’,syscall: ‘connect’,add

java.lang.ClassNotFoundException: com.alibaba.nacos.api.naming.NamingMaintainService_DIETING的博客-程序员ITS203

java.lang.ClassNotFoundException: com.alibaba.nacos.api.naming.NamingMaintainService报错信息如下原因是依赖的nacos-client的版本过低,将版本号改成1.2.0就不会报错了<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifact_1671465600

python3 安装scrapy Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-package..._anqin2712的博客-程序员ITS203

错误代码:Exception:Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 1006, in check_if_exists self.satisfied_by = pkg_resources.get_d...

随便推点

撷英阁-开卷有益之怎么写读书笔记_cinnarnia的博客-程序员ITS203_开卷有益的笔记

怎样写读书笔记  在我看来读书笔记最好的方法就把书或资料直接做成思维导图,比写读书笔记有效率多了。但在很多的时候还需要按照传统的方法来写,这是我收集的文章专门说写读书笔记的方法的:  读书笔记一般分为摘录、提纲、批注、心得几种,格式及写法并不艰深,心得笔记中的读后感有点麻烦,但只要懂得论点、论据和论证这三要素的关系,就会轻松拿下,因为读后感不过就是一种议论文而矣。我觉得以失

Xgboost安装、使用和算法原理理解_Just Jump的博客-程序员ITS203_xgboost中文文档

一、Xgboost相关重要文档1、官方文档官方文档中可查询到各语言版本的安装方法、官方用例等XGBoost Documentation — xgboost 1.6.0-dev documentationhttps://xgboost.readthedocs.io/en/latest/index.html2、githubgithub源码可查看代码实现、下载数据样例等GitHub - dmlc/xgboost: Scalable, Portable and Distributed Gradi

video.js视频播放功能_船长在船上的博客-程序员ITS203_video.js

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>videojs视频播放</title></head><link href="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.3.0/video-js.min.css" rel="stylesheet">&lt.

鸿蒙OS(1) : 安装IDE(3.0)_Lxinccode的博客-程序员ITS203_鸿蒙系统安装包百度网盘

下载安装包官方下载地址 :HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者百度网盘下载链接:https://pan.baidu.com/s/1zYrQlQVTzGxzJtqrqez0UA?pwd=77cv提取码:77cv下载后的安装包文件名为 : devecostudio-windows-tool-3.0.0.900.zip安装解压双击开始安装选择安装路径全部勾选next等待安装完成..._1671465600

渗透测试【网络安全】入门指南【20190607】_aian3941的博客-程序员ITS203

原文地址:https://www.52stu.org/?p=149来源:5号暗区 5号黯区 五号黯区 5号暗区渗透测试入门手册本手册将持续更新!这是20190707版如果觉得本文有用,请高抬贵手分享给你的朋友。渗透测试是什么?维基百科的释义:https://zh.wikipedia.org/wiki/渗透测试百度百科的释义:https://baike.baidu.com/...

java代码实现逻辑分页_lllgooo的博客-程序员ITS203_代码的逻辑分页

//手动进行分页returnList-总数据arrayList-本页数据page-第几页rows-每页数量 List<AttenceLeaveReturnShow> arrayList = new ArrayList<AttenceLeaveReturnShow>();if(returnList.size()<=Integer.parseI...

推荐文章

热门文章

相关标签