《OpenShift 4.x HOL教程汇总》

文章目录

  • Quay介绍
  • 安装Red Hat Quay Operator
  • 配置Query运行环境
  • 访问Quay,操作镜像
  • 参考

Quay介绍

红帽 Quay 容器镜像仓库具有存储功能,可支持您轻松地构建、分布和部署容器。通过自动化、身份验证和授权系统,提高镜像存储库的安全性。Quay 既可搭配 OpenShift 使用,也可单独使用。

  • 时间机器:Red Hat Quay提供了存储库中所有标签的两周可配置历史记录,并能够通过图像回滚将标签还原到以前的状态。
  • 地域复制:连续的地理分布可提高性能,确保您的内容始终在最需要的地方可用。
  • 安全漏洞检测集成:Red Hat Quay 漏洞检测器(Clair)集成在一起,并扫描您的容器镜像识别已知漏洞。
  • 垃圾回收:自动连续的镜像垃圾回收有效地将资源用于活动对象,并降低成本,而无需计划内停机或只读模式。
  • 存储:支持多个存储后端来存储您的容器。
  • 自动化的容器构建:Red Hat Quay允许您使用构建触发器来简化您的持续集成/ 持续交付(CI / CD)流程。
  • 审核日志记录:Red Hat Quay 跟踪控制和数据平面事件日志记录,以及应用程序编程接口(API)和用户界面(UI)操作。
  • 高可用性:可以运行Red Hat Quay的多个实例以实现冗余,提高高可用性,可以防止单点故障。
  • 企业授权和认证:使用Red Hat Quay,您可以集成现有的身份基础结构,包括访问协议(LDAP),开放式授权(OAuth)和 开放式ID连接(OIDC)和 Keystone,并使用细粒度的权限系统映射到您的组织并授予整个团队访问权限以管理特定的存储库。
  • 指标:内置的Prometheus指标导出可在每个实例上启用临时和批处理作业指标,以便于监视和警报。
  • 持续集成:当开发人员提交代码时,Red Hat Quay允许您自动构建和推送镜像。您可以构建容器以响应来自GitHub,Bitbucket,GitLab等的git push。
  • 洪流分布:Red Hat Quay支持使用BitTorrent提取容器镜像。其结果是减少了下载和部署时间,并通过让多台计算机提供二进制数据来提高了稳定性。

一个Quay运行环境需要PostgreSQL数据库和Redis软件支持,这些软件环境都可以通过Quay Operator自动创建。

安装Red Hat Quay Operator

  1. 创建项目
$ oc new-project quay-enterprise
  1. 在Administrator视图中的OperatorHub里找到“Red Hat Quay”点击进入,然后在右滑界面中点击Install按钮。
  2. 在“Install Operator”界面中确认安装的目标“Installed Namespace”是quay-enterprise项目,最后点击Install按钮。
  3. 在Installed Operators中可以看到状态为Succeeded的Red Hat Quay。

配置Query运行环境

  1. 在OpenShift中创建以下Secret对象。
apiVersion: v1
kind: Secret
metadata:name: redhat-pull-secretnamespace: quay-enterprise
data:.dockerconfigjson: ewogICJhdXRocyI6IHsKICAgICJxdWF5LmlvIjogewogICAgICAiYXV0aCI6ICJjbVZrYUdGMEszRjFZWGs2VHpneFYxTklVbE5LVWpFMFZVRmFRa3MxTkVkUlNFcFRNRkF4VmpSRFRGZEJTbFl4V0RKRE5GTkVOMHRQTlRsRFVUbE9NMUpGTVRJMk1USllWVEZJVWc9PSIsCiAgICAgICJlbWFpbCI6ICIiCiAgICB9CiAgfQp9
type: kubernetes.io/dockerconfigjson
  1. (可选) Quay的管理员用户缺省登录用户名和密码是quay/password,可以创建以下Secret修改缺省登录信息。
$ oc create secret generic quay-admin \
--from-literal=superuser-username=quayadmin \
--from-literal=superuser-password=StrongAdminPassword \
--from-literal=superuser-email=admin@example.com
  1. (可选)
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ${REGISTRY_PATH}/certs/registry.key -x509 -days 365 \-out ${REGISTRY_PATH}/certs/registry.crt $ oc create secret generic custom-quay-ssl \--from-file=ssl.key=example.key \--from-file=ssl.cert=example.crt
  1. (可选)如需使用SSL访问Quay,需定制访问证书。
