安裝k8s或k3s
參考官方網站的文檔即可,k8s的配置部分參考kubeedge官方文檔
配置安裝環境
安裝 kubeadm、kubectl:
gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB
gpg --export --armor BA07F4FB | sudo apt-key add -
echo "deb https://mirrors.tuna.tsinghua.edu.cn/kubernetes/apt kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt update
apt install kubeadm kubectl ipvsadm
下載Golang安裝包並解壓到 /usr/local
,添加環境變量:
# Golang
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# Kubeedge
export PATH=$PATH:/data/gopath/src/github.com/kubeedge/kubeedge/_output/local/bin
source 環境變量文件使之生效。
編譯Kubeedge
克隆源碼(gitclone.com 用於國內加速):
git clone https://gitclone.com/github.com/kubeedge/kubeedge $GOPATH/src/github.com/kubeedge/kubeedge
由於kubeedge安編譯中需要使用git的歷史信息,因此將remote改回github地址:
git remote set-url origin https://github.com/kubeedge/kubeedge
git remote show origin
創建工作目錄:
mkdir -p /data/gopath && cd /data/gopath
mkdir -p src pkg bin
編譯:
cd $GOPATH/src/github.com/kubeedge/kubeedge
make all WHAT=keadm
make all WHAT=cloudcore
make all WHAT=edgecore
成功編譯后的文件位於 ./_output/local/bin
,該目錄在之前的環境變量中已添加。
創建cloud節點
使用keadm
進行快速部署,由於安裝過程需要訪問github相關資源,因此選擇手動提前下載所需文件:
g.ioiox.com 為github資源鏡像加速,若失效則需自己替換可用鏡像
版本號根據當前kubeedge版本自行替換
mkdir /etc/kubeedge
cd /etc/kubeedge && wget https://g.ioiox.com/https://github.com/kubeedge/kubeedge/releases/download/v1.3.1/kubeedge-v1.3.1-linux-amd64.tar.gz
同時可能需要添加 raw.githubusercontent.com 的DNS解析:
151.101.108.133 raw.githubusercontent.com
創建cloud節點:
IP替換為本機IP
keadm init --advertise-address="IP"
查看日志:
tail -f /var/log/kubeedge/cloudcore.log
創建edge節點
在cloud端獲取token:
keadm gettoken
將cloud端的./_output/local/bin
二進制文件拷貝至edge端並加入PATH,隨后創建edge節點:
CLOUD_IP 為前文中的cloud端暴露的IP
TOKEN為獲取到的token
keadm join --cloudcore-ipport=CLOUD_IP:10000 --token=TOKEN
查看日志:
tail -f /var/log/kubeedge/edgecore.log
刪除/重置Kubeedge
停止當前運行的kubeedge組件:
keadm reset
在cloud端:
rm -r /etc/kubeedge
kubectl delete CustomResourceDefinition $(k get CustomResourceDefinition | grep kubeedge | awk '{print $1}')
刪除 /etc/kubeedge 目錄后需要再次手動下載 kubeedge-v1.3.1-linux-amd64.tar.gz
驗證
在cloud端:
root@mq-228 /e/kubeedge# kubectl get no
NAME STATUS ROLES AGE VERSION
mq-228 Ready master 11d v1.18.6+k3s1
mq-227 Ready agent,edge 38m v1.17.1-kubeedge-v1.3.1
Counter Demo 未更新,按教程無法直接運行:
- apiVersion需要更新到v1alpha2
- code.jquery.com無法在國內訪問