kubeedge安装教程(CentOS7.7)

3,002 阅读2分钟

该教程是在kubernetes已经安装成功的基础上安装kubeedge。

安装说明

  1. kubeedge v1.0.0

安装cloud端

修改k8s master节点配置

cloud端是kubeedge中与kube-apiserver交互的组件,在该教程中cloud端与kube-apiserver交互使用的是非安全端口需要在k8s master节点上做如下修改:

vi /etc/kubernetes/manifests/kube-apiserver.yaml
# Add the following flags in spec: containers: -command section
- --insecure-port=8080
- --insecure-bind-address=0.0.0.0

下载安装包

可以通过两种方式下载安装包(1)通过curl直接下载,(2)在kubeedge的release仓库中下载

通过curl直接下载

VERSION="v1.0.0"
OS="linux"
ARCH="amd64"
curl -L "https://github.com/kubeedge/kubeedge/releases/download/${VERSION}/kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz" --output kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz && tar -xf kubeedge-${VERSION}-${OS}-${ARCH}.tar.gz  -C /etc

注意:通过curl直接下载,由于网速问题一般需要时间比较久,失败的可能较大。

在kubeedge的release仓库中下载

进入kubeedge的github仓库中的KubeEdge v1.0.0 release,下载kubeedge-v1.0.0-linux-amd64.tar.gz ,将下载的安装包上传到k8s master节点的/root目录下,进行如下操作:

#tar -zxvf kubeedge-v1.0.0-linux-amd64.tar.gz
# mv kubeedge-v1.0.0-linux-amd64 /etc/kubeedge

在k8s master节点生成证书

生成的证书用来在kubeedge的edge端与cloud端的加密通信,证书生成步骤如下:

wget -L https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/tools/certgen.sh
# make script executable
chmod +x certgen.sh
bash -x ./certgen.sh genCertAndKey edge

上述步骤执行成功之后,会在/etc/kubeedge下生成ca和certs两个目录。

在/etc/kubeedge/cloud/conf/controller.yaml中针对刚生成的证书路径对如下部分进行修改:

cloudhub.ca
cloudhub.cert
cloudhub.key

注意: 默认上述三个的路径是不需要修改的。

创建device model 和 device CRDs

在k8s master节点上创建kubeedge所需的device model和device CRDs,创建步骤如下:

wget -L https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha1_devicemodel.yaml
# make script executable
chmod +x devices_v1alpha1_devicemodel.yaml
kubectl create -f devices_v1alpha1_devicemodel.yaml
wget -L https://raw.githubusercontent.com/kubeedge/kubeedge/master/build/crds/devices/devices_v1alpha1_device.yaml
 # make script executable
chmod +x devices_v1alpha1_device.yaml
kubectl create -f devices_v1alpha1_device.yaml

运行cloud端

在k8s master节点上运行kubeedge的cloud端。

 cd /etc/kubeedge/cloud
# run edge controller
# `conf/` should be in the same directory where cloudcore resides
# verify the configurations before running cloud(cloudcore)
./cloudcore

注意: 除了上述方式外,还可以通过systemd来运行。

安装edge端

edge端是kubeedge运行在边缘设备上的部分,在edge端运行之前需要安装合适的容器runtime:docker,containerd和cri-o。

准备edge端安装包

因为证书问题,可以将k8s master节点上的/etc/kubeedge直接拷贝到edge节点的/etc下,具体步骤:

scp -r /etc/kubeedge root@[edge节点ip]:/etc

在k8s master节点上创建edge节点的node

# vi node.json

{
    "kind": "Node",
    "apiVersion": "v1",
    "metadata": {
     "name": "edge-node",
    "labels": {
    "name": "edge-node",
     "node-role.kubernetes.io/edge": ""
    }
    }
}

# kubectl create -f node.json

修改edge端的配置

修改两部分内容:(1)edge端连接cloud端的ip(2)edge端的name与在k8s master上创建的node相对应。

# edge端连接cloud端的ip
edgehub.websocket.url:ip修改成k8s master ip端口不变
edgehub.quic.url:ip修改成k8s master ip端口不变

#edge端的name与在k8s master上创建的node相对应

controller:node-id:与在k8s master上创建的node的name保持一致
edged:hostname-override:与在k8s master上创建的node的name保持一致

运行edge端

run edgecore

cd /etc/kubeedge/edge

./edgecore

注意: 除了上述方式外,还可以通过systemd来运行。

之江实验室kubeedge源码分析群二维码入口