$ oc create secret generic custom-quay-ssl \--from-file=ssl.key=example.key \--from-file=ssl.cert=example.crt
  1. 在“Installed Operators”列表中进入Red Hat Quay一行后面的“QuayEcosystem”链接(即上一节的图),即进入以下图界面。然后点击“Create QuayEcosystem”按钮。
  2. 在“Create QuayEcosystem”页面中的YAML视图中提供以下内容,然后点击Create按钮。
apiVersion: redhatcop.redhat.io/v1alpha1
kind: QuayEcosystem
metadata:name: quayecosystemnamespace: quay-enterprise
spec:clair:enabled: trueimagePullSecretName: redhat-pull-secretquay:imagePullSecretName: redhat-pull-secret

说明:如需使用客户证书通过SSL访问Quay,需在以上YAML中增加以下“sslCertificatesSecretName: custom-quay-ssl”的内容。

。。。quay:imagePullSecretName: redhat-pull-secretsslCertificatesSecretName: custom-quay-ssl
。。。
  1. 此时Quay Operator开始部署名为example-quayecosystem的Quay环境。
  2. 可以在example-quayecosystem中查看Resources查看部署的资源。
  3. 在部署名为example-quayecosystem-quay的Pod时候,缺省可能会报以下错误(在Pod的日志中):
...
connect() to unix:/tmp/gunicorn_web.sock failed (2: No such file or directory) while connecting to upstream...
...

这是由于Quay使用LimitRange和OpenShift环境有抵触,可以执行以下命令删除example-quayecosystem环境中的LimitRange。

$ oc delete limitrange quay-enterprise-core-resource-limits
limitrange "quay-enterprise-core-resource-limits" deleted
  1. 在Developer视图的Topology中看到部署的资源。当都部署完成后如下图,此时可以进入“example-quayecosystem-quay”的Route链接。

访问Quay,操作镜像

  1. 在Red Hat Quay登录页面用quay/password即可登录Quay。
  2. 使用docker或podman命令登录Quay。
$ QUAY_URL=$(oc get route quayecosystem-quay -o jsonpath={.spec.host})
$ podman login -u quay -p password --tls-verify=false ${QUAY_URL}
Login Succeeded!
  1. 下载busybox镜像到本地并运行。
$ podman run busybox --name mybusybox echo "fun" > newfile
Trying to pull docker.io/library/busybox...
Getting image source signatures
Copying blob 91f30d776fb2 done
Copying config c7c37e472d done
Writing manifest to image destination
Storing signatures
  1. 查看已经退出运行的mybusybox容器。
$ podman ps -l
CONTAINER ID  IMAGE                             COMMAND   CREATED             STATUS                         PORTS  NAMES
43674c85abcb  docker.io/library/busybox:latest  echo fun  About a minute ago  Exited (0) About a minute ago         mybusybox
  1. 获得mybusybox容器的Container ID。
$ CONTAINER_ID=$(podman ps -aqf "name=focused_chandrasekhar")
  1. 基于现有容器构建新的容器镜像。
$ podman commit ${CONTAINER_ID} ${QUAY_URL}/quay/myfirstrepo
Getting image source signatures
Copying blob 50761fe126b6 skipped: already exists
Copying blob a258d2f9569c done
Copying config f0da56f864 done
Writing manifest to image destination
Storing signatures
f0da56f86410f0a63ded1de8c0d7744f6ee6e8739d9ed74acecf4401551d7242
  1. 查看本地容器镜像。
$ podman images
REPOSITORY                                                                                                       TAG      IMAGE ID       CREATED         SIZE
quayecosystem-quay-quay-enterprise.apps.cluster-beijing-959a.beijing-959a.example.opentlc.com/quay/myfirstrepo   latest   f0da56f86410   3 minutes ago   1.45 MB
docker.io/library/busybox                                                                                        latest   c7c37e472d31   3 weeks ago     1.45 MB
  1. 向Quay环境Push镜像
$ podman push --tls-verify=false ${QUAY_URL}/quay/myfirstrepo
Getting image source signatures
Copying blob 50761fe126b6 done
Copying blob a258d2f9569c skipped: already exists
Copying config f0da56f864 done
Writing manifest to image destination
Copying config f0da56f864 done
Writing manifest to image destination
Writing manifest to image destination
Storing signatures
  1. 在Quay控制台的REPOSITOIES中可以看到quay/myfirstrepo。
  2. 进入myfirstrepo镜像,查看Information。
  3. 查看Tags
  4. 查看Tag History
  5. 查看Usage Logs
  6. 查看Setting

