1.安装并运行Eclipse-Hono

1.Eclipse-Hono 安装与运行

​ Eclipse Hono提供了远程服务接口,用于将大量IoT设备连接到后端并以统一的方式与它们进行交互,而无需考虑设备通信协议。它支持开箱即用,并可以通过HTTP,MQTT和AMQP之类的常见物联网协议进行通信间的设备。它还为重要的IoT通信模式提供API:设备可以使用遥测和事件消息来报告传感器读数;应用程序可以使用命令和控制来触发设备上的操作。

安装Docker

安装Minikube

​ Minikube是在本地系统上创建一个虚拟机,并在其中提供一个小型的单节点群集,而不是提供一个成熟的群集。由于Minikube将操作系统放在VM中,因此它可以在所有主要操作系统上运行,包括Windows和macOS。

Linux安装Minikube

DESKTOP-RBQ4DFJ :: ~ » curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64                                                                                                 1 ↵
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 73.0M  100 73.0M    0     0  24.8M      0  0:00:02  0:00:02 --:--:-- 24.8M
DESKTOP-RBQ4DFJ :: ~ » sudo install minikube-linux-amd64 /usr/local/bin/minikube
DESKTOP-RBQ4DFJ :: ~ »
  • 启动集群
minikube start
  • 与群集交互
kubectl get po -A

Windows安装Minikube

使用PowerShell,请使用以下命令:

New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

添加minikube。exe二进制文件到您的PATH。确保以管理员身份运行PowerShell。

