随着云计算、DevOps和微服务应用架构的发展,容器云成为IT的主要基础设施平台之一。以Docker为代表的容器技术,是目前有效的应用交付模式之一;以Kubernetes为代表的容器编排技术,是目前流行的应用部署方案。云平台的基础设施、DevOps的工程体系和微服务应用架构是IT技术转型的底座。而容器云又是这个底座下的一块基石。
下面几个问题是在Docker+K8S容器云建设过程中,最常被问起和需要解决的难点问题。来自社区交流活动,多位社区会员分享解答,整理者:gavin_zhang
1、企业是应该选择原生的Docker还是定制化的Docker,比如胖容器/富容器?
【问题描述】Docker是当前企业在进行容器化时首选的容器技术,但是原生的Docker在实际使用的过程中,特别是在传统虚机运维到容器化运维的过渡中,会碰到以下类似问题:
1、如何ssh登录到容器,像登录虚机那样,可以通过ssh进行管理
2、对于普通用户来说,如何从容器中拷贝文件到外部
3、虚机中一般会配置定时任务,在容器中如何实现
4、虚机中一般会安装各种agent,容器中怎么去安装
若企业直接采用原生的Docker,那么以上问题是比较棘手的。因此企业在容器技术选型上,是否应该为了最大程度兼容虚机运维模式,对Docker进行定制化改造,满足实际需求呢?
@某银行 技术经理:
是使用原生还是定制就要看企业实力了。一般的企业不会去动原生的东西,不愿意将人力花在这个方面。很多企业是通过应用的改造来适配容器化的方案,包括运维上的问题。
4个问题:
1、docker exec可以进入容器,如果是k8s或者ocp,还有有相应的api
2、方便拷贝的方式第一个容器中应用产生的文件目录挂载到本地;第二个使用相应的命令如docker cp;也许你说的不仅限一些简单场景,其实都是有方法的,不仅以上两种
3、容器中也是可以使用crontab定时任务操作的
4、agent的功能要先说清楚,如果上k8s或者ocp,一个pod可以完成你要说的内容。如果仅仅是用docker,根据功能需要应该也是有方法的。
@gavin_zhang 某股份制银行 系统架构师:
1、docker exec可以满足要求
2、最直接就是挂在本地磁盘存储到容器上
3、可以考虑一下,定时调度起一个Docker执行任务
4、主要是这些Agent是用来干什么的?Docker实例本来就是作为一种一次性的,不可变的运行实例,传统虚拟机的那个操作Agent,不符合容器的设计理念
定制化最大的问题在于,目前技术升级比较快,一旦定制,就锁定在几个版本了