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