首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于滚动标记的azure物联网边缘部署策略

用于滚动标记的azure物联网边缘部署策略
EN

Stack Overflow用户
提问于 2019-12-12 19:02:27
回答 1查看 503关注 0票数 0

我试图了解IoT边缘设备是如何根据特定的设备部署策略部署模块的。下面是我的测试用例:

在我的开发机器上,

  • 创建了一个自定义IoT边缘模块(本质上是VS代码中的默认CModule示例)。我手动将模块推送到Azure容器注册表,并使用1.0.1手动标记它,并使用1.0
  • 创建了一个部署策略,其中包括我的自定义模块,如so

代码语言:javascript
运行
复制
"modules": {
  "MyModule": {
    "version": "1.0",
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "<my_acr.azurecr.io>/mymodule:1.0",
      "createOptions": "{}"
    }
  }
}

  • I创建了一个带有上述自定义部署策略的IoT边缘设备(我使用标记来实现这一点)。我可以在我的测试机器上看到/mymodule:1.0对接映像变得可用。测试机器上的对接器ImageID与我的开发机器上的ImageID
  • 匹配,然后我非常轻微地修改该模块并重新构建它。我用1.0.2和1.0标记新模块对接器映像,并将新标记推送到ACR。我可以在门户中看到新标签的出现。然而,
  • ,我的测试机器从来没有得到这个模块的新版本。Docker仍然显示旧的ImageID.

那么,让我的现有部署策略强制更新设备上的模块版本的正确方法是什么呢?我认为基于https://learn.microsoft.com/en-us/azure/iot-edge/how-to-update-iot-edge#understand-iot-edge-tags,我的模块正在使用滚动标记方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-12 20:12:22

是的,就像你贴的一样:

如果在部署中使用滚动标记,那么需要强制设备上的容器运行时使用来提取图像的最新版本。

因此,通过使用滚动标签,设备上不会自动发生任何事情。因为:为什么要这么做?设备没有监视容器注册表中的更改。

您能做的是:如果您再次在设备上手动拉出相同的图像(docker pull <my_acr.azurecr.io>/mymodule:1.0),则iotedge将在设备上看到图像已经更改。然后,它将使用新的映像版本在本地重新部署模块。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59311214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档