KubeEdge cloudcore云端模块部署与配置
下载k8s-allinone-v1.22.1.qcow2镜像(该镜像启动后内置一个完整的kubernetes服务)并完成下列操作:
- 上传该镜像到公有云OBS存储桶中
- 使用该镜像文件创建为私有镜像
- 使用该镜像创建一台云主机,该云主机作为KubeEdge的云端节点
云主机申请完成之后,在提供的OBS访问域名中,下载软件包kubernetes_kubeedge.tar到云端节点并部署KubeEdge1.11边缘计算系统,在云端节点部署KubeEdge cloudcore云端模块、启动cloudcore服务并配置该服务可被systemd管理。
k8s-allinone-v1.22.1.qcow2镜像文件下载
一、镜像创建
进入OBS存储
进入之后右上角“创建”桶
创建完成之后上传文件
文件上传成功之后创建私有镜像
进入之后导入
等待创建镜像好之后,就申请服务器就可以,后面申请服务器步骤就不重复演示了。
二、基础配置
进入服务器,上传文件
解压文件
tar xvf kubernetes_kubeedge.tar -C /opt
准备创YUM仓库,将默认yum.repo文件转移
mkdir /etc/yum.repos.d_bak
mv /etc/yum.repos.d/* /etc/yum.repos.d_bak/
创建新的repo文件
vi /etc/yum.repos.d/local.repo
[yum]
name=yum
baseurl=file:///opt/yum
gpgcheck=0
enabled=1
安装vsftp服务,为边端部署提供vsftpd源
rpm -ivh /opt/yum/vsftpd-3.0.2-29.el7_9.x86_64.rpm
echo anon_root=/opt >> /etc/vsftpd/vsftpd.conf
systemctl enable vsftpd
vsftpd服务后期会使用到,提前部署好。
三、部署kubeedge云端服务
使用keadm为kubeedge部署工具
cd /opt/kubeedge/
cp keadm /usr/bin/
创建kubeedge配置目录
mkdir /etc/kubeedge
解压
tar zxvf kubeedge-1.11.1.tar.gz
cp -rf kubeedge-1.11.1/build/tools/* /etc/kubeedge/
cp -rf kubeedge-1.11.1/build/crds/ /etc/kubeedge
tar zxvf kubeedge-v1.11.1-linux-amd64.tar.gz
cp -rf * /etc/kubeedge/
启动云端服务
deprecated 部署为服务
–kubeedge-version=:指定 Kubeedge 的版本, 离线安装必须指定,否则会去下载最 新版本。
–advertise-address=:暴露IP,此处填写keadm所在的节点内网IP。
如果要与本地集群对接的话,则填写公网IP。
此处因为云上, 所以只需要写公网IP。
cd /etc/kubeedge/
keadm deprecated init --kubeedge-version=1.11.1 --advertise-address=116.63.214.161
cloudcore初始化成功后,会在Kubernetes创建CRD资源,和kubeedge命名空间,并在该空间下创建secrets,如下为云端部署成功后的展示。
验证:
netstat -ntpl |grep cloudcore
四、配置云端服务可被system管理
想使用systemd来管理cloudcore服务的生命周期,可以创建一个systemd服务单元文件
创建一个文件, cloudcore.service ,并将以下内容添加到该文件
vi /etc/systemd/system/cloudcore.service
[Unit]
Description=KubeEdge CloudCore Service
[Service]
Type=simple
ExecStart=/usr/local/bin/cloudcore >
/var/log/kubeedge/cloudcore.log 2>&1
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
当然如上这个文件,软件包也是给到的,所以也可以直接使用cp的
cp /etc/kubeedge/cloudcore.service /etc/systemd/system/
注意:因为初始化云端服务是直接使用的命令行启动,所以在配置好了systemd服务单元文件后,需要将之前的进程杀死
kill -9 27905 #27905是上面netstat验证查到的那个ID
五、开启cloudcore cloudStream功能
修改/etc/kubeedge/config/cloudcore.yaml文件
vi /etc/kubeedge/config/cloudcore.yaml
cloudStream:
enable: true
router:
enable: true
注意看上面两个图片里的内容,是不是还需要一些Stream相关的证书文件,那/etc/kubeedge有这些文件吗,显然是没有的,所以,首先确保/etc/kubernetes/pki/目录有ca.crt和ca.key
ls /etc/kubernetes/pki/ca*
/etc/kubernetes/pki/ca.crt /etc/kubernetes/pki/ca.key
指定cloudcore的地址,云服务器指定公网IP
export CLOUDCOREIPS=”116.63.214.161″
生成证书
cd /etc/kubeedge/
#使用certgen.sh脚本生成
./certgen.sh stream
查看是否生成证书文件命令:
ls ca && ls certs
如果是如下结果就说明成功了:
streamCA.crt
stream.crt stream.csr stream.key
重启cloudcore服务
systemctl restart cloudcore
验证:查看cloudstream端口即10003
netstat -ntpl |grep cloudcore