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