kubeedge v1.1.0部署指南

1、准备工作

1.1 kubernetes集群和edge节点

需要先至少准备两台机器,一台master节点,一台edge节点。
为了方便验证,本此验证中master节点和edge节点的OS都是ubuntu 18.04。

1)先在master节点上安装kubernetes,可以只部署master
2)edge节点上安装docker
3)edge节点上安装mosquitto

kubernetes集群和docker的安装教程网上有很多,此处不再详述。

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

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

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

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

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

cd /home/bluejoy/kubeedge/deploy-v1.1.0
wget https://github.com/kubeedge/kubeedge/releases/download/v1.1.0/kubeedge-v1.1.0-linux-amd64.tar.gz
tar -xzvf kubeedge-v1.1.0-linux-amd64.tar.gz
mv kubeedge-v1.1.0-linux-amd64 kubeedge-v1.1.0
cp kubeedge/cloud/cloudcore /usr/local/bin/

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

2.1 kubeedge证书生成

cd /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge/build/tools/
bash certgen.sh genCertAndKey edge
tar -cvzf certs.tgz /etc/kubeedge/certs/

2.2 安装crds

kubectl create -f devices_v1alpha1_device.yaml
kubectl create -f devices_v1alpha1_devicemodel.yaml

2.3 修改配置文件:

mkdir /etc/kubeedge/cloudcore
cp -r /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge-v1.1.0/cloud/cloudcore/conf /etc/kubeedge/cloudcore/
export GOARCHAIUS_CONFIG_PATH=/etc/kubeedge/cloudcore
vim /etc/kubeedge/cloudcore/conf/controller.yaml

controller.yaml文件内容如下,主要修改两处地方:
1)master地址
2)kubeconfig文件所在的地址

controller:
  kube:
    master: "https://192.168.56.105:6443"    # kube-apiserver address (such as:http://localhost:8080)
    namespace: ""
    content_type: "application/vnd.kubernetes.protobuf"
    qps: 5
    burst: 10
    node_update_frequency: 10
    kubeconfig: "/root/.kube/config"   #Enter path to kubeconfig file to enable https connection to k8s apiserver, if master and kubeconfig are both set, master will override any value in kubeconfig.
cloudhub:
  protocol_websocket: true # enable websocket protocol
  port: 10000 # open port for websocket server
  protocol_quic: true # enable quic protocol
  quic_port: 10001 # open prot for quic server
  max_incomingstreams: 10000 # the max incoming stream for quic server
  enable_uds: true # enable unix domain socket protocol
  uds_address: unix:///var/lib/kubeedge/kubeedge.sock # unix domain socket address
  address: 0.0.0.0
  ca: /etc/kubeedge/ca/rootCA.crt
  cert: /etc/kubeedge/certs/edge.crt
  key: /etc/kubeedge/certs/edge.key
  keepalive-interval: 30
  write-timeout: 30
  node-limit: 10
devicecontroller:
  kube:
    master: "https://192.168.56.105:6443"       # kube-apiserver address (such as:http://localhost:8080)
    namespace: ""
    content_type: "application/vnd.kubernetes.protobuf"
    qps: 5
    burst: 10
    kubeconfig: "/root/.kube/config" #Enter path to kubeconfig file to enable https connection to k8s apiserver,if master and kubeconfig are both set, master will override any value in kubeconfig.

2.4 启动cloudcore进程

cp /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge-v1.1.0/cloud/cloudcore/cloudcore /usr/local/bin/
cloudcore > /var/log/kubeedge/cloudcore.log

2.5、创建node

cd /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge/build/
vim node.json
{
  "kind": "Node",
  "apiVersion": "v1",
  "metadata": {
    "name": "bluejoy-jing",
    "labels": {
      "name": "edge-node",
      "node-role.kubernetes.io/edge": ""
    }
  }
}

执行下一步命令之前,请先修改node.json文件中的metadata.name的值为edge节点的hostname

# kubectl apply -f node.json

3、kubeedge边端部分配置

3.1 安装Mosquitto

1)添加 apt-get 源:

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

2)安装:

apt-get install mosquitto

