首页
视频
资源
登录
原
OKD ImageStream
4836
人阅读
2021/8/25 15:02
总访问:
2637038
评论:
0
收藏:
0
手机
分类:
云产品
![](https://img.tnblog.net/arcimg/hb/6070b5726c184417b10c0c4ca6546931.png) >#OKD ImageStream [TOC] ImageStream ------------ tn2>ImageStream是OpenShift独有的一种对象,在Kubernetes中没有对应的对象。它主要目标是简化容积镜像管理,机制就是通过使用标签实现镜像指针。ImageStream包括一系列”标签指针“指向实际的容器,例如下图有latest、8和7版本的容器指针,它们分别指向了不同位置和版本的容器镜像。ImageStream本身并不保存镜像,而是只保存容器元数据和”标签指针“。 (可以简单理解为:存放image名称与image地址的一个键值队集合) ImageStreamTag ------------ tn2>内部镜像链接指向外部镜像链接的键值对 ImageStream简单实践 ------------ tn2>首先我们登录,并拉取一个`helloword`的镜像 ```bash oc login -u admin -p admin docker pull mcr.microsoft.com/mcr/hello-world ``` tn2>然后我们创建项目 ```bash oc new-project is-project ``` tn2>我们可以用以下`oc import-image`命令和`oc tag`命令创建一个存放在is-project下的ImageStream,并让它指向外部Image,这个外部Image就是`mcr.microsoft.com/mcr/hello-world:latest` ```bash oc import-image is-project/myhelloword:latest --from="mcr.microsoft.com/mcr/hello-world:latest" --confirm oc tag mcr.microsoft.com/mcr/hello-world:latest is-project/myhelloword:latest ``` tn2>然后我们可以查看这个ImageStream和ImageStreamTag的详细信息。 ![](https://img.tnblog.net/arcimg/hb/e513ca296c1945d786a62b56e6a27c74.png) tn2>名为myhelloword的ImageSteamTag指向的是DockerImage类型的External Image,外部镜像URL(名称+Tag)是`mcr.microsoft.com/mcr/hello-world:latest` 这个ImageSteam的mytag实际指向的外部Image是由dockerImageReference所指的sha256 ID,即下面的字符串。在生成ImageStreamTag的时候,OpenShift是使用了`mcr.microsoft.com/mcr/hello-world:latest`获得的该Image的sha256 ID。这样当在build或deployment命令中引用ImageStreamTag来创建Pod的时候,实际上使用的是用sha256 ID代表的Image。 ```bash mcr.microsoft.com/mcr/hello-world@sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a ``` tn2>1.每次通过ImageSteamTag使用Image的时候使用的是source类型的referencePolicy,即直接从source访问Image。因此如果当时网络不通,则无法访问该Image。 2.当生成ImageSteamTag指向sha256 ID后,修改升级外部镜像的tag就不再影响ImageSteamTag了,也就是说即便把外部镜像从`mcr.microsoft.com/mcr/hello-world:latest`改为`mcr.microsoft.com/mcr/hello-world:v1`,只要sha256 ID没有变化,OpenShift的ImageSteamTag就可以继续使用该外部镜像。 3.当外部镜像发生变化后需要自动更新ImageSteamTag对应的sha256 ID,那么可以使用`oc tag`或`oc import-image`命令的`-–scheduled=true`参数,它会在YAML中设置`importPolicy: {scheduled: true}`。 4.ImageStream是OpenShift扩展的对象,因此OpenShift的Build、DeploymentConfig等对象可以直接使用它。如果需要在Kubernetes的RC、Pod等对象使用ImageStream,可执行以下的命令启动ImageStream的本地名称查询功能。该命令将把ImageStream的`Imagestream.spec.lookupPolicy.local`设为true。 ```bash oc set image-lookup <<IMAGESTREAM>> ``` tn2>就拿我们刚刚的举例,当我们不开`本地名称查询`时 ```bash oc run myhelloword --image=myhelloword oc get pod -w ``` ![](https://img.tnblog.net/arcimg/hb/5a9b94a9d32945cd9b692532ab3fafc8.png) tn2>下面在使用了`set image-lookup`后就可通过`--image=myhelloword`使用该镜像了。 ```bash oc delete dc myhelloword oc set image-lookup myhelloword oc run myhelloword --image=myhelloword oc get pod ``` ![](https://img.tnblog.net/arcimg/hb/c1a98ae232794a20a5f029ee84b41083.png) tn2>我们可以看到它已经执行完成了,最后清理资源。 ```bash oc delete dc myhelloword ```
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
171篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
3篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
Halcon
3篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术