When we started Quay, we wanted to build an image registry that not only allowed you to manage your container images, but do so securely and reliably. Over the past few months we have noticed an accelerated interest in Quay and containers in general. One of the main forces driving this growth is the adoption of container orchestration and in particular, Kubernetes. And with the introduction of a new platform came a new set of challenges around deploying ever increasingly complex applications.

A complete application is rarely defined as a single container image and their deployment is typically dependent on other services. Further, there are configuration details that are necessary to get a complete application up and running. Ultimately, every application can be boiled down to the result of code and configuration. In the case of Kubernetes, this equates to the set of container images and the Kubernetes object manifests that reference them.

The problem with most registries is that they typically deal with a single object: the container image. Traditionally, registries have not been extended into managing what most users are actually deploying: complete applications. Managing applications isn’t quite the same as individual container images; understanding the dependencies and configuration associated with specific releases of an application is a brand new problem for registries to solve, in addition to the new workflows that users will demand.

Kubernetes Application Registry

Over the past few months, the Quay team has been laying the foundation for the first Kubernetes Application Registry. On the server side, we’ve added an experimental registry API to Quay and a minimal UI enabling the storage, discovery, and management of complete applications. On the client side, we’ve created a registry plugin for Helm, the Kubernetes package manager, that brings all of these features to the ecosystem of Helm applications, known as Charts. One of the most interesting new features introduced to both Quay and Helm is the concept of customizable release channels, much like how CoreOS ships Alpha, Beta, and Stable channels for Container Linux releases. All of this is done through a community-driven API specification, called App Registry, that enables Kubernetes ecosystem to develop more sophisticated tools and more reliable deployment pipelines. This ultimately delivers a Kubernetes Application Registry.

Using Helm to deploy an application

We invite you to use this experimental feature today in Quay.io and then deploy your applications using Helm. Below is a guide to get that up and running.

Install the Helm Registry Plugin

First, Install the latest Helm release. If you are an OSX user, quickstart with brew: brew install kubernetes-helm Next download and install the registry plugin for Helm.

OSX

$ curl -L https://github.com/app-registry/helm-plugin/releases/download/v0.3.7/registry-helm-plugin-v0.3.7-dev-osx-x64.tar.gz -o registry-helm-plugin-v0.3.7-dev-osx-x64.tar.gz
$ mkdir -p ~/.helm/plugins/
$ tar xzvf registry-helm-plugin-v0.3.7-dev-osx-x64.tar.gz -C ~/.helm/plugins/

Linux

$ wget https://github.com/app-registry/helm-plugin/releases/download/v0.3.7/registry-helm-plugin-v0.3.7-dev-linux-x64.tar.gz
$ mkdir -p ~/.helm/plugins/
$ tar xzvf registry-helm-plugin-v0.3.7-dev-linux-x64.tar.gz -C ~/.helm/plugins/

Deploy Jenkins Using Helm from the Quay Registry

$ helm registry version quay.io

Output should be:

Api-version: {u'cnr-api': u'0.X.Y'}
Client-version: 0.X.Y

Install Jenkins

$ helm init
$ helm registry list quay.io
$ helm registry install quay.io/helm/jenkins

Create and Push Your Own Chart

First, create an account on Quay.io and login to the CLI using the username and password. Set an environment for the username created at Quay to use through the rest of these instructions.

$ export USERNAME=philips

Login to Quay with the Helm registry plugin:

$ helm registry login -u $USERNAME quay.io

Create a new Helm chart, the default will create a sample nginx application:

$ helm create nginx

Push this new chart to Quay and then deploy it from Quay.

$ cd nginx
$ helm registry push --namespace $USERNAME quay.io
$ helm registry install quay.io/$USERNAME/nginx

Working in the open with the Kubernetes community

With the exclusion of some very minor changes to Quay, all of this work is being executed in the open in collaboration with the Kubernetes community. We’ve been working with Kubernetes SIG-Apps to create an open, community-driven project called App Registry. Our goal as a community is to author libraries and a specification that align with best practices from established standards such as OCI in order to provide consistent storage and discovery for all of the tools innovating in the Kubernetes app ecosystem. While Quay currently implements a prototype of App Registry, we invite everyone to start using the feature and participate in the discussion and development as we move towards a stable release of the App Registry specification.

