阿里云上的容器技术实践详解

为什么选择阿里云

本文讲的是阿里云上的容器技术实践详解,现在的公有云如雨后春笋,国外如AWS、Azure、Bluemix,国内如BAT、DaoCloud、goodrain,都可以给大家提供丰富的云基础设施和上层服务,那么,为什么选择阿里云呢?主要有三点想法:

我们使用阿里云的服务已经有5年了,从企业级PaaS平台合作开始,再到帮助我们的一些客户逐步迁云,对阿里云的能力还是比较熟悉的。

因为要做的是容器,国外AWS,Azure虽然有,但AWS在中国一直没“正规”数据中心(唯一的一个前几天还被查了),Azure是微软体系(也许是心里作祟,总感觉不对口...);而国内虽然一些公有云有容器能力,但规模普遍偏小;再者,阿里云反正也开始做容器了,说明人家底层还是有支持能力的。

当然,还有一个做法,自建数据中心或租赁IDC,不过做事情还是的慢慢来,不到一定规模,前期投入还是比较大的。

怎么用阿里云

有人问,在IT领域,现在跟10年前比,对技术人员或架构师要求有什么不同?

我是这么来看的:以前大多数是做加法 —— 每个领域就那几个产品或框架,需要的更多是集成能力;现在是要做减法,因为技术栈太多了(全栈工程师不好当呀...),到底选哪些,这往往是最考验能力的。

我们最终选择了Kubernetes+CoreOS+docker的组合,当然少不了辅助的Etcd、Flannel...……大家可能会问:为什么不用ubuntu、ranchar啊,为什么不用OVS啊,其实我们都是有理由的,这篇文章里不是重点,之后再交流。

那紧接着要做什么也就明了了,在阿里云的ECS上先跑CoreOS(docker反正自带了),然后去部署Kubernetes那一整套,验证验证技术可行性吧。可以的话,再做分布式存储,然后支持DevOps,自动化运维,先后顺序也很好选。

没有问题是不可能的

大家可以到阿里云官网上去搜下docker,或者kvm类似的,映入眼帘的是以下这张图:

千万别气馁,因为都有CoreOS镜像了,不支持docker谁信(其实阿里云还是蛮务实的,没有经过严格测试不敢说支持),好歹也得试一试,于是就先买了几台CoreOS机器,接下来做的一些事情就不那么顺利了:

先做系统升级(默认版本比较低了,681.2.0 64位),那大家都知道外网流量很贵,所以最好搭个内部升级服务器,在升级后发现网络有问题,进不去,内部进入发现原因是网络没起来,这工作只有先手工做了(systemctlrestart systemd-networkd.service)。

升级完了,最好的习惯是去打快照(当然,这个服务过些天就要收钱了,还挺贵的...),发现没打出来,这个问题排了好久,最后的原因是自作孽啊,删了个自认为没用的yunservice,后来想想也觉得自己幼稚了,都叫"yun"了,肯定是阿里云留下做事情的呀。

kubernetes安装,一般来说有三种安装方式,命令型、服务型、容器型,技术成本考虑,最终我们先用了前两种的混合态,然后setup-network-enviroment辅助验证,还好没遇到大问题,容器间网络很快通了(我们用了container模式,端口映射出去)。

因为在VPC环境,我们使用了EIP,但IP资源实在是宝贵(20个),所以留了一个做堡垒机,其他的大部分给了计算节点,由kubernetes的service public IP消费了,这点告诉我们,宝贵资源大家前期一定要做好规划。

内部DNS能力,用了skyDNS,一个比较坑的问题:一定要用最新版本,之前哪怕是release版本都有问题,服务注册后进不去出不来的,反正挺诡异的,一直也没见说哪个版本修复的。

跑服务过程中遇到了棘手问题,大家都知道kubernetes的容器调度能力,会结合自身的一些分析,在运行时把pod做热迁,放到他认为合适的机器上,这就使得容器用宿主机本地磁盘不现实了,持久化数据没法迁移或共享呀(当然,有同学说可以通过label强制运行在某处,但好特性还是想用一用,不然什么都规划好,这和云的宗旨就貌合神离了),这怎么办?分布式存储是个好方案,但阿里的块存储服务还没发布,虽然我们一直是决定自己搭,但那也是下个版本的事情了,这边先low了一下,只能先用NFS临时解决。

最终架构和技术栈

上面罗里吧嗦地说了过程中遇到的一些问题,当然还有,就不详举了,不然就变成了公有云吐槽了!

这里想简单再分享下我们的技术栈和架构,希望对大家有用。

刚才已经把容器技术栈给说了,接着就是容器里跑的微服务使用技术了:

springboot,让微服务编码、配置、部署、监控变得更简单

react+redux,让前端也可以微服务化

MetaCube(自研产品),元数据,提供资源全图、驱动运营

Redmine,提供产品和服务管理

ElasticSearch、InfluxDB,运维监控能力

BPS(自研产品),一体化的流程能力

其他还有好多,saltstack、gitlab、Jenkins、autoconfig、OAuth等等,不细说了。

平台是以DevOps为核心的,最终架构如下:

围绕统一接入,自动化协作,运营反馈等,建设了完整的企业级云平台,后面我会分模块一一介绍,大家先概览一下就可以了。

还有一些其他的能力建设

包括高可靠、高性能、灰度发布、熔断、APIGateway、自动化、安全控制…,大家有兴趣可以一起交流,共同进步。

时间: 2024-10-26 05:37:47

阿里云上的容器技术实践详解的相关文章

【阿里云资讯】Docker首个国内合作商,阿里云何以认定容器技术将成主流?

