Quay: Introducing an Application Registry for Kubernetes
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:
Quay: Introducing an Application Registry for Kubernetes的更多相关文章
- kubernetes之监控Operator部署Prometheus(三)
第一章和第二章中我们配置Prometheus的成本非常高,而且也非常麻烦.但是我们要考虑Prometheus.AlertManager 这些组件服务本身的高可用的话,成本就更高了,当然我们也完全可以用 ...
- kubernetes学习笔记之七: Ingress-nginx 部署使用
一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供 ...
- Kubespray部署Kubernetes 1.13.0(使用本地镜像仓库)
1. 下载kubespray # git clone https://github.com/kubernetes-sigs/kubespray.git # cd kubespray # pip ins ...
- Kubernetes tutorial - K8S 官方入门教程
tutorials 教程 kubectl 的命令手册 1 Creating a Cluster 1.1 Using Minikube to Create a Cluster Kubernetes Cl ...
- docker基础属性简介包含镜像 容器 registry服务等概念及关系
Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 r ...
- 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)
公众号关注「WeiyiGeek」 设为「特别关注」,每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 环境准备 主机规划 软件版本 网络规划 0x02 ...
- 利用VSTS跟Kubernetes进行CI/CD
准备VSTS管理环境 首先我们需要到www.visualstudio.com下申请好的VSTS账号,然后在账号下创建一个用Git作为代码管理的项目 创建好项目后我们就可以利用git clone将代码库 ...
- kubernetes 基础
官网 kubernetes.io 有中文 中文网站 http://docs.kubernetes.org.cn kubectl 详细情况 https://kubernetes.io/docs/ref ...
- 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群
Breeze项目是深圳睿云智合所开源的Kubernetes图形化部署工具,大大简化了Kubernetes部署的步骤,其最大亮点在于支持全离线环境的部署,且不需要FQ获取Google的相应资源包,尤其适 ...
随机推荐
- jsp之el表达式jstl标签
不管是el表达式还是jstl标签最终的目的都是要消除jsp中的java代码,当然是消除显式的java代码 el表达式的出现是为了简化jsp中读取数据并写入页面的操作. el表达式的功能不多,也很好记 ...
- centos7.x下环境搭建(二)—nginx安装
上篇文章是对mysql的安装,接着上篇文章,这篇文章安装nginx服务 添加yum源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址.因此可以如下执行命令添 ...
- 图解微信小程序---获取电影信息
图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...
- spring-session(二)与spring-boot整合实战
前两篇介绍了spring-session的原理,这篇在理论的基础上再实战. spring-boot整合spring-session的自动配置可谓是开箱即用,极其简洁和方便.这篇文章即介绍spring- ...
- 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)
大家好,在上一篇系列文章里,我们一起学习了路由的基本配置,如何创建路由和传参,本篇文章我们一起学习下 Navigation 导航和路由守卫的相关内容. Navigation 如果要改变当前路径,我们可 ...
- TCP/UDP协议(二)
面试问题:Tcp/Udp协议是什么,各有什么异同点,各自的使用场景? Tcp协议(传输控制协议) tcp是面向连接的协议,在收发数据之前,必须与对方建立可靠的连接: 三次握手:简单形象通俗描述: 主机 ...
- SQL Date 时间类型处理
SQL 日期(Dates) 2019-10-17 22:17:26 当我们处理日期时,最难的任务恐怕是确保插入的日期的格式,与数据库中日期列的格式相匹配. 保存的如果是日期部分,查询不会有太大问题 ...
- HTML 从入门到精通 [目录]
目录 一.服务器的认识 二.浏览器的认识 三.Web 标准 四.HTML 的认识 五.HTML 文本标签 六.HTML 图像标签 七.HTML 路径 八.HTML 链接标签 九.HTML 列表 十.H ...
- es严格模式、对象和扩展。
01. 严格模式 1. 理解: * 除了正常运行模式(混杂模式),ES5添加了第二种运行模式:"严格模式"(strict mode). * 顾名思义,这种模式使得Javascrip ...
- OL7.6上RPM方式安装Oracle 19c
设置主机名 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localh ...