热门标签: Docker Rancher Windows Server容器 存储 容器

【群分享.4】关于Rancher Catalog 的Online Meetup


编者注:


以下内容根据2016.2.15晚9点【Rancher | 实战群】微信群的分享内容整理。分享人:江松,Cloudsoar云舒网络联合创始人兼研发副总裁。对Rancher和Docker技术感兴趣、或对本文中细节需继续探讨的朋友,欢迎加入本群参与讨论! (注:【Rancher | 实战群】QQ群现已同步开通,惯用PC端办公的伙伴可加入参与相关讨论。)

 

注:本期分享由江松原创,云舒网络整理发布。

  

文字回播总结 Rancher 2016年1月发布的Rancher 1月份online meetup视频。关于Rancher Catalog。

 

Cntalog是Rancher最重要的应用功能。

 


1. Docker/Rancher  Compose


Docker/Rancher  Compose是Rancher的核心。它的主要功能如下:

描述容器如何部署

启动Stack

服务升级

定义服务发现的策略

定义容器调度规则

定义环境变量

定义负载均衡和健康检查


2.Catalog



当公司将App基于Micro Service, 将产生各种各样的Compose File。CICD流水线上一系列步骤都需要各种Compose File, 有些基于同样的版本,但是有自己的细微变化,有些需要回滚到上一个版本。Rancher引入了Catalog这个概念就是要提供如下功能:

管理各种版本的Compose File

让用户使用UI很容易来对现有的Compose File做细微修改,配置和部署应用  

在Github上有一些通用服务的模板

支持版本控制和升级

支持Private Catalog


 


3.Demo


当有一个新的版本的应用Catalog定义发布以后,在Stacks页面会有通知,你可以单击按钮去升级。一个很重要的Catalog use case就是公司集中管理应用Catalog, 当有新的升级时,所有的开发运维人员都能收到通知而去做相应的升级。

 

4.Demo Private Catalog

 你可以在Admin页面加入Private Git Gatalog Repo,选择Catalog的时候可以选择从哪个Catalog Repo来部署。

 Q: Private Catalog Repo的用户认证怎么解决?

 A: 给Rancher Serve加入SSH, 可以考虑启动Rancher Server的时候bind mount key文件。(0.56应该支持)

 

5.制作Catalog.

制作Catalog 从上到下的驱动过程是:Catalog Entry->Compose file->services->containers。

具体的流程是start with Containers->Arrange into services->Express into compose->Parameterize->Create entry。

Start with Containers的原则:

尽量利用现有的Image, 找到合适的工具,考虑配置,数据布局以及健康监测。

Arrange into Services的原则:

Services存在不同的组件,让每个Container专注一件事,Container之间共享数据或者网络来对外提供服务。一个比较典型的Service包含1个数据卷Container, 1个主服务进程Container, 1个配置Container, 1个网络Agent Container。

Express into Compose的原则:

没有什么特别强调的,按照正常步骤进行。

Parameterize的原则:

最终用户需要修改微调的参数如Config Values, Port等。另外要考虑适当的Default值。

Create entry的原则:

按照正常步骤进行。记住写个Readme!

 

Q&A

 

Q: Catalog 能不能加入Scheduling Policy?

A: 现在还没有,对Sysdig有类似的功能,但是其他的没有。

 

Q:如果Container迁移了,Link会不会自动迁移?

A: 取决于应用,如果采用的是Rancher DNS服务,那么DNS服务会跟踪Container的IP变化。或者是借助Load Balance来通过DNS刷新。如果是写死IP的应用,比如Zookeeper,那么我们计划是加入Label, 那么Container能保持原来的IP.

 

Q:How to update meta data to stack without a Git push?

A: 现在不行。(我的问题,Git push 能自动更新正在运行的Stack么?)

 

Q: Launch a Catalog Entry后,再删除Catalog Entry会不会对运行中的Stack有影响? A: 不会, Rancher Server和Catalog Server是两个松耦合组件,一旦Catalog Launch了之后,Rancher Server唯一记录的就是Catalog ID,Rancher Server就像对Catalog做了一个快照,快照做完后,原始的Catalog Entry变化后不会对现在运行的Stack有任何影响。

 

Q: Rancher Compose不支持Boolean True/False, 必须是String “true”/”false”?

A:是的,我们跟随Docker Compose.

 

Q:用户能不能把Catalog里的Stack加入现有的LB(Load Balance)?

A: 目前UI不支持,但是我们有一个叫Selectors的命令行工具支持。有点类似k8S的Selectors,就是在定义LB的时候,加入一个Selector(如果有Label A的服务自动加入LB),在部署Catalog的时候,加入这个Label A,那么服务自动加入LB。以后我们还会改进LB的配置脚本,这样一个服务不仅能自动加入LB,还能够按照需要更改或者加入LB的策略。

 

Q:怎么样Trouble shooting Rancher?

A:现在最好的工具是Process Log. 比如创建一个容器失败,你可以在Process Log里查找Instance_Create, 点击进入某个容器创建的具体的步骤细节。Rancher保存Process Log一天。Rancher还在持续改进这个功能。

 

最后介绍了几个新的Feature。Random port assignment for services. Port是随机选取的,但是在整个Cluster都是唯一的,Service从这个主机迁移到另外一个主机,Port不变。这个和Docker Random Port不一样。

 

附原视频下载地址:http://pan.baidu.com/s/1jHfP9Dc

 

本文电子书下载:

网页下载:http://www.cloudsoar.com/down/ddoc/v1.1/

百度云盘下载: http://pan.baidu.com/s/1jHfP9Dc

————————————————————————————————————

温馨提示:

云舒网络携手Rancher Labs推出【Rancher | 实战微信群】,在线为您分享Docker技术干货,更有往期回顾精选期刊等你拿!

本群汇集了Rancher中国最强技术精英团队及业内技术派高人,宗旨是为了大家拥有更专业的平台交流Rancher实战技术,实时与Rancher创始团队面对面!同时欢迎各位分享自己的经验、疑难问题,我们将定期邀请分享嘉宾做各类话题分享及回顾,共同实践研究Docker容器生态圈。

对Rancher和Docker技术感兴趣、或对本文中细节需继续探讨的朋友,欢迎加入本群参与讨论!

加微信群方法:

      1.关注【云舒网络】公众号

      2.留言”我要加群”

QQ群号:216521218


云舒网络官方微信二维码