0. 前言

docker 镜像管理之 overlay2 最佳实践 中介绍了 image 的底层逻辑联合文件系统和分层结构。

image 存储在 registry 中,对于不同平台使用 registry 的策略有所区别。本文基于 RedHat 的 OpenShift 平台,对 registry 做概述。大致介绍 openshift registry 的框架,详细了解可以参考:OpenShift Container Platform 4.9 Documentation

1. OpenShift image 实践

在 OpenShfit(OCP,Openshift Container Platform) 集群外执行 kubectl get route 以获取 openshift-image-registry namespace 下的 route:

[root@chunqiu ~]# kubectl get route -n openshift-image-registry --kubeconfig config
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
default-route default-route-openshift-image-registry.apps image-registry <all> reencrypt None

其中,kubeconfig 选项的参数指定要访问的 OCP 集群,通过该配置完成集群的认证,鉴权。这里是在远端执行的访问操作,所以 kubeconfig 是需要的。

为什么查看 image registry 需要先看路由呢?接着往下看:

[root@chunqiu ~]# kubectl describe route default-route -n openshift-image-registry --kubeconfig config
Name: default-route
Namespace: openshift-image-registry
Kind: Route
Spec:
Host: default-route-openshift-image-registry.apps
Tls:
Termination: reencrypt
To:
Kind: Service
Name: image-registry
Weight: 100
Wildcard Policy: None
Status:
Ingress:
Conditions:
Last Transition Time: 2021-09-18T02:16:01Z
Status: True
Type: Admitted
Host: default-route-openshift-image-registry.apps
Router Canonical Hostname: router-default.apps
Router Name: default
...

route 路由定义了在集群外访问 Host default-route-openshift-image-registry.apps 的流量会转到 image-registry service。

OpenShift 为什么需要 Router 和 Route 详细介绍了 route, 关于 route 的理解可看这里

继续查看 service 绑定的 endpoint 是哪个 pod 的:

[root@chunqiu ~]# kubectl get service  -n openshift-image-registry --kubeconfig config
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
image-registry ClusterIP 172.30.0.1 <none> 5000/TCP 91d
image-registry-operator ClusterIP None <none> 60000/TCP 95d [root@chunqiu ~]# kubectl describe service image-registry -n openshift-image-registry --kubeconfig config
Name: image-registry
Namespace: openshift-image-registry Type: ClusterIP
IP: 172.30.0.1
Port: 5000-tcp 5000/TCP
TargetPort: 5000/TCP
Endpoints: 10.128.2.1:5000 [root@chunqiu ~]# kubectl get pods -n openshift-image-registry --kubeconfig config -o wide | grep image-registry
cluster-image-registry-operator-6d456994f-djnnl 1/1 Running 12 17d 10.128.0.25 hzngdc-rm17-e1-02-master-00
image-registry-6849cd4476-47kq4 1/1 Running 0 16d 10.128.2.1 hzngdc-rm17-e1-02-worker-13

可以看出,service 绑定的 Endpoint 是 pod image-registry-6849cd4476-47kq4 的 ip 地址,提供 registry 服务的实际上是该 pod。那么 push 的 image 又被存在哪里呢?查看该 pod 的描述:

[root@chunqiu ~]# kubectl describe pods image-registry-6849cd4476-47kq4 -n openshift-image-registry --kubeconfig config
Name: image-registry-6849cd4476-47kq4
Namespace: openshift-image-registry
Volumes:
registry-storage:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: registry-storage
ReadOnly: false [root@chunqiu ~]# kubectl get pvc -n openshift-image-registry --kubeconfig config
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
registry-storage Bound pvc-03631962-4b9e-4913-a505-d732b9378157 120Gi RWO ocs-storagecluster-ceph-rbd 91d

从描述可以看出,提供 image registry 的服务绑定到 pvc registry-storage 上,该 pvc 的容量为 120Gi,push 的 image 将存储在这个 pvc。

至此,基本上这个框架已经清楚了,给出简易流程图如下:


