在前文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節點執行命令查看,顯示成功