乐趣区

关于go:拆解Shifu从部署K8s集群到玩转数字孪生

拆解 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。接下来您能够尝试在集群中接入设施了!

本文由边无际受权公布

退出移动版