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
- 检查
边缘端操作:
- 安装 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
- 验证