KubeEdge v1.3 部署安装

620 阅读2分钟

KubeEdge v1.3 部署安装

前提: 安装好了 K8s 集群,K8s 版本为1.16.2

并修改 /etc/kubernetes/manifests/kube-apiserver.yaml

    - --insecure-port=8080
    - --insecure-bind-address=0.0.0.0

使用二进制安装

云端操作:

设置 KubeEdge 主节点

  • 创建CRD
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_device.yaml
​
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha2_devicemodel.yaml
​
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/cluster_objectsync_v1alpha1.yaml
​
kubectl apply -f https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/reliablesyncs/objectsync_v1alpha1.yaml

如果下载不下来,可以访问下面这个github下载:github.com/kubeedge/ku…

  • 准备配置文件
## 下载二进制包:
wget  https://github.com/kubeedge/kubeedge/releases/download/v1.3.0/kubeedge-v1.3.0-linux-amd64.tar.gz
​
## 准备配置文件
tar xf kubeedge-v1.3.0-linux-amd64.tar.gz
cd kubeedge-v1.3.0-linux-amd64/cloud/cloudcore
​
## 创建配置文件
使用命令创建最小配置 ./cloudcore --minconfig > /etc/kubeedge/config/cloudcore.yaml
​
或带有命令的完整配置 ./cloudcore --defaultconfig > /etc/kubeedge/config/cloudcore.yaml
​
  • RUN
./cloudcore --config /etc/kubeedge/config/cloudcore.yaml
  • 检查

cloudcore.png

边缘端操作:

  • 安装 Docker
## 设置 yum 源
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
​
yum clean all && yum makecache
​
## 安装 Docker
yum install -y docker-ce-cli-19.03.9-3.el7  docker-ce-19.03.9-3.el7
​
## 启动 Docker
systemctl enable docker && systemctl start docker
  • 把云端的 edgecore copy 过来一份
scp -r 192.168.8.102:/opt/kubeedge-v1.3.0-linux-amd64/ /opt/
cd /opt/kubeedge-v1.3.0-linux-amd64/edge
  • 生成配置文件
edgecore --minconfig > /root/edgecore.yaml
  • 去云端服务器生成 token
kubectl get secret -nkubeedge tokensecret -o=jsonpath='{.data.tokendata}' | base64 -d
  • 配置文件详解 ( 避免踩坑 )
vim /root/edgecore.yaml

apiVersion: edgecore.config.kubeedge.io/v1alpha1
database:
  dataSource: /var/lib/kubeedge/edgecore.db
kind: EdgeCore
modules:
  edgeHub:
    heartbeat: 15
    httpServer: https://192.168.8.101:10002  #默认云端IP和端口
    tlsCaFile: /etc/kubeedge/ca/rootCA.crt
    tlsCertFile: /etc/kubeedge/certs/server.crt
    tlsPrivateKeyFile: /etc/kubeedge/certs/server.key
    token: "e97268645d7bb5122d5d5e38fc3149a312f0a6cfcb7fa6e4281183f1b717762b.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzQzNDk4Njh9._lYCVGLTxmgGtzmjdRP6rZyCBiP3qbJA5F9bbkTfcYs"  #从云端拿下来的token
    websocket:
      enable: true
      handshakeTimeout: 30
      readDeadline: 15
      server: 192.168.8.101:10000   #默认云端IP和端口
      writeDeadline: 15
  edged:
    cgroupDriver: cgroupfs
    cgroupRoot: ""
    cgroupsPerQOS: true
    clusterDNS: ""
    clusterDomain: ""
    devicePluginEnabled: false
    dockerAddress: unix:///var/run/docker.sock
    gpuPluginEnabled: false
    hostnameOverride: edge-node    #边缘节点的hostname
    interfaceName: ens33     #边缘节点的网卡名
    nodeIP: 192.168.8.240    #边缘节点的IP
    podSandboxImage: kubeedge/pause:3.1
    remoteImageEndpoint: unix:///var/run/dockershim.sock
    remoteRuntimeEndpoint: unix:///var/run/dockershim.sock
    runtimeType: docker
  eventBus:
    mqttMode: 2
#KubeEdge 支持 3 种 MQTT 模式(internalMqttMode、bothMqttMode、externalMqttMode),将mqttModeedgecore.yaml 中的字段设置为所需的模式。+ internalMqttMode:启用内部 mqtt 代理(mqttMode=0)。+ bothMqttMode:启用内部和外部代理(mqttMode=1)。+ externalMqttMode:仅启用外部代理(mqttMode=2)。
#要在双 mqtt 或外部模式下使用 KubeEdge,您需要确保在边缘节点上安装 mosquitto 或 emqx edge 作为 MQTT Broker。
    mqttQOS: 0
    mqttRetain: false
    mqttServerExternal: tcp://127.0.0.1:1883
    mqttServerInternal: tcp://127.0.0.1:1884
  • edge 端的 Mosquitto 安装
## 添加EPEL软件库
yum  install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
​
## 下载mosquitto
yum install -y mosquitto
  • 启动 Mosquitto
mosquitto -d -p 1883
  • RUN
edgecore --config /root/edgecore.yaml
  • 验证

验证.png