阿里成Docker首个国内合作商 10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云称其将为客户提供更加先进的云上应用管理服务.双方称在开源容器技术以及其发展方向共同努力,为客户提供本地化Docker的企业级支持和咨询服务. Docker自问世三年来,社区不断壮大,项目升温之迅猛在开源社区中并不多见,并受到IT业内的广泛关注.不过,Docker在国内真正的大规模应用仍然不多,目前国内Docker的使用状况

女娲:阿里云分布式一致性协同服务架构详解

他的演讲内容主要分为四个方面:分布式协同服务背景.女娲服务架构以及技术演进.典型女娲服务应用场景分享.全球化架构下的女娲进化,下面是本次分享内容整理.点击查看回顾视频 分布式协同服务背景 分布式协同服务 在大规模云计算场景中,为保障数据分布式一致性,数量众多的计算节点往往依赖分布式协同服务来同步对共享资源的互斥访问,或者依赖分布式协同服务的消息通知功能来协调各自之间动作,使众多节点作为一个整体完成一项工作. 作为云计算分布式系统的核心,在设计分布式协同服务之初需要考虑互斥性.消息通知和扩展性三个

阿里云直播PHP SDK使用方法详解

1.直播云没有单独的SDK,直播部分的SDK是直接封装在CDN的相关的SDK里面 2.针对SDK,没有demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,网站上面的说明与源码里面的说明完全不一致. 5.针对SDK没有封装那些常用的访问,需要用户组合调用SDK进行拼装,总之一句,这也太抽象,看看人家七牛的API,哎,不多说啥了 6.提供的SDK路径乱的一踏糊涂,想直接用没门,得各种调整. 7.针对SDK基于PHP更高登记的版本,照顾不到一些低版本用户. 针对上面几点原因,踩了一

【X-Pack解读】阿里云Elasticsearch X-Pack 安全组件功能详解

X-Pack Security 2017年1月爆发了Elasticsearch数据勒索事件,涉及到的数据至少500亿条,被删除数据至少450TB.如何提高Elasticsearch应用的安全性,是开发者面临的重要问题.Elasticsearch X-Pack中的安全组件提供了对应的安全解决方案,让IT和应用团队能够依赖 X-Pack 来区分和管理正常用户和恶意入侵者:与此同时,Elasticsearc中存储的数据始终享有可靠的安全保障,公司高管和客户都能高枕无忧. 密码管理 要想保护流经 Ela

【X-Pack解读】阿里云Elasticsearch X-Pack 监控组件功能详解

X-Pack Monitoring 阿里云Elaticsearch已集成X-Pack组件,用户可以开箱即用监控功能,依靠运行Agent收集和监控Elaticsearch.Logstach.Kibana等实例的索引和指标,并借助Kibana可视化能力实时监控这些应用. ELK应用性能监控 X-Pack monitoring 功能提供了一种有效方法,让您能够密切关注 Elasticsearch.Kibana 和 Logstash 的性能.它的仪表板集合能够帮助您在各个层级上评估仪表板的状态,同时为您

【X-Pack解读】阿里云Elasticsearch X-Pack 机器学习组件功能详解

X-Pack Machine Learning 数据复杂多变,当出现基础设施问题.入侵者或业务问题时,几乎不可能利用规则或通过人工监视仪表板发现问题.阿里云Elaticsearch的X-Pack引入了机器学习功能machine learning,可以实时地自动模拟 Elasticsearch 数据的行为--趋势.周期等.从而更快地发现问题.简化问题根源分析.降低误报率. 透过数据表象 借助机器学习功能,Elasticsearch能够机敏地迅速回答 "上周各小时每秒请求数量是多少?" 等

性能与性价比的平衡,阿里云第二代入门级实例T5详解

在2017杭州云栖大会上,阿里云副总裁李津发布了ECS全新一代入门级实例T5,其中最大的亮点是:T5与ECS刚刚发布的企业级实例采用同一基础设施平台,让T5在提供高性价比的同时,也能拥有企业级ECS的稳定基因. 该系列实例主要面对的场景是:平时 CPU低利用率较低,但间歇性又需要瞬时对 CPU 占用较高的场景:比如一些轻量级网站.Web应用服务.测试.开发或其他低负载应用.但同时又需要在us甚至ms时间内能够快速响应瞬间高 CPU 资源使用需求,ECS T5 实例正是为这种场景而生. 较以往面向

【X-Pack解读】阿里云Elasticsearch X-Pack 告警组件功能详解

X-Pack Alerting CPU 使用率意外增加, 应用响应时间激增:503 错误的数量火箭式上升:Elasticsearch 索引率直线下降.尽管情况层出不穷,但是您可以通过X-Pack的告警组件Alerting发送您所需的警报,让您随时随刻掌握应用情况. 检测数据变化 X-Pack 中的 alerting 功能可让您充分利用 Elasticsearch 查询语言,当数据发生令您感兴趣的变化后,您能够发现这些变化. 换言之,如果您能够在 Elasticsearch 中查询某些数据,就能够

【X-Pack解读】阿里云Elasticsearch X-Pack 报告组件功能详解

X-Pack Reporting 阿里云Elaticsearch用户可以开箱即用X-Pack的报告组件功能,能够为Kibana 可视化或仪表板快速生成报告.用户可以即需即取报告.预约报告.根据特定条件触发报告,并自动将报告分享给他人如经理.客户.合规专员.报告所采用的架构为报告赋予了可扩展性,并且便于报告传输,让您能够随时随地获取 Kibana 中的信息. 自定义报表导出 Kibana 是您可视化和探索 Elasticsearch 数据的绝佳方法.X-Pack reporting 功能让您能够轻