docker相关管理可分为四类:docker基础功能、docker监控、docker集群管理和docker系统认证管理。docker管理的基础或信息来源都是docker命令行或docker API。
docker基础功能
docker基础功能,如容器管理、镜像管理,直接调用docker命令或dockerAPI即可实现。humpback和portainer实现了常用docker生命周期管理、镜像管理,可供参考。
docker监控
docker监控的基础是docker stats或相关API,通过实时获取docker stats数据,存储并分析可实现docker容器状态监控,并根据监控信息设置并上报报警信息。docker监控方案可参考rancher公司的分析文档:Comparing 10 Docker Container Monitoring Solutions for Rancher,文档介绍了10款监控工具,商业开源均有。测试了成熟的开源测试框架:cAdvisor+influxDB+Grafana。influxDB可以保存cAdvisor采集的数据,供Grafana web显示。我们可以直接通过influxDB的HTTP API直接获取相关数据,集成到我们系统中,Grafana的数据处理和显示可参考。
docker集群管理
docker集群管理常用的方案是swarm和k8s,swarm是docker原生集群管理平台,已集成到docker engine中,可直接通过docker swarm命令行体验。因为是docker原生支持,集成比较方便,portainer已经实现,可供参考。但k8s在集群管理上占主流,可通过精简版k3s实现边缘平台的集群管理。
docker系统认证管理
简单的应用主要是网络平台的认证管理,复杂应用k8s支持完整。
总结
可采用两种版本或两步实现docker管理:基础版和k8s/k3s版。基础版通过调用dockerAPI和cAdvisor+influxDB集成到系统,可参考portainer,因为应用在边缘侧可以不涉及集群管理或简单集成swarm(若需要集群管理),不涉及docker认证,直接采用网页鉴权认证来保护docker应用。
参考:
原文地址:https://www.cnblogs.com/embedded-linux/p/11253509.html