拆解 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
信息 💾
kubectl 是 Kubernetes 的命令行工具,帮忙你在 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.0
和 edgehub/shifu-controller:latest
,如果下载出问题,能够提前下载镜像到本机并导入集群。
备注 🕹️
这种办法会占用本机存储。应用结束后能够用命令
sudo docker rmi<image_id>
来删除本机镜像。
- 下一步
祝贺!您曾经在本机开启了一个集群,而且在该集群中装置了Shifu。接下来您能够尝试在集群中接入设施了!
本文由边无际受权公布