kubeedge安裝教程(CentOS7.7)
該教程是在kubernetes已經安裝成功的基礎上安裝kubeedge。
安裝說明
- 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來執行。