OpenShift image registry 概述的更多相关文章

  1. Openshift创建Router和Registry

    Openshift创建Router和Registry: [root@DockerServer openshift]# oadm policy add-scc-to-user privileged sy ...

  2. 001.OpenShift介绍

    一 OpenShift特性 1.1 OpenShift概述 Red Hat OpenShijft Container Platform (OpenShift)是一个容器应用程序平台,它为开发人员和IT ...

  3. 002.OpenShift安装与部署

    一 前置条件说明 1.1 安装准备概述 Red Hat OpenShift容器平台是由Red Hat作为RPM包和容器映像两种类型存在.RPM包使用订阅管理器从标准Red Hat存储库(即Yum存储库 ...

  4. OpenShift应用镜像构建(1) S2I tomcat 镜像定制

    参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...

  5. Docker Private Registry 常用组件

    Docker Private Registry 常用组件 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Registry概述 1>.什么是registry ...

  6. Openshift与Kubernetes的区别

    Openshift与Kubernetes的区别 Openshift首个支持企业级 Java 的 PaaS 平台,支持 JEE6 与 JBoss 和其 Eclipse 集成开发环境以及 Maven 和 ...

  7. CDK安装

    1.下载cdk https://developers.redhat.com/products/cdk/download/ 2.在mac OS上更名并加入目录 $ mkdir -p ~/bin $ cp ...

  8. docker 搭建私有 docker hub

    查找registry 镜像 meiya@meiya:/etc/docker$ clear meiya@meiya:/etc/docker$ docker search registry NAME DE ...

  9. Docker 官网文档翻译汇总

    官方文档地址 Guide Docker 入门 Docker 入门教程 方向和设置 容器 服务 swarm 集群 stack 部署应用 概述 用 Docker 进行开发 在 Docker 上开发应用 应 ...

  10. OpenShift实战(三):OpenShift持久化存储Registry

    1.查看Registry组件的DC关于volume的定义 可以看到registry-storage这个挂载点被指向了一个/registry目录,使用的是empty directory,即数据保存在计算 ...

随机推荐

  1. SpringBoot CORS 跨域请求解决方案之配置过滤器

    方式一:@CrossOrigin 方式二: @Configuration public class CorsConfig implements WebMvcConfigurer { @Override ...

  2. Oracle-lsnrctl监听进程控制

    LSNRCTL> help The following operations are available An asterisk (*) denotes a modifier or extend ...

  3. 如何从零开始实现TDOA技术的 UWB 精确定位系统(2)

    这是一个系列文章<如何从零开始实现TDOA技术的 UWB 精确定位系统>第2部分. 重要提示(劝退说明): Q:做这个定位系统需要基础么?A:文章不是写给小白看的,需要有电子技术和软件编程 ...

  4. GaussDB(for MySQL)如何在存储架构设计上做到高可靠、高可用

    摘要: GaussDB(for MySQL)通过ND算子下推解决存储节点和计算节点之间的传输速度,减少网络开销这个难题. 数据库作为高效稳定处理海量数据交易/分析的坚强数据底座,底层架构设计的重要性不 ...

  5. 技术解读丨GaussDB数仓高可用容灾利器之逻辑备份

    摘要:GaussDB数仓的Roach工具,同时提供物理备份和逻辑备份两种主要形态的备份.逻辑备份针对数据库的逻辑对象进行抽取和备份,能够有效地应对单表.schema级等较细粒度的备份,较为灵活和便利. ...

  6. 用100W+行代码贡献经验,带你了解如何参与OpenHarmony开源

    摘要:截至2022年11月,深开鸿共计参与共建OpenAtom OpenHarmony(以下简称OpenHarmony)社区16个SIG,其中4个为深开鸿主导,并累计贡献代码量超过百万行. 本文分享自 ...

  7. 带你认识图数据库性能和场景测试利器LDBC SNB

    摘要:本文主要介绍基于交互式查询所用的数据生成器(下文简称Datagen),及LDBC SNB数据如何在华为图引擎服务GES中应用. 本文分享自华为云社区<[图数据库性能和场景测试利器LDBC ...

  8. 万字长文|大数据学前准备之Linux入门笔记(附资料)

    对于大数据学习而言,Linux运维可以说是必备的技能.可以不研究的过于高深,但是基本的操作和使用一定要熟练.Linux的学习需要大量的实践,本文从linux的基本知识,实战操作,到常用的指令与软件安装 ...

  9. 如何通过appuploader把ipa文件上传到App Store教程步骤​

    iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows.Linux或Mac系统中 ...

  10. 火山引擎 ByteHouse 与白鲸开源完成兼容性认证,加速数据价值释放

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据作为新型生产要素,已快速融入生产.分配.流通.消费和社会服务管理等各环节,深刻改变着生产方式.生活方式和治理方 ...