diff options
| author | fisherxu <fisherxu1@gmail.com> | 2023-12-05 21:26:28 +0800 |
|---|---|---|
| committer | fisherxu <fisherxu1@gmail.com> | 2023-12-05 21:32:37 +0800 |
| commit | 0e54a47dae73212dd54081300fe612f2084df82a (patch) | |
| tree | ba1f6246ce92fd34469cc4946269978d9d1193dc /build | |
| parent | Merge pull request #5254 from Shelley-BaoYue/staticpodpath (diff) | |
| download | kubeedge-0e54a47dae73212dd54081300fe612f2084df82a.tar.gz | |
deprecate the edgecore containerized deployment solution
Signed-off-by: fisherxu <fisherxu1@gmail.com>
Diffstat (limited to 'build')
| -rw-r--r-- | build/edge/.env | 8 | ||||
| -rw-r--r-- | build/edge/README.md | 66 | ||||
| -rw-r--r-- | build/edge/README_zh.md | 65 | ||||
| -rw-r--r-- | build/edge/docker-compose.yaml | 52 | ||||
| -rwxr-xr-x | build/edge/run_daemon.sh | 197 |
5 files changed, 7 insertions, 381 deletions
diff --git a/build/edge/.env b/build/edge/.env deleted file mode 100644 index 5f1092b47..000000000 --- a/build/edge/.env +++ /dev/null @@ -1,8 +0,0 @@ -CLOUDHUB=0.0.0.0:10000 -EDGENAME=edge-node -EDGECOREIMAGE=kubeedge/edgecore:latest -ARCH=amd64 -QEMU_ARCH=x86_64 -CERTPATH=/etc/kubeedge/certs -CERTFILE=/etc/kubeedge/certs/edge.crt -KEYFILE=/etc/kubeedge/certs/edge.key diff --git a/build/edge/README.md b/build/edge/README.md index acb708cf8..430eb87eb 100644 --- a/build/edge/README.md +++ b/build/edge/README.md @@ -1,65 +1,7 @@ ## Deploy kubeedge's edge nodes using containers -This method will guide you to deploy the edge part running in docker -container and MQTT Broker, so make sure that docker engine listening on -`/var/run/docker.sock` which will then mount into the edge container. +**Note:** The files in this directory have been deprecated. The containerized deployment of edgecore should only be used for +testing and is not recommended for production use. -+ Check the container runtime environment - ```bash - cd build/edge - ./run_daemon.sh prepare - ``` - -+ Set container parameters - - The following parameters do not need to be set if they are not modified. - - | name | default | note | - | --------------- | --------------------------------- | -------------------------- | - | cloudhub | 0.0.0.0:10000 | | - | edgename | edge-node | | - | edgecore_image | kubeedge/edgecore:latest | | - | arch | amd64 | Optional: amd64 \| arm64v8 \| arm32v7 \| i386 \| s390x | - | qemu_arch | x86_64 | Optional: x86_64 \| aarch64 \| arm \| i386 \| s390x | - | certpath | /etc/kubeedge/certs | | - | certfile | /etc/kubeedge/certs/edge.crt | | - | keyfile | /etc/kubeedge/certs/edge.key | | - - ```shell - ./run_daemon.sh set \ - cloudhub=0.0.0.0:10000 \ - edgename=edge-node \ - edgecore_image="kubeedge/edgecore:latest" \ - arch=amd64 \ - qemu_arch=x86_64 \ - certpath=/etc/kubeedge/certs \ - certfile=/etc/kubeedge/certs/edge.crt \ - keyfile=/etc/kubeedge/certs/edge.key - ``` - -+ Build image - - ``` - ./run_daemon.sh build - ``` - -+ **(Optional)** If the performance of the edge is not enough, you can cross-compile the image of the edge on the cloud and load the image on the edge. - - - Set the CPU type - - ``` - ./run_daemon.sh set arch=arm64v8 qemu_arch=aarch64 - ``` - - Build image - ``` - ./run_daemon.sh build - ``` - - Save image - ``` - ./run_daemon.sh save - ``` - -+ Start container - ``` - ./run_daemon.sh up - ``` +- EdgeCore's containerized deployment solution for performance testing can be found in [EdgeMark](../edgemark) +- EdgeCore in docker, easily spin up a multi nodes KubeEdge cluster in just one machine, see [Keink sub-project](https://github.com/kubeedge/keink)
\ No newline at end of file diff --git a/build/edge/README_zh.md b/build/edge/README_zh.md index 19f1723c7..15b26ecc4 100644 --- a/build/edge/README_zh.md +++ b/build/edge/README_zh.md @@ -1,65 +1,6 @@ ## 使用容器部署kubeedge的边缘节点 -此方式将在容器中运行 edge 端和mqtt broker,所以需要确认 docker engine 监听在 -`/var/run/docker.sock`,这个之后需要挂载到容器中。 +**注意:** 此目录中的文件已被弃用。EdgeCore的容器化部署只建议用于测试,不建议在生产使用。 -+ 检查容器运行环境 - ``` - cd $GOPATH/src/github.com/kubeedge/kubeedge/build/edge - ./run_daemon.sh prepare - ``` - -+ 设置容器参数 - - 以下参数如果不用修改则无需设置 - - | 参数名称 | 默认值 | 备注 | - | ------------------- | ---------------------------- | ------------------------ | - | cloudhub | 0.0.0.0:10000 | | - | edgename | edge-node | | - | edgecore_image | kubeedge/edgecore:latest | | - | arch | amd64 | 可选值:amd64 \| arm64v8 \| arm32v7 \| i386 \| s390x | - | qemu_arch | x86_64 | 可选值:x86_64 \| aarch64 \| arm \| i386 \| s390x | - | certpath | /etc/kubeedge/certs | | - | certfile | /etc/kubeedge/certs/edge.crt | | - | keyfile | /etc/kubeedge/certs/edge.key | | - - ```shell - ./run_daemon.sh set \ - cloudhub=0.0.0.0:10000 \ - edgename=edge-node \ - edgecore_image="kubeedge/edgecore:latest" \ - arch=amd64 \ - qemu_arch=x86_64 \ - certpath=/etc/kubeedge/certs \ - certfile=/etc/kubeedge/certs/edge.crt \ - keyfile=/etc/kubeedge/certs/edge.key - ```` - -+ 编译容器镜像 - - ``` - ./run_daemon.sh build - ``` - -+ **(可选)** 如果edge的性能不够,可以在cloud上交叉编译edge的镜像,在edge端加载镜像 - - 设置CPU类型 - - ``` - ./run_daemon.sh set arch=arm64v8 qemu_arch=aarch64 - ``` - - - 编译镜像 - ``` - ./run_daemon.sh build - ``` - - - 保存镜像 - ``` - ./run_daemon.sh save - ``` - -+ 启动容器 - ``` - ./run_daemon.sh up - ``` +- EdgeCore用于性能测试的容器化部署方案见[EdgeMark](../edgemark) +- EdgeCore用于单机容器化部署测试见[Keink子项目](https://github.com/kubeedge/keink)
\ No newline at end of file diff --git a/build/edge/docker-compose.yaml b/build/edge/docker-compose.yaml deleted file mode 100644 index 09266f8d0..000000000 --- a/build/edge/docker-compose.yaml +++ /dev/null @@ -1,52 +0,0 @@ -version: "3" - -networks: - kubeedge-bridge: - driver: bridge - -services: - dind: - image: ${ARCH}/docker:dind - restart: always - privileged: true - networks: - - kubeedge-bridge - emqx: - image: emqx/emqx-edge:v3.1.1-${ARCH} - restart: always - networks: - - kubeedge-bridge - - edgecore: - image: ${EDGECOREIMAGE} - build: - context: ../.. - dockerfile: ./build/edge/Dockerfile - args: - - BUILD_FROM=${ARCH}/golang:1.12-alpine3.10 - - RUN_FROM=${ARCH}/docker:dind - - QEMU_ARCH=${QEMU_ARCH} - depends_on: - - emqx - - dind - environment: - mqtt.server: tcp://emqx:1883 - edgehub.websocket.url: wss://${CLOUDHUB}/e632aba927ea4ac2b575ec1603d56f10/${EDGENAME}/events - edged.hostname-override: ${EDGENAME} - edgehub.controller.node-id: ${EDGENAME} - edgehub.websocket.certfile: ${CERTFILE} - edgehub.websocket.keyfile: ${KEYFILE} - edged.docker-address: tcp://dind:2375 - DOCKER_HOST: tcp://dind:2375 - volumes: - - ${CERTPATH}:/etc/kubeedge/certs:ro - - /var/lib/edged:/var/lib/edged - - /var/lib/kubeedge:/var/lib/kubeedge - privileged: true - deploy: - resources: - limits: - cpus: '1.00' - memory: 1g - networks: - - kubeedge-bridge diff --git a/build/edge/run_daemon.sh b/build/edge/run_daemon.sh deleted file mode 100755 index 14022da54..000000000 --- a/build/edge/run_daemon.sh +++ /dev/null @@ -1,197 +0,0 @@ -#!/bin/bash -set -e - -QEMU_VERSION="${QEMU_VERSION:-v3.0.0}" - -main(){ - case $1 in - "prepare") - docker_prepare - ;; - "set") - docker_set $@ - ;; - "build") - docker_build - ;; - "save") - docker_save - ;; - "up") - docker_up - ;; - "down") - docker_down - ;; - "only_run_edge") - docker_only_run_edge $@ - ;; - *) - usage - exit 1 - ;; - esac -} - -usage() { - echo "Usage:" - echo "$0 prepare | set | build | save | up | down " -} - -docker_prepare(){ - if [ ! -d /etc/kubeedge/certs ] || [ ! -e /etc/kubeedge/certs/edge.crt ] || [ ! -e /etc/kubeedge/certs/edge.key ]; then - mkdir -p /etc/kubeedge/certs - echo "Certificate does not exist" - exit -1 - fi - - if [ ! -d /var/lib/kubeedge ]; then - mkdir -p /var/lib/kubeedge - fi - - if [ ! -d /var/lib/edged ]; then - mkdir -p /var/lib/edged - fi - - if [ ! -S /var/run/docker.sock ]; then - echo "docker engine not found" - exit -1 - fi - - eval $(sed -n '/CERTPATH/p' .env) - eval $(sed -n '/CERTFILE/p' .env) - eval $(sed -n '/KEYFILE/p' .env) - if [ ! -d ${CERTPATH} ] || [ ! -e ${CERTFILE} ] || [ ! -e ${KEYFILE} ]; then - mkdir -p ${CERTPATH} - echo "Certificate does not exist" - exit -1 - fi - - if [[ -z $(which docker-compose) ]]; then - curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - chmod +x /usr/local/bin/docker-compose - fi - echo "Container runtime environment check passed." -} - -docker_set(){ - # This script accepts the following parameters: - # - # * cloudhub - # * edgename - # * edgecore_image - # * arch - # * qemu_arch - # * certpath - # * certfile - # * keyfile - # - # Example - # - # ./run_daemon.sh set \ - # cloudhub=0.0.0.0:10000 \ - # edgename=edge-node \ - # edgecore_image="kubeedge/edgecore:latest" \ - # arch=amd64 \ - # qemu_arch=x86_64 \ - # certpath=/etc/kubeedge/certs \ - # certfile=/etc/kubeedge/certs/edge.crt \ - # keyfile=/etc/kubeedge/certs/edge.key - - ARGS=$@ - - CONFIG=${ARGS#* } - - for line in $CONFIG; do - eval "$line" - done - - [[ ! -z $cloudhub ]] && sed -i "/CLOUDHUB=/c\CLOUDHUB=${cloudhub}" .env && echo "set cloudhub success" - [[ ! -z $edgename ]] && sed -i "/EDGENAME=/c\EDGENAME=${edgename}" .env && echo "set edgename success" - [[ ! -z $edgecore_image ]] && sed -i "/EDGECOREIMAGE=/c\EDGECOREIMAGE=${edgecore_image}" .env && echo "set edgecore_image success" - [[ ! -z $arch ]] && sed -i "/\<ARCH\>/c\ARCH=${arch}" .env && echo "set arch success" - [[ ! -z $qemu_arch ]] && sed -i "/QEMU_ARCH=/c\QEMU_ARCH=${qemu_arch}" .env && echo "set qemu_arch success" - [[ ! -z $certpath ]] && sed -i "/CERTPATH=/c\CERTPATH=${certpath}" .env && echo "set certpath success" - [[ ! -z $certfile ]] && sed -i "/CERTFILE=/c\CERTFILE=${certfile}" .env && echo "set certfile success" - [[ ! -z $keyfile ]] && sed -i "/KEYFILE=/c\KEYFILE=${keyfile}" .env && echo "set keyfile success" -} - -docker_build(){ - eval $(sed -n '/QEMU_ARCH/p' .env) - - # Prepare qemu to build images other then x86_64 on travis - prepare_qemu ${QEMU_ARCH} - - docker-compose build -} - -docker_save(){ - eval $(sed -n '/EDGECOREIMAGE/p' .env) - docker save -o edgecore_image.tar $EDGECOREIMAGE -} - -docker_up(){ - docker-compose up -d -} - -docker_down(){ - docker-compose down -} - -docker_only_run_edge(){ - # This script accepts the following parameters: - # - # * mqtt - # * edgename - # * cloudhub - # * image - # - # Example - # - # ./run_daemon.sh only_run_edge mqtt=0.0.0.0:1883 cloudhub=0.0.0.0:10000 edgename=edge-node image="kubeedge/edgecore:latest" - - ARGS=$@ - - CONFIG=${ARGS#* } - - for line in $CONFIG; do - eval "$line" - done - - mqtt=${mqtt:-"0.0.0.0:1883"} - cloudhub=${cloudhub:-"0.0.0.0:10000"} - edgename=${edgename:-$(hostname)} - edgehubWebsocketUrl=wss://${cloudhub}/e632aba927ea4ac2b575ec1603d56f10/${edgename}/events - image=${image:-"kubeedge/edgecore:latest"} - containername=${containername:-"edgecore"} - - docker run -d --name ${containername} --restart always \ - --cpu-period=50000 --cpu-quota=100000 --memory=1g --privileged \ - -e edgehub.websocket.certfile=/etc/kubeedge/certs/edge.crt \ - -e edgehub.websocket.keyfile=/etc/kubeedge/certs/edge.key \ - -e mqtt.server=${mqtt} \ - -e edgehub.websocket.url=${edgehubWebsocketUrl} \ - -e edged.hostname-override=${edgename} \ - -e edgehub.controller.node-id=${edgename} \ - -v /etc/kubeedge/certs:/etc/kubeedge/certs:ro \ - -v /var/lib/edged:/var/lib/edged \ - -v /var/lib/kubeedge:/var/lib/kubeedge \ - -v /var/run/docker.sock:/var/run/docker.sock \ - ${image} -} - -prepare_qemu(){ - echo "PREPARE: Qemu" - QEMU_ARCH=${1} - # Prepare qemu to build non amd64 / x86_64 images - docker run --rm --privileged multiarch/qemu-user-static:register --reset - - rm -rf tmp - mkdir -p tmp - - pushd tmp && - curl -L -o qemu-${QEMU_ARCH}-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-${QEMU_ARCH}-static.tar.gz && tar xzf qemu-${QEMU_ARCH}-static.tar.gz && - popd -} - -main $@ |
