KubeEdge环境搭建——使用keadm
KubeEdge部署准备工作Master节点配置Edge节点配置准备工作首先要配置好Kubernetes集群使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(1)准备工作Master节点配置进入GitHub的release页面复制keadm的下载地址,使用wget命令下载:wget https://github.com/kubeedge/kubeedge/r
KubeEdge部署
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
本教程已过时,请看最新版本
https://blog.csdn.net/weixin_43168190/article/details/127422527
准备工作
首先要配置好Kubernetes集群
使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(1)准备工作
在Master节点要启动Kubernetes集群,即使用kubeadm init
命令,可以看上面教程(2)中的前半部分,在worker节点上不要加入集群,不要使用kubeadm join
命令,因为我们要用kubeedge来加入。
Cloud节点配置
进入GitHub的release页面复制keadm的下载地址,使用wget命令下载:(注意自己去GitHub找地址,我这里用的是1.11.2的arm版,跟一般amd64的机器不一样,不要完全复制我的)
wget https://github.com/kubeedge/kubeedge/releases/download/v1.11.2/keadm-v1.11.2-linux-arm64.tar.gz
解压下载好的文件
tar -zxvf keadm-v1.11.2-linux-arm64.tar.gz
然后进入解压后的目录
cd keadm-v1.11.2-linux-arm64/keadm
然后运行
./keadm init
我这里出现了这样的错误:
等待条件超时
参考另一个老哥说的是因为cloudcore的部署文件里没有写污点容忍,而主节点是有一个“我是主节点”这样一个污点,所以cloudcore就无法部署。但这个配置文件应该是内置在keadm里的,不能改,即使按那个老哥的方法改了,手动改了,但是继续运行keadm后续步骤时,他会让你重置keadm,就很不合理。我用的办法是去除master节点的污点
kubectl taint nodes --all node-role.kubernetes.io/master-
然后重置一下keadm
./keadm reset
这次就正常了,等待下载完成后,结果如下:
CloudCore成功启动。
使用
./keadm gettoken
获取token
Edge节点配置
下载keadm,与上面Master的下载方法相同
wget https://github.com/kubeedge/kubeedge/releases/download/v1.11.2/keadm-v1.11.2-linux-arm64.tar.gz
解压下载好的文件
tar -zxvf keadm-v1.11.2-linux-arm64.tar.gz
然后进入解压后的目录
cd keadm-v1.11.2-linux-arm64/keadm
然后这里就和CloudCore不一样了,首先要获取token,在Cloudcore执行
./keadm gettoken
输出:
root@master:/home/default/keadm-v1.11.2-linux-arm64/keadm# ./keadm gettoken
9dcc80989de5d5e20d0280120127aec1d45751ba07e2405de877e573fec4d804.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjYzMjM0MzR9.t-yGshvDHLAcKdjVIBW6ZaKz8IGtLl9qMWrqEC8jSAQroot@master:/home/default/keadm-v1.11.2-linux-arm64/keadm#
注意这里它没有换行,token的结尾是在用户名前面,也就是我这里第二行的root前面,复制出来。
在边缘端执行:
#<ip>是master的ip,<token>就是上面获取的token
./keadm join --cloudcore-ipport=<ip>:10000 --token=<token>
我这里是:
./keadm join --cloudcore-ipport=192.168.224.128:10000 --token=d1d954a9f2e6a326124c4b4c1fa06106dd889705cdaac8d473ddae5e9cdb1894.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTQ5NjUwMTF9.luIKz7WTaaYkA9OKxHaBkU7QmH1MeJzquI1iiwsJY4o
在Master上验证是否成功,使用
kubectl get nodes -owide
如果出现版本中带有kubeedge的node,则说明部署成功。如果没有,可以去看edgecore的日志,在上面运行结果中提到:
journalctl -u edgecore.service -xe
我第一次失败的原因是Docker中Cgroup Driver的问题,因为kubeedge的默认驱动为cgroupfs,而我的docker以前把默认驱动改成了systemd,所以无法启动。解决方法是修改/etc/docker/daemon.json
,把 "exec-opts": ["native.cgroupdriver=systemd"]
删掉,注意不要把大括号删了。
重启一下docker
systemctl restart docker
然后主节点再去
kubectl get nodes
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)