Learn more

If you would like to learn more and use this new feature, please go to Quay.io and start storing your applications today. If you are going to be at KubeCon next week in Berlin, please stop by our booth and talk to us and check out CoreOS CTO Brandon Philips’ keynote on day one of the conference where he’ll talk more about this.

Also you can check out the GitHub repositories for the app registry at:

https://github.com/app-registry

https://github.com/app-registry/helm-plugin

Quay: Introducing an Application Registry for Kubernetes的更多相关文章

  1. kubernetes之监控Operator部署Prometheus(三)

    第一章和第二章中我们配置Prometheus的成本非常高,而且也非常麻烦.但是我们要考虑Prometheus.AlertManager 这些组件服务本身的高可用的话,成本就更高了,当然我们也完全可以用 ...

  2. kubernetes学习笔记之七: Ingress-nginx 部署使用

    一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供 ...

  3. Kubespray部署Kubernetes 1.13.0(使用本地镜像仓库)

    1. 下载kubespray # git clone https://github.com/kubernetes-sigs/kubespray.git # cd kubespray # pip ins ...

  4. Kubernetes tutorial - K8S 官方入门教程

    tutorials 教程 kubectl 的命令手册 1 Creating a Cluster 1.1 Using Minikube to Create a Cluster Kubernetes Cl ...

  5. docker基础属性简介包含镜像 容器 registry服务等概念及关系

    Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 r ...

  6. 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)

    公众号关注「WeiyiGeek」 设为「特别关注」,每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 环境准备 主机规划 软件版本 网络规划 0x02 ...

  7. 利用VSTS跟Kubernetes进行CI/CD

    准备VSTS管理环境 首先我们需要到www.visualstudio.com下申请好的VSTS账号,然后在账号下创建一个用Git作为代码管理的项目 创建好项目后我们就可以利用git clone将代码库 ...

  8. kubernetes 基础

    官网 kubernetes.io 有中文 中文网站  http://docs.kubernetes.org.cn kubectl 详细情况 https://kubernetes.io/docs/ref ...

  9. 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群

    Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取Google的相应资源包,尤其适 ...

随机推荐

  1. odoo action

    动作的加载: 刷新视图页面执行load_views方法 /web/dataset/call_kw/model_name/load_views 在odoo/models.py的BaseModel中有一个 ...

  2. jdk源码调试进去形参没有值

    https://blog.csdn.net/u010407050/article/details/76690478 1.在你的D:盘新建jdk文件夹,然后在文件夹里面分别创建两个文件夹jdk_src( ...

  3. Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决

    一.背景 大家都知道,Android Studio开发工具自带了Analyze Apk,可以很方便的分析Apk文件.具体位于菜单build >> Analyze APK...路径下,点击后 ...

  4. python网络爬虫(1)——安装scrapy框架的常见问题及其解决方法

    Scrapy是为了爬取网站数据而编写的一款应用框架,出名,强大.所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板. 其实在Linux和 Mac安装,就简单的pip命令即可: pip i ...

  5. Java学习:常用函数接口

    常用函数接口 什么是函数式接口? 函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注 注意:这里 ...

  6. 获取Ext Tree选中的节点

    获取Ext Tree选中的节点 text: '确认', handler: function () { //获取当前选中树的节点方法 var ck = rightsTree.getChecked(); ...

  7. C# vb .NET识别读取QR二维码

    二维码比条形码具有更多优势,有些场合使用二维码比较多,比如支付.那么如何在C#,.Net平台代码里读取二维码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确的条形 ...

  8. C#安全类型转换基于convert

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Globalization; n ...

  9. windows 10 配置Java 环境变量(5步骤)

    前提:1.windows 10 系统(不是win8,也不是win7)2.安装JDK步骤 1. 打开 环境变量窗口右键 This PC(此电脑) -> Properties(属性) -> A ...

  10. 实测搭建jenkins多环境、多分支demo

    一.环境以及工具信息 1. 3台服务器信息 jenkins: 192.168.123.163.serverA:192.168.123.130.serverB :139.198.17.241三台机器都是 ...