$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube'){ `
  [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) `
}

image-20221008161101953

如果您使用终端(如powershell)进行安装,请在运行minikube之前关闭终端并重新打开

启动Minikube

minikube start

image-20221010145602548

  • 在你DockerDesktop中可以看到minikube的containers

image-20221010152131485

Minikube Dashboard

# 启用仪表板服务
 minikube dashboard
# 从Windows端的浏览器访问仪表板

该命令创建了一个代理,这意味着一旦我们通过按CTRL+C结束该命令,将无法再访问Dashboard。不过,如果我们查看名称空间kubernetes仪表板,我们会看到服务仍在创建

image-20221010145347235

  • 访问dashboard

image-20221010145453268

安装Helm

下载地址

  • 解压到一个目录

image-20221010145709153

  • 配置环境变量

image-20221010145925782

  • 测试是否安装成功

image-20221010145940242

运行Hono

运行步骤

  • 1.运行Hono之前 , 需要创建一个 namespace

    • kubectl create namespace hono
  • 2.helm 添加eclipse-iot chart仓库

    • helm repo add eclipse-iot https://eclipse.org/packages/charts
  • 3.在启动服务之前,需要先执行 minikube tunnel 不然外部无法访问

  • 4.使用helm安装hono

    • helm install eclipse-hono eclipse-iot/hono -n hono --wait

    • image-20221010150556082

    • 注意 : 最后报超时失败是因为一开始有些pod没有准备好 , 其实这里是成功的

从Dashboard中查看

image-20221010150750090

一共有8个Pod

分别为:

  • eclipse-hono-adapter-amqp
  • eclipse-hono-adapter-http
  • eclipse-hono-adapter-mqtt
  • eclipse-hono-kafka
  • eclipse-hono-service-auth
  • eclipse-hono-service-command-router
  • eclipse-hono-service-device-registry
  • eclipse-hono-zookeeper

或者使用 kubectl get service -n hono 来验证安装

image-20221010154018646

至此 Hono运行完毕 , 保证Hono一直运行需要有两个终端不能关闭

  • minikube dashboard
  • minikube tunnel

image-20221010152011023

报错记录

  • 启动minikube报错1

image-20221008145823150

说不应用 “root” 用户启动 如果 minikube 无法启动,请参阅驱动程序页面以获取设置兼容容器或虚拟机管理器的帮助。

文档地址

DESKTOP-RBQ4DFJ%  minikube start
😄  minikube v1.27.1 on Ubuntu 20.04 (amd64)
✨  Automatically selected the docker driver
📌  Using Docker driver with root privileges
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.25.2 preload ...
    > preloaded-images-k8s-v18-v1...:  385.41 MiB / 385.41 MiB  100.00% 18.24 M
    > index.docker.io/kicbase/sta...:  387.10 MiB / 387.11 MiB  100.00% 6.82 Mi
    > index.docker.io/kicbase/sta...:  0 B [_____________________] ?% ? p/s 43s
❗  minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.35, but successfully downloaded docker.io/kicbase/stable:v0.0.35 as a fallback image
🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
🐳  Preparing Kubernetes v1.25.2 on Docker 20.10.18 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...\
    ...
  • 启动minikube报错2

image-20221008151212112

timed out waiting for the condition , This error is likely caused by: The kubelet is not running

可能原因

minikube start 的命令里未使用 --image-mirror-country=‘cn’,导致下载启动镜像不成功。
minikube start 的命令里未使用 --kubernetes-version 指定版本,kubernetes最新版兼容性有问题,所以得使用低版本的kubernetes,推荐使用–kubernetes-version=v1.23.8

解决方案

minikube start --image-mirror-country=‘cn’ --kubernetes-version=v1.23.8

  • 启动minikube报错3

image-20221008170240610

Enabling ‘default-storageclass’ returned an error: running callbacks: [Error making standard the default storage class: Error listing StorageClasses: Get “https://192.168.49.2:8443/apis/storage.k8s.io/v1/s
torageclasses”: dial tcp 192.168.49.2:8443: i/o timeout]

sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade

sudo apt install -y conntrack

  • 启动minikube报错4

image-20221008174456571

从K8S 1.24开始,dockershim已经从kubelet中移除,但因为历史问题Docker却不支持K8S主推的CRI(容器运行时接口)标准,所以Docker不能再作为K8S的容器运行时了,即从K8S 1.24开始不再使用Docker了。但是如果想继续使用Docker的话,可以在kubelet和Docker之间加上一个中间层cri-docker。

解决办法

下载cri-dockerd二进制文件
项目地址:https://github.com/Mirantis/cri-dockerd

下载 cri-dockerd-0.2.3.amd64.tgz

解压

tar -xvf cri-dockerd-0.2.3.amd64.tgz

cp cri-dockerd/cri-dockerd /usr/local/bin/
chmod +x /usr/local/bin/cri-dockerd
cri-dockerd --version

配置启动文件

创建cri-docker.service配置文件

vi /lib/systemd/system/cri-docker.service

[Unit]

Description=CRI Interface for Docker Application Container Engine

Documentation=https://docs.mirantis.com

After=network-online.target firewalld.service docker.service

Wants=network-online.target

Requires=cri-docker.socket

[Service]

Type=notify

ExecStart=/usr/local/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

Delegate=yes

KillMode=process

[Install]

WantedBy=multi-user.target

创建cri-docker.socket配置文件

vi /lib/systemd/system/cri-docker.socket

[Unit]

Description=CRI Docker Socket for the API

PartOf=cri-docker.service

[Socket]

ListenStream=%t/cri-dockerd.sock

SocketMode=0660

SocketUser=root

SocketGroup=docker

[Install]

WantedBy=sockets.target

启动cri-docker

systemctl daemon-reload

systemctl start docker.service

systemctl enable cri-docker

systemctl status docker.service
  • 启动minikube报错5

image-20221008185351623

需要安装crictl,我们可以参考官方安装步骤:

VERSION="v1.24.1"

wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz

sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin

rm -f crictl-$VERSION-linux-amd64.tar.gz

  • 启动Minikube报错6

image-20221010112617284

解决方案 :

minikube start --registry-mirror=https://registry.docker-cn.com --image-mirror-country cn --kubernetes-version=v1.23.3

image-20221010123316026

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值