参考

https://computingforgeeks.com/install-project-quay-registry-on-openshift-with-operator/
https://access.redhat.com/solutions/3533201
https://docs.projectquay.io/deploy_quay_on_openshift_op.html
https://docs.projectquay.io/deploy_quay_on_openshift.html

Quay (1) - 用Quay Operator配置Quay环境相关推荐

  1. OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10 环境中验证 由于新版 Quay 需要使用 OpenShift Data Foundation ...

  2. Quay(0) - 安装一个单实例 Quay 环境

    <OpenShift / RHEL / DevSecOps 汇总目录> 说明:本文使用 mirror-registry 开源项目安装一个单实例 RedHat Quay 环境.mirror- ...

  3. linux配置java环境变量(详细)

    一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车, ...

  4. SharePoint 2013 配置开发环境,需安装VS2012插件

    SharePoint 2013已经安装好了,接下来就是配置开发环境,安装VS2012,但是,装好了以后,发现没有SharePoint 2013开发的支持,如下图: 然后,去网上查找资料,VS2012对 ...

  5. java fx配置_JavaFX系列-配置开发环境

    JavaFX系列-配置开发环境 本文主要介绍JavaFX环境的搭建和如何部署JavaFX应用 添加JavaFX依赖 在工程 build.gradle 中加入以下内容: plugins { id 'ap ...

  6. java配置mq环境变量_RocketMQ学习-01安装及环境配置

    安装jdk环境 yum install java-1.8.0-openjdk java -version which java 输出 /usr/bin/java #软连接 ls -l /usr/bin ...

  7. Windows10下如何安装配置 perl 环境

    Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN.这篇文章主要介绍了Windows10下安装配置 perl 环境的详细教程,需要的朋友可以参考下 Perl 是 ...

  8. WIN10python3.7配置MaskRCNN环境及demo测试(tensorflow-gpu1.x)

    WIN10python3.7配置MaskRCNN环境及demo测试(tensorflow-gpu1.x) 一.工具 二. 环境搭建 三.下载mask_R-CNN 四.运行demo进行测试 #本文参考了 ...

  9. win10配置java环境变量,解决javac不是内部或外部命令等问题

    win10配置java环境变量,解决javac不是内部或外部命令等问题 * 1,首先进入环境变量页面  2,在系统变量下面配置 JAVA_HOME:你自己的jdk的路径 CLASSPATH= .;%J ...

最新文章

  1. VMware将世界领先的云访问安全代理合作伙伴纳入移动安全联盟
  2. git中的fork应该这样使用
  3. 斯坦福-随机图模型-week1.0_
  4. mysql php查询错误_php查询mysql数据库错误
  5. 浅析php中的stdClass
  6. 校门外的树——树状数组+区间修改
  7. st官网下载stm32固件库方法
  8. c++远征之模板篇——运算符重载
  9. django-模板加载顺序-随堂
  10. python3-开发进阶补充Django中的文件的上传
  11. 最耐用的手机盘点 网友:我这个能用到品牌商“破产”!
  12. 爬虫之Selenium库
  13. 常见导航菜单实现方式
  14. 安装Oracle问题总结
  15. 华为工作10年,年薪80万。
  16. 缘,如雁渡寒潭,似风吹疏竹
  17. 用计算机研究脑电波,可用于计算机硬盘识别及脑电波测量的量子传感器【中国科讯】...
  18. Oracle EBS 寄销/VMI(1)--基础设置;寄销/VMI(2)--采购篇
  19. TCP/IP协议簇之数据链路层
  20. Kubernetes集群部署实录

热门文章

  1. 屏幕距离和坐便转换工具_【软件推荐】你和大神的距离,只差这几个效率工具!...
  2. 接收字节流_Java中的IO流之输入流|乐字节
  3. centos ifconfig命令找不到_测试需要掌握docker的一些基本命令
  4. 收文处理和发文处理的环节_公文处理,如何提速增效
  5. python中用于生成数字序列的函数_Python中的生成器?
  6. 搞怪又可爱!一组emoji表情
  7. 新年春节项目海报设计,PSD分层模板,帮你顺利交稿!
  8. 春节临近|传统彩色手绘年画素材,满满东方韵味
  9. UI实用素材案例|视觉层次感爆棚的APP设计
  10. hashmap是单向链表吗_HashMap源码大剖析