开源应用 Docker App 加入 CNAB 规范,实现云原生应用的统一管理
出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!
Docker App 是我们在2018 DockerCon 美国大会上简要介绍的一款新工具。我们一直致力于“Docker APP”的开发,使容器应用程序更易于在不同团队和不同环境之间共享和管理,我们还将其进行开源处理,这样您就可以从 GitHub 下载 Docker APP 了,浏览 https://github.com/docker/app 下载 Docker APP 源码。
当我们与其他人谈论分享与合作这个问题时,我们开始意识到,这是一个其他人也在为之努力的普遍问题。这就是为什么我们很高兴与微软在全新的 Cloud Native Application Bundle(CNAB)规范上进行合作的原因。
如今的云原生应用程序通常会使用不同的技术,每个技术都有自己的工具链。也许您正在使用 ARM 模板和 Helm 图表,或在使用 CloudFormation 和 Compose,亦或是 Terraform 和 Ansible。但是,市场上没有单一的解决方案来定义和打包这些多服务、多格式的分布式应用程序。
CNAB 是一个开源的、与云无关的规范,用于打包和运行分布式应用程序,旨在解决其中的存在的问题。CNAB 将跨不同工具链的多服务分布式应用程序的管理统一为一种单一的、一体化的打包格式。
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.0 name: monitoring description: A basic prometheus stack maintainers: - 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: 9093 versions: prometheus: latest alertmanager: latest
保存为“monitoring.dockerapp”后,我们就可以构建一个 CNAB 包并在 Docker Hub 上共享它。
$ docker-app push --namespace
现在在另一台机器上,我们仍然可以与共享应用程序进行交互。 例如,让我们使用“inspect”命令来获取有关我们应用程序的信息:
$ docker-app inspect/monitoring:0.1.0 monitoring 0.1.0 Maintained by: Gareth Rushgrove A basic prometheus stack Services (2) Replicas Ports Image ------------ -------- ----- ----- prometheus 1 9090 prom/prometheus:latest alertmanager 1 9093 prom/alertmanager:latest Parameters (4) Value -------------- ----- ports.alertmanager 9093 ports.prometheus 9090 versions.alertmanager latest versions.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.json Do install for hellohelm helm install --namespace hellohelm -n hellohelm /cnab/app/charts/alpine NAME: hellohelm LAST DEPLOYED: Wed Nov 28 13:58:22 2018 NAMESPACE: hellohelm STATUS: DEPLOYED RESOURCES: ==> v1/Pod NAME AGE hellohelm-alpine 0s
下一步!
如果您想开始使用 Docker App 构建应用程序,那么您可以从 github.com/docker/app 下载最新版本,并查看资源库中提供的一些示例。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
深度学习框架TensorFlow在Kubernetes上的实践
什么是深度学习? 深度学习这个名词听了很多次,它到底是什么东西,它背后的技术其实起源于神经网络。神经网络最早受到人类大脑工作原理的启发,我们知道人的大脑是很复杂的结构,它可以被分为很多区域,比如听觉中心、视觉中心,我在读研究中心的时候,做视频有计算机视觉研究室,做语言有语言所,语音有语音所,不同的功能在学科划分中已经分开了,这个和我们人类对大脑理解多多少少有一些关系。之后科学家发现人类大脑是一个通用的计算模型。 科学家做了这样一个实验,把小白鼠的听觉中心的神经和耳朵通路剪断,视觉输入接到听觉中心上,过了几个月,小白鼠可以通过听觉中心处理视觉信号。这就说明人类大脑工作原理是一样的,神经元工作原理一样,只是需要经过不断的训练。基于这样的假设,神经学家做了这样的尝试,希望给盲人能够带来重新看到世界的希望,他们相当于是把电极接到舌头上,通过摄像机把不同的像素传到舌头上,使得盲人有可能通过舌头看到世界。对人类神经工作原理的进一步理解让我们看到深度学习有望成为一种通用的学习模型。 上图给出了神经网络的大致结构。图中左侧是人类的神经元,右侧是神经网络的神经元。神经网络的神经元最早受到了人类神经元结构...
- 下一篇
用 Go 搭建 Kubernetes Operators
随着容器越来越流行,k8s也成为很多公司标配,Kubernetes 让当前主流的基础架构有一套易用的 API 。利用好 Kubernetes ,我们可以实现更高的、更通用的基础架构自动化管理。基于此, CoreOS 实现了一套能“自动驾驶”的 Kubernetes 。在本次演讲中,来自 CoreOS 的邓洪超将通过自身参与的经验,讲解其中的技术细节。并以主要负责的 etcd operator 为例,讲解在 Kubernetes 搭建 Operator 的通用模式。 邓洪超:今天非常荣幸来到这里。首先介绍一下 Operator ,它是用来自动化应用的运维的。这里的应用指的是你的 code+config、程序、逻辑层和部署层。 一个例子 开始之前我们先讲一个故事,这个故事一般朋友圈比较多,我们是从朋友圈开始的,大家知道pingCAP不仅数据库做得好,周边也做得很好。 图1 卖周边就得做一个网站,那黄东旭是GO的大牛,GO这个语言可以让我们非常快速的做一个网站出来。Golang 可以让我们非常快速地做一个网站出来。于是我们很快的就有了一个原形,给大家欣赏一下底层程序员的设计。 图2 可以说G...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度