3.2 拷贝证书(master节点)

scp -r /etc/kubeedge/certs root@192.168.56.111:/etc/kubeedge/

3.3 拷贝二进制程序(master节点)

scp -r /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge-v1.1.0 root@192.168.56.111:/etc/kubeedge/

3.4 修改edgecore的配置文件(edge节点)

vim /etc/kubeedge/kubeedge-v1.1.0/edge/conf/edge.yaml

根据自己的情况,修改以下部分的内容:
1)edgehub.websocket.url中的IP地址和edge节点的主机名称
2)edgehub.controller.node-id的值为edge节点的主机名称
3)edged.hostname-override的值为edge节点的主机名称
4)edged.interface-name的值根据edge节点的网络接口的名称进行修改,我的是enp0s8
5)edged.cgroup-driver根据edged节点上的实际值进行修改(可以通过docker info命令查看具体的值)

mqtt:
    server: tcp://127.0.0.1:1883 # external mqtt broker url.
    internal-server: tcp://127.0.0.1:1884 # internal mqtt broker url.
    mode: 0 # 0: internal mqtt broker enable only. 1: internal and external mqtt broker enable. 2: external mqtt broker enable only.
    qos: 0 # 0: QOSAtMostOnce, 1: QOSAtLeastOnce, 2: QOSExactlyOnce.
    retain: false # if the flag set true, server will store the message and can be delivered to future subscribers.
    session-queue-size: 100 # A size of how many sessions will be handled. default to 100.

edgehub:
    websocket:
        url: wss://192.168.56.105:10000/e632aba927ea4ac2b575ec1603d56f10/bluejoy-Jing/events
        certfile: /etc/kubeedge/certs/edge.crt
        keyfile: /etc/kubeedge/certs/edge.key
        handshake-timeout: 30 #second
        write-deadline: 15 # second
        read-deadline: 15 # second
    quic:
        url: 127.0.0.1:10001
        cafile: /etc/kubeedge/ca/rootCA.crt
        certfile: /etc/kubeedge/certs/edge.crt
        keyfile: /etc/kubeedge/certs/edge.key
        handshake-timeout: 30 #second
        write-deadline: 15 # second
        read-deadline: 15 # second
    controller:
        protocol: websocket # websocket, quic
        heartbeat: 15  # second
        project-id: e632aba927ea4ac2b575ec1603d56f10
        node-id: bluejoy-Jing

edged:
    register-node-namespace: default
    hostname-override: bluejoy-Jing
    interface-name: enp0s8
    edged-memory-capacity-bytes: 7852396000
    node-status-update-frequency: 10 # second
    device-plugin-enabled: false
    gpu-plugin-enabled: false
    image-gc-high-threshold: 80 # percent
    image-gc-low-threshold: 40 # percent
    maximum-dead-containers-per-container: 1
    docker-address: unix:///var/run/docker.sock
    runtime-type: docker
    remote-runtime-endpoint: unix:///var/run/dockershim.sock
    remote-image-endpoint: unix:///var/run/dockershim.sock
    runtime-request-timeout: 2
    podsandbox-image: kubeedge/pause:3.1 # kubeedge/pause:3.1 for x86 arch , kubeedge/pause-arm:3.1 for arm arch, kubeedge/pause-arm64 for arm64 arch
    image-pull-progress-deadline: 60 # second
    cgroup-driver: cgroupfs
    node-ip: ""
    cluster-dns: ""
    cluster-domain: ""

mesh:
    loadbalance:
        strategy-name: RoundRobin

3.5 启动edgecore进程 (dege节点)

export GOARCHAIUS_CONFIG_PATH=/etc/kubeedge/kubeedge-v1.1.0/edge
cp /etc/kubeedge/kubeedge-v1.1.0/edge/edgecore /usr/local/bin
edgecore > /var/log/kubeedge/edgecore.log

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

4.1 查看edge节点是否ready

在这里插入图片描述

4.2 部署一个deployment进行验证

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

在这里插入图片描述

4.3 删除deployment

kubectl delete -f /home/bluejoy/kubeedge/deploy-v1.1.0/kubeedge/build/deployment.yaml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值