1. 程式人生 > 程式設計 >kubeedge安裝教程(CentOS7.7)

kubeedge安裝教程(CentOS7.7)

該教程是在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原始碼分析群二維碼入口