博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源应用 Docker App 加入 CNAB 规范,实现云原生应用的统一管理
阅读量:7138 次
发布时间:2019-06-28

本文共 2685 字,大约阅读时间需要 8 分钟。

screenshot

出品丨Docker公司(ID:docker-cn)

编译丨小东
每周一、三、五,与您不见不散!


Docker App 是我们在2018 DockerCon 美国大会上简要介绍的一款新工具。我们一直致力于“Docker APP”的开发,使容器应用程序更易于在不同团队和不同环境之间共享和管理,我们还将其进行开源处理,这样您就可以从 GitHub 下载 Docker APP 了,浏览 下载 Docker APP 源码。


当我们与其他人谈论分享与合作这个问题时,我们开始意识到,这是一个其他人也在为之努力的普遍问题。这就是为什么我们很高兴与微软在全新的 Cloud Native Application Bundle(CNAB)规范上进行合作的原因。

screenshot

如今的云原生应用程序通常会使用不同的技术,每个技术都有自己的工具链。也许您正在使用 ARM 模板和 Helm 图表,或在使用 CloudFormation 和 Compose,亦或是 Terraform 和 Ansible。但是,市场上没有单一的解决方案来定义和打包这些多服务、多格式的分布式应用程序。


CNAB 是一个开源的、与云无关的规范,用于打包和运行分布式应用程序,旨在解决其中的存在的问题。CNAB 将跨不同工具链的多服务分布式应用程序的管理统一为一种单一的、一体化的打包格式。

screenshot

CNAB 规范的更多详情可以在 cnab.io 上找到,我们正在积极寻找有兴趣参与规范的人们,以及有兴趣围绕规范构建工具的人们。Docker App 的最新版本就是一个实现当前 CNAB 规范的工具。这意味着它既可以为 Compose 构建 CNAB 包(可以与任何其他 CNAB 客户端一起使用),也可以安装、升级和卸载任何其他 CNAB 包。


在 Docker Hub 上共享 CNAB 包

单独的 Compose 文件的局限在于它们无法在 Docker Hub 或 Docker Trusted Registry 上进行共享。Docker App 很好的解决了这个问题。这是一个简单的 Docker 应用程序,它启动了一个非常简单的 Prometheus 应用栈:

version: 0.1.0name: monitoringdescription: A basic prometheus stackmaintainers: - name: Gareth Rushgrove   email: garethr@docker.com---version: '3.7' services: prometheus:   image: prom/prometheus:${versions.prometheus}   ports:     - ${ports.prometheus}:9090  alertmanager:   image: prom/alertmanager:${versions.alertmanager}   ports:     - ${ports.alertmanager}:9093--- ports:   prometheus: 9090   alertmanager: 9093versions:   prometheus: latest   alertmanager: latest

保存为“monitoring.dockerapp”后,我们就可以构建一个 CNAB 包并在 Docker Hub 上共享它。

$ docker-app push --namespace

现在在另一台机器上,我们仍然可以与共享应用程序进行交互。 例如,让我们使用“inspect”命令来获取有关我们应用程序的信息:

$ docker-app inspect/monitoring:0.1.0monitoring 0.1.0 Maintained by: Gareth Rushgrove A basic prometheus stack Services (2) Replicas Ports Image------------ -------- ----- -----prometheus  1    9090 prom/prometheus:latestalertmanager 1       9093 prom/alertmanager:latest Parameters (4)       Value--------------       -----ports.alertmanager   9093ports.prometheus     9090versions.alertmanager latestversions.prometheus  latest

Compose 文件中的所有信息都存储在 Docker Hub 上的 CNAB 包中。您可能注意到了,它也是参数化的,因此可以在运行时替换它的值来满足部署要求。我们也可以直接从 Docker Hub 安装应用程序。

docker-app install/monitoring:0.1.0 --set ports.alertmanager=9095

使用 Docker App 安装 Helm 图表

到目前为止,存在一个问题,那就是“docker-app”和现在的 CNAB 包如何与 Helm 图表相关联呢?好消息是他们可以很好地进行关联!下面是一个使用“docker-app”和 CNAB 包来安装 Helm 图表的示例。(注:以下示例使用的是 CNAB 示例包中的“hellohelm”示例。)

$ docker-app install -c local bundle.jsonDo install for hellohelmhelm install --namespace hellohelm -n hellohelm /cnab/app/charts/alpineNAME:  hellohelmLAST DEPLOYED: Wed Nov 28 13:58:22 2018NAMESPACE: hellohelmSTATUS: DEPLOYED RESOURCES:==> v1/PodNAME             AGEhellohelm-alpine 0s

下一步!

如果您想开始使用 Docker App 构建应用程序,那么您可以从 github.com/docker/app 下载最新版本,并查看资源库中提供的一些示例。

转载地址:http://eutrl.baihongyu.com/

你可能感兴趣的文章
如何看硬盘SMART参数----用HDtune工具查看
查看>>
PUTTY使用Ctrl+s僵死的问题
查看>>
单链表逆序、反转
查看>>
查询表空间是否是设置了自增
查看>>
《深入理解Java虚拟机》读后总结(二)JVM内存分配
查看>>
cisco 用户权限级别管理
查看>>
Oracle 审计失败的用户登陆(Oracle audit)
查看>>
成都高薪PHP工程师
查看>>
如何评价小米手机第二代M2
查看>>
JavaScript最经典的55个技巧(转)
查看>>
恢复mysql的root密码与权限
查看>>
Java 处理图片 base64 编码的相互转换
查看>>
Magento入门基础 - 在magento后台增加一个自定义订单状态
查看>>
搭建虚拟用户VSFTPD
查看>>
JAVA中的Object类
查看>>
linux文本编辑乱码问题处理
查看>>
很实用的Linux运维命令
查看>>
我的友情链接
查看>>
plist
查看>>
Lync 限制登陆账号数量
查看>>