Linux编译安装kubeedge

Linux下golang安装

MacBook Linux 树莓派raspberrypi安装Golang环境

golang安装
#下载最新版本
wget https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz --no-check-certificate

#解压
tar -zxvf go1.15.6.linux-amd64.tar.gz

vim /etc/profile
export GOROOT=/data/go
export GO_HOME=$GOROOT
export GOPATH=/data/go
export PATH=$GO_HOME/bin:$PATH

source /etc/profile

go version
go version go1.15.6 linux/amd64

Linux下kubeedge编译安装

获取KubeEdge的方式有两种,一种是直接从 官网(https://github.com/kubeedge/k...) 中下载;另一种方法是通过源码编译得到。

#下载源代码
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge

#检测gcc是否安装
gcc --version

#更换yum源,安装gcc zip
yum install -y gcc
yum install -y zip
yum install -y unzip

#在编译的时候遇到了第一个坑,就是版本的问题。由于最新clone下来的版本已经不是v1.1.0了,所以,我们需要把代码切回到v1.1.0版本
#切换对应版本
git tag
git checkout v1.1.0

#使用v1.1.0 编译报错如下,下载不下来包
go: cloud.google.com/[email protected]: Get "https://proxy.golang.org/cloud.google.com/go/@v/v0.43.0.mod": dial tcp 216.58.220.209:443: i/o timeout

#切回最新版本 master
git checkout master

编译云端

cd $GOPATH/src/github.com/kubeedge/kubeedge/

make all WHAT=cloudcore
#新版本 编译成功后的目录和旧版本有点不一样 在_output/local/bin/下

ls _output/local/bin/

#生成二进制 cloudcore 文件位于 _output/local/bin/ 目录。拷贝 cloudcore 到部署工程目录
mkdir /data/go/src/cloud

cp -a _output/local/bin/cloudcore /data/go/src/cloud/

编译边缘端

make all WHAT=edgecore

ls _output/local/bin/

#生成二进制 edgecore 文件位于 _output/local/bin/ 目录。拷贝 edgecore 到部署工程目录

mkdir /data/go/src/edge

cp -a _output/local/bin/edgecore /data/go/src/edge/

编译keadm

make all WHAT=keadm

ls _output/local/bin/

cp -a _output/local/bin/keadm /data/go/src/keadm/

#生成证书 新版本此步骤不用 kubeedge在1.3版本之后云端与边缘端不需要再手动拷贝证书,而是可以通过token的方式进行自动验证
./build/tools/certgen.sh genCertAndKey edge

#生成的 ca 和 certs 分别位于 /etc/kubeedge/ca 和 /etc/kubeedge/certs 目录,将其拷贝到部署工程目录的 certs 目录。
mkdir /data/go/src/certs

cp -a /etc/kubeedge/* /data/go/src/certs/

#拷贝设备模块和设备CRD yaml 文件
mkdir /data/go/src/yamls

cp build/crds/devices/* /data/go/src/yamls/

#拷贝node.json
cp build/node.json /data/go/src/cloud/

#创建cloud节点
./keadm init --advertise-address="192.168.1.143"
#输入y
KubeEdge cloudcore is running, For logs visit:  /var/log/kubeedge/cloudcore.log
CloudCore started
#成功启动

systemctl status cloudcore
#查看日志
cat /var/log/kubeedge/cloudcore.log

#如果报错, cloudcore日志提示
CloudCore 1.3.0 failed to run: failed to parse EC private key: asn1: structure error: length too large

#kubectl删除kubeedge的namespace,然后重新运行
kubectl delete namespace kubeedge --force --grace-period=0
./keadm init --advertise-address="192.168.1.143"

#从云端获取令牌  重启cloudcore token会变
./keadm gettoken
8958944580d59b13294a880.eyJhbGciOiI6IkpXVCJ9.eyJleHAc1Nzh9.bRSK_bPSkw3PkyKBBtFr4

#启动cloudcore服务
ps aux|grep cloudcore

systemctl restart cloudcore

nohup cloudcore &  

#看端口通不通
telnet 192.168.1.143 10000
telnet 192.168.1.143 10002
作者:阿亮说技术 原文地址:https://segmentfault.com/a/1190000042563297

%s 个评论

要回复文章请先登录注册