为了账号安全,请及时绑定邮箱和手机立即绑定

拆解Shifu——从部署K8s集群到玩转数字孪生

标签:
Go Docker

拆解Shifu——从部署K8s集群到玩转数字孪生

在生产环境中 Shifu可以直接部署在K8s集群中,并且Shifu的生产部署非常容易。
但在测试时,我们需要在本地接入设备做一些调试的工作,需要进行本机安装测试,您需要在本地创建集群,一些工具如 kind 可以帮助我们在自己的电脑上创建这样的集群。

简介

  • 此篇文章拆解了Shifu安装包的内容,使用命令行一步一步在本地创建集群。这种方式有助于您理解Shifu运作过程中使用的组件。

步骤

  • 第一步:安装 Docker Desktop

信息 💾

Docker Desktop 能够在桌面操作系统(Windows/ macOS/ 桌面版Ubuntu 等)安装Docker,并提供可视化的界面可供管理。

Shifu 使用 Docker 将每一个实际的物理设备 (edgeDevice) 转为一个数字孪生设备 (deviceShifu), Docker 所起的作用主要是虚拟化和隔离。

请查看_Docker_官网来在自己的电脑上安装 Docker Desktop


  • 第二步:确认 Docker Desktop 已安装且启动

使用下面的命令来确定 Docker Desktop 已安装且启动,输出如下则说明成功:

$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

如果输出为

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

则说明 Docker Desktop 未启动;

如果输出为

command not found

则说明 Docker Desktop 未安装。


  • 第三步:安装 kubectl

信息 💾

kubectlKubernetes 的命令行工具,帮助你在 Kubernetes集群 中执行命令。你可以用 kubectl 来部署应用、查看和管理集群资源、查看日志。

请查看K8s官网的内容以安装_kubectl_

确认 kubectl 已安装:

$ kubectl version --client --output=yaml
clientVersion:
buildDate: "2022-08-23T17:44:59Z"
compiler: gc
.....

  • 第四步:安装kind

信息 💾

kind 可以让我们在本机创建 Kubernetes集群 用于测试。

如果已经安装了 Go,可以使用下面的命令安装:

$ go install sigs.k8s.io/kind@v0.14.0

如果未安装 Go ,可以查看 kind 的官方文档来选择安装方式。

确认 kind 已安装:

$ kind --version
kind version 0.14.0

  • 第五步:创建集群

我们使用 kind 来创建集群:

$ sudo docker pull kindest/node:v1.24.0
$ sudo kind create cluster --image="kindest/node:v1.24.0"
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.24.0) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"

信息 💾

本地测试时使用的K8s集群中会安装和K8s相关的管理内容、Shifu 的控制器等;之后接入设备时则会在其中创建设备的数字孪生。

注:确认集群已创建

$ sudo kubectl cluster-info --context kind-kind
Kubernetes control plane is running at https://127.0.0.1:52138
CoreDNS is running at https://127.0.0.1:52138/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
$ sudo kind get clusters
kind

注:重新创建

如出现问题,可删除集群并重新创建:

$ sudo kind delete cluster
Deleting cluster "kind" ...
$ sudo kind create cluster --image="kindest/node:v1.24.0"

  • 第六步:安装 Shifu

Shifu的安装非常方便, pkg/k8s/crd/install/shifu_install.yml 为安装脚本,一键安装即可:

# clone Shifu仓库
git clone https://github.com/Edgenesis/shifu.git
cd shifu
# 在集群中安装Shifu
sudo kubectl apply -f pkg/k8s/crd/install/shifu_install.yml

注:提前下载镜像

k8s/crd/install/shifu_install.yml 中使用到的镜像有 quay.io/brancz/kube-rbac-proxy:v0.12.0edgehub/shifu-controller:latest ,如果下载出问题,可以提前下载镜像到本机并导入集群。

备注 🕹️

这种方法会占用本机存储。使用完毕后可以用命令 sudo docker rmi<image_id> 来删除本机镜像。


  • 下一步

恭喜!您已经在本机开启了一个集群,而且在该集群中安装了Shifu。接下来您可以尝试在集群中接入设备了!

本文由边无际授权发布

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消