diff options
| author | kuramal <linxxnil@126.com> | 2020-01-20 16:57:17 +0800 |
|---|---|---|
| committer | kuramal <linxxnil@126.com> | 2020-01-21 16:36:02 +0800 |
| commit | 81fdf007845b5b7492dd15a73e3b21fbea0e774c (patch) | |
| tree | 6ddc3a3e6eacd14548ae4bf8649eb9cb42fc21b1 | |
| parent | Merge pull request #1393 from kadisi/component_use_new_config (diff) | |
| download | kubeedge-81fdf007845b5b7492dd15a73e3b21fbea0e774c.tar.gz | |
update the setup docs about configuration file, and clean the old configuration file
Signed-off-by: kuramal <linxxnil@126.com>
| -rw-r--r-- | build/edge/Dockerfile | 1 | ||||
| -rw-r--r-- | build/edgesite/Dockerfile | 1 | ||||
| -rw-r--r-- | cloud/conf/controller.yaml | 30 | ||||
| -rw-r--r-- | cloud/conf/modules.yaml | 2 | ||||
| -rw-r--r-- | docs/setup/setup.md | 209 | ||||
| -rw-r--r-- | edge/conf/edge.yaml | 56 | ||||
| -rw-r--r-- | edge/conf/modules.yaml | 2 | ||||
| -rw-r--r-- | edgesite/conf/edgeSite.yaml | 50 | ||||
| -rw-r--r-- | edgesite/conf/modules.yaml | 2 |
9 files changed, 90 insertions, 263 deletions
diff --git a/build/edge/Dockerfile b/build/edge/Dockerfile index e5fe0b2c3..cacb9b325 100644 --- a/build/edge/Dockerfile +++ b/build/edge/Dockerfile @@ -25,6 +25,5 @@ ENV database.source /var/lib/kubeedge/edge.db VOLUME ["/etc/kubeedge/certs", "/var/lib/edged", "/var/lib/kubeedge", "/var/run/docker.sock"] COPY --from=builder /usr/local/bin/edgecore /usr/local/bin/edgecore -COPY --from=builder /go/src/github.com/kubeedge/kubeedge/edge/conf /etc/kubeedge/edge/conf ENTRYPOINT ["edgecore"] diff --git a/build/edgesite/Dockerfile b/build/edgesite/Dockerfile index b96ddd065..98fa15b21 100644 --- a/build/edgesite/Dockerfile +++ b/build/edgesite/Dockerfile @@ -23,6 +23,5 @@ ENV database.source /var/lib/kubeedge/edge.db VOLUME ["/etc/kubeedge/certs", "/var/lib/edged", "/var/lib/kubeedge", "/var/run/docker.sock"] COPY --from=builder /usr/local/bin/edgesite /usr/local/bin/edgesite -COPY --from=builder /go/src/github.com/kubeedge/kubeedge/edgesite/conf /etc/kubeedge/edgesite/conf ENTRYPOINT ["edgesite"] diff --git a/cloud/conf/controller.yaml b/cloud/conf/controller.yaml deleted file mode 100644 index 37e447dde..000000000 --- a/cloud/conf/controller.yaml +++ /dev/null @@ -1,30 +0,0 @@ -controller: - kube: - master: # kube-apiserver address (such as:http://localhost:8080) - content_type: "application/vnd.kubernetes.protobuf" - qps: 5 - burst: 10 - node_update_frequency: 10 - kubeconfig: "/root/.kube/config" #Enter absolute 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: # kube-apiserver address (such as:http://localhost:8080) - content_type: "application/vnd.kubernetes.protobuf" - qps: 5 - burst: 10 - kubeconfig: "/root/.kube/config" #Enter absolute 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. diff --git a/cloud/conf/modules.yaml b/cloud/conf/modules.yaml deleted file mode 100644 index 471079d9a..000000000 --- a/cloud/conf/modules.yaml +++ /dev/null @@ -1,2 +0,0 @@ -modules: - enabled: [devicecontroller, edgecontroller, cloudhub] diff --git a/docs/setup/setup.md b/docs/setup/setup.md index 4f1e233c4..37abaa995 100644 --- a/docs/setup/setup.md +++ b/docs/setup/setup.md @@ -74,64 +74,53 @@ The cert/key will be generated in the `/etc/kubeedge/ca` and `/etc/kubeedge/cert kubectl create -f devices_v1alpha1_device.yaml ``` -+ Copy cloudcore binary and config file ++ Copy cloudcore binary ```shell cd $GOPATH/src/github.com/kubeedge/kubeedge/cloud - # run edge controller - # `conf/` should be in the same directory as the cloned KubeEdge repository - # verify the configurations before running cloud(cloudcore) - mkdir -p ~/cmd/conf + mkdir -p ~/cmd cp cloudcore ~/cmd/ - cp -rf conf/* ~/cmd/conf/ ``` - **Note** `~/cmd/` dir is an example, in the following examples we continue to use `~/cmd/` as the binary startup directory. You can move `cloudcore` or `edgecore` binary to anywhere, but you need to create `conf` dir in the same directory as binary. + **Note** `~/cmd/` dir is an example, in the following examples we continue to use `~/cmd/` as the binary startup directory. You can move `cloudcore` or `edgecore` binary to anywhere. -+ Set cloudcore config file ++ Create and set cloudcore config file ```shell - cd ~/cmd/conf - vim controller.yaml + # the default configration file path is '/etc/kubeedge/config/cloudcore.yaml' + # also you can specify it anywhere with '--config' + mkdir -p /etc/kubeedge/config/ + + # create a minimal configuration with command `~/cmd/cloudcore --minconfig` + # or a full configuration with command `~/cmd/cloudcore --defaultconfig` + ~/cmd/cloudcore --minconfig > /etc/kubeedge/config/cloudcore.yaml + vim /etc/kubeedge/config/cloudcore.yaml + ``` verify the configurations before running `cloudcore` ``` - controller: - kube: - master: # 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 absolute 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: # kube-apiserver address (such as:http://localhost:8080) - namespace: "" - content_type: "application/vnd.kubernetes.protobuf" - qps: 5 - burst: 10 - kubeconfig: "/root/.kube/config" #Enter absolute 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. + apiVersion: cloudcore.config.kubeedge.io/v1alpha1 + kind: CloudCore + kubeAPIConfig: + kubeConfig: /root/.kube/config #Enter absolute 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. + master: "" # kube-apiserver address (such as:http://localhost:8080) + modules: + cloudhub: + nodeLimit: 10 + tlsCAFile: /etc/kubeedge/ca/rootCA.crt + tlsCertFile: /etc/kubeedge/certs/edge.crt + tlsPrivateKeyFile: /etc/kubeedge/certs/edge.key + unixsocket: + address: unix:///var/lib/kubeedge/kubeedge.sock # unix domain socket address + enable: true # enable unix domain socket protocol + websocket: + address: 0.0.0.0 + enable: true # enable websocket protocol + port: 10000 # open port for websocket server ``` - cloudcore default supports https connection to Kubernetes apiserver, so you need to check whether the path for `controller.kube.kubeconfig` and `devicecontroller.kube.kubeconfig` exist, but if `master` and `kubeconfig` are both set, `master` will override any value in kubeconfig. - Check whether the cert files for `cloudhub.ca`, `cloudhub.cert`,`cloudhub.key` exist. + cloudcore use https connection to Kubernetes apiserver as default, so you should make sure the `kubeAPIConfig.kubeConfig` exist, but if `master` and `kubeConfig` are both set, `master` will override any value in kubeconfig. + Check whether the cert files for `modules.cloudhub.tlsCAFile`, `modules.cloudhub.tlsCertFile`,`modules.cloudhub.tlsPrivateKeyFile` exists. + Run cloudcore @@ -213,8 +202,6 @@ The Edge part of KubeEdge uses MQTT for communication between deviceTwin and dev 2) bothMqttMode: internal as well as external broker are enabled. 3) externalMqttMode: only external broker is enabled. -Use mode field in [edge.yaml](https://github.com/kubeedge/kubeedge/blob/master/edge/conf/edge.yaml#L4) to select the desired mode. - To use KubeEdge in double mqtt or external mode, you need to make sure that [mosquitto](https://mosquitto.org/) or [emqx edge](https://www.emqx.io/downloads/edge) is installed on the edge node as an MQTT Broker. ##### Run as a binary @@ -244,90 +231,75 @@ To use KubeEdge in double mqtt or external mode, you need to make sure that [mos **Note:** If you are using the smaller version of the binary, it is compressed using upx, therefore the possible side effects of using upx compressed binaries like more RAM usage, lower performance, whole code of program being loaded instead of it being on-demand, not allowing sharing of memory which may cause the code to be loaded to memory more than once etc. are applicable here as well. - -+ Set edgecore config file + ++ Copy edgecore binary ```shell - mkdir ~/cmd/conf - cp $GOPATH/src/github.com/kubeedge/kubeedge/edge/conf/* ~/cmd/conf - vim ~/cmd/conf/edge.yaml + cd $GOPATH/src/github.com/kubeedge/kubeedge/edge + mkdir -p ~/cmd + cp edgecore ~/cmd/ ``` + **Note:** `~/cmd/` dir is also an example as well as `cloudcore` + ++ Create and set edgecore config file - **Note:** `~/cmd/` dir is also an example as well as `cloudcore`, `conf/` should be in the same directory as edgecore binary, - + ```shell + # the default configration file path is '/etc/kubeedge/config/edgecore.yaml' + # also you can specify it anywhere with '--config' + mkdir -p /etc/kubeedge/config/ + + # create a minimal configuration with command `~/cmd/edgecore --minconfig` + # or a full configuration with command `~/cmd/edgecore --defaultconfig` + ~/cmd/edgecore --minconfig > /etc/kubeedge/config/edgecore.yaml + vim /etc/kubeedge/config/edgecore.yaml + ``` verify the configurations before running `edgecore` ``` - 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: + apiVersion: edgecore.config.kubeedge.io/v1alpha1 + database: + dataSource: /var/lib/kubeedge/edgecore.db + kind: EdgeCore + modules: + edged: + cgroupDriver: cgroupfs + clusterDNS: "" + clusterDomain: "" + devicePluginEnabled: false + dockerAddress: unix:///var/run/docker.sock + gpuPluginEnabled: false + hostnameOverride: $your_hostname + interfaceName: eth0 + nodeIP: $your_ip_address + podSandboxImage: 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 + remoteImageEndpoint: unix:///var/run/dockershim.sock + remoteRuntimeEndpoint: unix:///var/run/dockershim.sock + runtimeType: docker + edgehub: + heartbeat: 15 # second + tlsCaFile: /etc/kubeedge/ca/rootCA.crt + tlsCertFile: /etc/kubeedge/certs/edge.crt + tlsPrivateKeyFile: /etc/kubeedge/certs/edge.key websocket: - url: wss://0.0.0.0:10000/e632aba927ea4ac2b575ec1603d56f10/edge-node/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: edge-node - - edged: - register-node-namespace: default - hostname-override: edge-node - interface-name: eth0 - 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 + enable: true + handshakeTimeout: 30 # second + readDeadline: 15 # second + server: 127.0.0.1:10000 # cloudcore address + writeDeadline: 15 # second + eventbus: + mqttMode: 2 # 0: internal mqtt broker enable only. 1: internal and external mqtt broker enable. 2: external mqtt broker + mqttQOS: 0 # 0: QOSAtMostOnce, 1: QOSAtLeastOnce, 2: QOSExactlyOnce. + mqttRetain: false # if the flag set true, server will store the message and can be delivered to future subscribers. + mqttServerExternal: tcp://127.0.0.1:1883 # external mqtt broker url. + mqttServerInternal: tcp://127.0.0.1:1884 # internal mqtt broker url. ``` - + Check whether the cert files for `edgehub.websocket.certfile` and `edgehub.websocket.keyfile` exist. - + Check whether the cert files for `edgehub.quic.certfile` ,`edgehub.quic.keyfile` and `edgehub.quic.cafile` exist. If those files not exist, you need to copy them from cloud side. - + Check `edged.podsandbox-image` + + Check `modules.edged.podSandboxImage` + `kubeedge/pause-arm:3.1` for arm arch + `kubeedge/pause-arm64:3.1` for arm64 arch + `kubeedge/pause:3.1` for x86 arch - + Update the IP address of the master in the `edgehub.websocket.url` field. You need set cloudcore ip address. - + If you use quic protocol, please update the IP address of the master in the `edgehub.quic.url` field. You need set cloudcore ip address. - + replace `edge-node` with edge node name in edge.yaml for the below fields : - + `websocket:URL` - + `controller:node-id` - + `edged:hostname-override` + + Check whether the cert files for `modules.edgehub.tlsCaFile` and `modules.edgehub.tlsCertFile` and `modules.edgehub.tlsPrivateKeyFile` exists. + If those files not exist, you need to copy them from cloud side. + + Check `modules.edgehub.websocket.server`. It should be your cloudcore ip address. + Run edgecore @@ -337,7 +309,6 @@ To use KubeEdge in double mqtt or external mode, you need to make sure that [mos # or run emqx edge # emqx start - cp $GOPATH/src/github.com/kubeedge/kubeedge/edge/edgecore ~/cmd/ cd ~/cmd ./edgecore # or diff --git a/edge/conf/edge.yaml b/edge/conf/edge.yaml deleted file mode 100644 index 079814494..000000000 --- a/edge/conf/edge.yaml +++ /dev/null @@ -1,56 +0,0 @@ -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://0.0.0.0:10000/e632aba927ea4ac2b575ec1603d56f10/edge-node/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: edge-node - -edged: - register-node-namespace: default - hostname-override: edge-node - interface-name: eth0 - 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 diff --git a/edge/conf/modules.yaml b/edge/conf/modules.yaml deleted file mode 100644 index 893b7e48a..000000000 --- a/edge/conf/modules.yaml +++ /dev/null @@ -1,2 +0,0 @@ -modules: - enabled: [eventbus, servicebus, websocket, metaManager, edged, twin, dbTest, edgemesh] diff --git a/edgesite/conf/edgeSite.yaml b/edgesite/conf/edgeSite.yaml deleted file mode 100644 index 21cc0ff20..000000000 --- a/edgesite/conf/edgeSite.yaml +++ /dev/null @@ -1,50 +0,0 @@ -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. - -controller: - kube: - master: http://localhost:8080 - namespace: "default" - content_type: "application/vnd.kubernetes.protobuf" - qps: 5 - burst: 10 - node_update_frequency: 10 - node-id: edge-node - node-name: edge-node - context: - send-module: metaManager - receive-module: edgecontroller - response-module: metaManager - -edged: - register-node-namespace: default - hostname-override: edge-node - interface-name: eth0 - 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: k8s.gcr.io/pause - image-pull-progress-deadline: 60 # second - cgroup-driver: cgroupfs - node-ip: "" - cluster-dns: "" - cluster-domain: "" - edged-memory-capacity-bytes: 7852396000 - -metamanager: - context-send-group: edgecontroller - context-send-module: edgecontroller - edgesite: true diff --git a/edgesite/conf/modules.yaml b/edgesite/conf/modules.yaml deleted file mode 100644 index 05e16a583..000000000 --- a/edgesite/conf/modules.yaml +++ /dev/null @@ -1,2 +0,0 @@ -modules: - enabled: [edgecontroller, metaManager, edged, dbTest] |
