在前文kubeadm搭建k8s集群的基础上安装Kube Edge
再用前文制作的镜像创建一个虚拟机当做edge节点,没有的话,环境可以照着上一篇配一下,至于版本为什么用的1.6.2,因为现在最新1.7好多不兼容,后续要做实验
现在的兼容就是k8s版本1.19+KubeEdge1.6.2,然后才能被kubesphere支持
我的配置
192.168.80.10 k8s-master-lb #相当于ELB/SLB,若不是高可用集群,改IP为master01的IP
192.168.80.11 k8s-master01
192.168.80.12 k8s-master02
192.168.80.13 k8s-master03
192.168.80.21 k8s-node01
192.168.80.22 k8s-node02
现在多加入一台edge01
192.168.80.25 k8s-edge01
在master01节点和edge01节点安装go
yum install wget -y
wget https://golang.google.cn/dl/go1.15.3.linux-amd64.tar.gz
tar zxvf go1.15.3.linux-amd64.tar.gz
mv go /usr/local/
vim /etc/profile在最结尾添加
export HOME=/root
export GOROOT=/usr/local/go
export GOPATH=/opt/idcus/go
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
source /etc/profile
go version #查看是否生效
Cloud端
在master01节点上下载keadm1.6.2
wget https://github.com/kubeedge/kubeedge/releases/download/v1.6.2/keadm-v1.6.2-linux-amd64.tar.gz
tar -zxvf keadm-v1.6.2-linux-amd64.tar.gz
配置环境变量才能全局使用keadm命令
cp keadm /usr/local/sbin
说多了都是泪,由于国内要FQ,所以请自己准备好kubeedge文件,这步出现问题,大多是网络问题,可以自己去github下载好拖进来
mkdir /etc/kubeedge
cd /etc/kubeedge
wget https://github.com/kubeedge/kubeedge/releases/download/v1.6.2/kubeedge-v1.6.2-linux-amd64.tar.gz
使用keadm安装cloudcore,一遍不行,就多执行几遍,因为还要下载service文件,也是要FQ的问题
注意:这里的advertise-address为apiserver的IP地址,我apiserver配置了高可用,所以这里为192.168.80.10,如果没有配置高可用,那么这里改为你的master01的IP地址
keadm init --advertise-address="192.168.80.10" --kubeedge-version=1.6.2
[Run as service] start to download service file for cloudcore
[Run as service] success to download service file for cloudcore
kubeedge-v1.6.2-linux-amd64/
kubeedge-v1.6.2-linux-amd64/edge/
kubeedge-v1.6.2-linux-amd64/edge/edgecore
kubeedge-v1.6.2-linux-amd64/cloud/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/csidriver
kubeedge-v1.6.2-linux-amd64/cloud/admission/
kubeedge-v1.6.2-linux-amd64/cloud/admission/admission
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/cloudcore
kubeedge-v1.6.2-linux-amd64/version
KubeEdge cloudcore is running, For logs visit: /var/log/kubeedge/cloudcore.log
CloudCore started
获取token
keadm gettoken
1a2c1717df205f2f39b2257c00845c1cacc9772fc0f7ac0a8b409ee38cb6dcb4.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjg4NjQxNDF9.qcJba63gHDNZerT5txRvuUmqkgEG-VOf1gM-xh0g1Ho
如果过程有错,重新配置的命令如下
keadm reset
Edge端
将keadm安装包从master节点传到edge节点
scp keadm-v1.6.2-linux-amd64.tar.gz 192.168.80.25:/root
解压,配置环境变量
tar -zxvf keadm-v1.6.2-linux-amd64.tar.gz
cp keadm-v1.6.2-linux-amd64/keadm/keadm /usr/local/sbin
将kube edge安装包从master节点传到edge节点
mkdir /etc/kubeedge
scp /etc/kubeedge/kubeedge-v1.6.2-linux-amd64.tar.gz 192.168.80.25:/etc/kubeedge
加入CloudCore,同样,一遍不行,就多执行几遍,因为还要下载service文件,也是要FQ的问题
keadm join --cloudcore-ipport=192.168.80.10:10000 --edgenode-name=edge01 --kubeedge-version=1.6.2 --token=1a2c1717df205f2f39b2257c00845c1cacc9772fc0f7ac0a8b409ee38cb6dcb4.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjg4NjQxNDF9.qcJba63gHDNZerT5txRvuUmqkgEG-VOf1gM-xh0g1Ho
[Run as service] start to download service file for edgecore
[Run as service] success to download service file for edgecore
kubeedge-v1.6.2-linux-amd64/
kubeedge-v1.6.2-linux-amd64/edge/
kubeedge-v1.6.2-linux-amd64/edge/edgecore
kubeedge-v1.6.2-linux-amd64/cloud/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/
kubeedge-v1.6.2-linux-amd64/cloud/csidriver/csidriver
kubeedge-v1.6.2-linux-amd64/cloud/admission/
kubeedge-v1.6.2-linux-amd64/cloud/admission/admission
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/
kubeedge-v1.6.2-linux-amd64/cloud/cloudcore/cloudcore
kubeedge-v1.6.2-linux-amd64/version
KubeEdge edgecore is running, For logs visit: journalctl -u edgecore.service -b
从master节点查看是否加入成功
$ kubectl get nodes -o wide
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
edge01 Ready agent,edge 9m26s v1.19.3-kubeedge-v1.6.2
k8s-master01 Ready master 4d v1.19.9
k8s-master02 Ready master 3d23h v1.19.9
k8s-master03 Ready master 3d23h v1.19.9
k8s-node01 Ready <none> 4d v1.19.9
k8s-node02 Ready <none> 3d23h v1.19.9
若edge节点没有出现,则去排除错误
在edge节点
journalctl -u edgecore.service -b
我这里显示
Aug 12 22:29:23 k8s-edge01 edgecore[1407]: E0812 22:29:23.433701 1407 edged.go:264] init new edged error, misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
Aug 12 22:29:23 k8s-edge01 systemd[1]: edgecore.service: main process exited, code=exited, status=1/FAILURE
Aug 12 22:29:23 k8s-edge01 systemd[1]: Unit edgecore.service entered failed state.
Aug 12 22:29:23 k8s-edge01 systemd[1]: edgecore.service failed.
说明需要把docker的驱动改为cgroupfs
vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
重启docker,然后查看
systemctl daemon-reload
systemctl restart docker
docker info
重新加入
keadm reset
keadm join --cloudcore-ipport=192.168.80.10:10000 --edgenode-name=edge01 --kubeedge-version=1.6.2 --token=1a2c1717df205f2f39b2257c00845c1cacc9772fc0f7ac0a8b409ee38cb6dcb4.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Mjg4NjQxNDF9.qcJba63gHDNZerT5txRvuUmqkgEG-VOf1gM-xh0g1Ho
再去master01节点执行命令查看,显示成功