前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器变更,这是个坑

容器变更,这是个坑

作者头像
SRE运维实践
发布2019-07-08 13:31:10
6540
发布2019-07-08 13:31:10
举报
文章被收录于专栏:SRE运维实践

序言

变更是运维的常用操作,而容器的变更和普通的变更不一样,从而会有不同的视角。

笑起来很容易,但是想笑很难。。。。Emmm,就是这样的。。。

容器变更

容器的运行都是通过一个镜像就能运行了,而镜像在使用的时候都是从registry中pull过来的,然后保存在本地之中,然后再利用这个image进行运行容器。

当程序出现bug之后,总是喜欢直接修改容器中的内容,然后继续运行,但是这样会造成一个问题,当容器重新调度到另外一个物理机的时候,从而会导致配置丢失,毕竟在调度的时候,又重新从镜像中心拉取了相关的配置,从而。。。在不知不觉中还原了配置。

在使用镜像中心的时候,默认是不能进行清空镜像中心的内容的,每次进行升级的时候,都是将镜像上传到镜像中心,从而镜像中心空间都是无限增大,需要手动清理空间。。。Emmm,手动清理?

还有一种方法就是直接移除整个镜像中心的目录,然后重新上传所有最新镜像的版本,但是这种是有风险的,毕竟如果这个时候出现物理机宕机,然后容器需要重新进行调度,那么这个时候,就会影响服务了,不过不存在单点的情况下,还是能够忍受的。。。需要衡量整体镜像中心的大小,预估时间然后上传

修改配置文件,开启删除功能。

测试删除功能:

curl -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" localhost:5000/v2/redis/manifests/latest获取sha

curl -i -X DELETE 192.168.1.198:5000/v2/redis/manifests/sha256:dfeb

当未修改配置文件的时候:

完整删除整个镜像存储:

出现如下报错时:

commit?

在有的时候,总是喜欢commit来进行修改容器的内容,从而不会丢失相关的配置,然而commit只是提交到本地,并不是提交到镜像中心。

当使用commit的时候,只是提交到本地的镜像仓库,而不是push到镜像中心,而且,当未指定repository和tag的时候,提交的都会变成none,当没有设置tag的时候,那么会将原来的镜像的tag变成none。。。so,该push的还是要push的,否则容器重新调度,配置还是会丢失。

也可以恢复本地的镜像:作为临时的测试,commit还是很好用的。

当需要从一个地方拿一个镜像过来玩玩的时候,save和load还是很好用的。

总结:当进行容器变更的时候,一定要修改镜像的版本,而不是随意修改本地仓库,本地是本地,镜像中心是中心。。。

一碗水端平,感觉是不可能的。。。公正?永远只是取舍的一种方式,这其中存在的强烈冲突。。。心如止水?

随着时间,慢慢慢慢变成了自己讨厌的人,是因为环境?还是因为必须有所取舍。。。说好的初心呢?初心喂了狗。。。

计较。。。哼。。。这是一个无解的题目,只能跳出这种思维的怪圈。。。做好一件事,其实也蛮难的。。。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档