docker的cgroup和集群kubelet的要一致,木搞明白为啥需要一致?
以上安装可参考我的笔记有关内容
如果边缘节点为centos可以只直接yum安装mosquitto,如果为其他系统参见官方文档, centos执行以下命令:
yum install epel*-y&&yum install-y mosquitto&&mosquitto-d-p1883
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedgecd $GOPATH/src/github.com/kubeedge/kubeedge
要为KubeEdge进行设置,需要RootCA证书和一个证书/密钥对。云和边缘都可以使用相同的证书/密钥对。
$GOPATH/src/github.com/kubeedge/kubeedge/build/tools/certgen.sh genCertAndKey edge
gcc --version
cd $GOPATH/src/github.com/kubeedge/kubeedge/make all WHAT=cloudcore
编译时因为墙的问题,可能拉不下来,可以使用vendor,根据屏幕输出的go build命令添加-mod vendor参数即可
cd $GOPATH/src/github.com/kubeedge/kubeedge/build/crds/deviceskubectl create -f devices_v1alpha1_devicemodel.yamlkubectl create -f devices_v1alpha1_device.yaml
cd $GOPATH/src/github.com/kubeedge/kubeedge/cloudmkdir -p ~/cmd/confcp cloudcore ~/cmd/cp -rf conf/* ~/cmd/conf/
~/cmd/dir是一个示例,在以下示例中,我们继续使用~/cmd/作为二进制启动目录。您 可以将cloudcore或edgecore二进制文件移动到任何地方,但需要在与二进制文件相同的目录中创建conf目录。 如果cloud和edge是同一台机器请注意和edgecore分开目录
cd ~/cmd/confvim controller.yaml
大多默认配置即可,具体内容不再展示,在实验过程中发现 "~/"不能识别改成绝对路径就好了,但是看了下kubeedge的代码,直接用的client-go调用的kubeconfig文件,布吉岛咋回事
cd ~/cmd/nohup ./cloudcore &
也可以使用systemd启动cloudcore。如果需要,可以使用示例systemd-unit-file。以下命令将向您展示如何进行设置:
sudo ln build/tools/cloudcore.service /etc/systemd/system/cloudcore.servicesudo systemctl daemon-reloadsudo systemctl start cloudcore
请在cloudcore.service中修改ExecStart路径。不要使用相对路径,而要使用绝对路径
我们提供了一个示例node.json来在kubernetes中添加一个节点。请确保在Kubernetes中添加了Edge节点。运行以下步骤以添加边缘节点
$GOPATH/src/github.com/kubeedge/kubeedge/build/node.json
并且更改 metadata.name 为自己的边缘节点名称mkdir ~/cmd/yamlcp $GOPATH/src/github.com/kubeedge/kubeedge/build/node.json ~/cmd/yaml
node-role.kubernetes.io/edge
的标签必须设置node-role.kubernetes.io/edge
添加到 build/node.json
文件中{ "kind": "Node", "apiVersion": "v1", "metadata": { "name": "edge-node", "labels": { "name": "edge-node", "node-role.kubernetes.io/edge": "" } }}
name需要用到,edgecore上报的名称需要与这里一致
kubectl apply -f ~/cmd/yaml/node.json
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedgecd $GOPATH/src/github.com/kubeedge/kubeedge
cd $GOPATH/src/github.com/kubeedge/kubeedgemake all WHAT=edgecore
mkdir ~/cmd/confcp $GOPATH/src/github.com/kubeedge/kubeedge/edge/conf/* ~/cmd/confvim ~/cmd/conf/edge.yaml
edgecore和cloudcore在一台,默认配置即可,如果不在一台请修改edgehub对应配置
cp $GOPATH/src/github.com/kubeedge/kubeedge/edge/edgecore ~/cmd/cd ~/cmd./edgecore# ornohup ./edgecore > edgecore.log 2>&1 &
sudo ln build/tools/edgecore.service /etc/systemd/system/edgecore.servicesudo systemctl daemon-reloadsudo systemctl start edgecoresudo systemctl enable edgecore
kubectl get nodes
请按照以下步骤尝试部署示例应用程序。
kubectl apply -f $GOPATH/src/github.com/kubeedge/kubeedge/build/deployment.yaml
kubectl get pods