关于linux:Linux编译安装kubeedge

2次阅读

共计 2507 个字符,预计需要花费 7 分钟才能阅读完成。

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
正文完
 0