OpenShift image registry 概述
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 概述的更多相关文章
- Openshift创建Router和Registry
Openshift创建Router和Registry: [root@DockerServer openshift]# oadm policy add-scc-to-user privileged sy ...
- 001.OpenShift介绍
一 OpenShift特性 1.1 OpenShift概述 Red Hat OpenShijft Container Platform (OpenShift)是一个容器应用程序平台,它为开发人员和IT ...
- 002.OpenShift安装与部署
一 前置条件说明 1.1 安装准备概述 Red Hat OpenShift容器平台是由Red Hat作为RPM包和容器映像两种类型存在.RPM包使用订阅管理器从标准Red Hat存储库(即Yum存储库 ...
- OpenShift应用镜像构建(1) S2I tomcat 镜像定制
参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...
- Docker Private Registry 常用组件
Docker Private Registry 常用组件 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Registry概述 1>.什么是registry ...
- Openshift与Kubernetes的区别
Openshift与Kubernetes的区别 Openshift首个支持企业级 Java 的 PaaS 平台,支持 JEE6 与 JBoss 和其 Eclipse 集成开发环境以及 Maven 和 ...
- CDK安装
1.下载cdk https://developers.redhat.com/products/cdk/download/ 2.在mac OS上更名并加入目录 $ mkdir -p ~/bin $ cp ...
- docker 搭建私有 docker hub
查找registry 镜像 meiya@meiya:/etc/docker$ clear meiya@meiya:/etc/docker$ docker search registry NAME DE ...
- Docker 官网文档翻译汇总
官方文档地址 Guide Docker 入门 Docker 入门教程 方向和设置 容器 服务 swarm 集群 stack 部署应用 概述 用 Docker 进行开发 在 Docker 上开发应用 应 ...
- OpenShift实战(三):OpenShift持久化存储Registry
1.查看Registry组件的DC关于volume的定义 可以看到registry-storage这个挂载点被指向了一个/registry目录,使用的是empty directory,即数据保存在计算 ...
随机推荐
- jenkins pipeline语法、自动生成、部署案例
Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成和持续交付: pipeline的编写都要写入到一个名为Jenkinsfile的文件中. 流水线脚本管理 Jenkinsfi ...
- Vue学习笔记-快速入门
整体代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Python——第二章:字符串操作——格式化
1. 字符串的格式化问题 举例:要按照如下格式输出一句话 我叫xxx, 我住在xxxx, 我今年xx岁, 我喜欢做xxxxx 这里首先引入占位符概念: %s 占位字符串%d 占位整数%f 占位小数 因 ...
- P2343 宝石管理系统 做题记录
随机跳的. 一眼带修第 \(\text{k}\) 大,平衡树 / 权值线段树 / set 随便搞就行. (set 可能要双 \(\log\),所以没写) 很快啊,权值线段树就 \(\text{A}\) ...
- flutter弹窗
AlertDialog: 优点:Material风格的弹窗,具有灵活的布局和样式自定义能力.易于使用,并提供了标题.内容和操作按钮的选项. 缺点:对于复杂的自定义布局和样式可能不够灵活. Bottom ...
- Spring系列:基于Spring-Jdbc实现事务
目录 一.事务基本概念 二.编程式事务 三.声明式事务 前期准备 四.基于注解的声明式事务 @Transactional注解标识的位置 事务属性:只读 事务属性:超时 事务属性:回滚策略 事务属性:隔 ...
- C++篇:第十四章_编程_知识点大全
C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 十四.编程 (一)概念 系统函数及其库是 C++语言所必须的,预处理命令不是 C ...
- 聊聊GaussDB AP是如何执行SQL的
本文分享自华为云社区<GaussDB AP是如何执行SQL的>,作者:yd_270088468. 前言 介绍GaussDB AP各组件是如何协调工作的,会着重介绍SQL引擎. 1.SQL引 ...
- 掌数科技携手华为云GaussDB,助力金融科技创新,联合打造行业标杆
本文分享自华为云社区<掌数科技携手华为云GaussDB,助力金融科技创新,联合打造行业标杆>,作者:GaussDB 数据库 . 近日,在华为开发者大会2023(Cloud)的"G ...
- 从相识到相惜:Redis与计算存储分离四部曲
摘要:协议兼容问题.性能问题.数据备份问题.数据容量问题--这些都是数据库在使用过程中必然会遇见的问题.就好比选择结婚对象,你需要去对比不同的方面,最后选出最好的.最合适的. 近期全国两会正在轰轰烈烈 ...