设为首页 收藏本站
查看: 1592|回复: 0

[经验分享] Kubernetes

[复制链接]

尚未签到

发表于 2015-12-15 08:16:10 | 显示全部楼层 |阅读模式
欢迎加入运维网交流群:263444886   DSC0000.jpg
  Kubernetes是一套开源容器编排系统,负责管理各类利用Docker容器构建而成且跨越多台主机的应用程序。尽管最初该项目由谷歌公司所建立,不
过其目前已经转由云原生计算基金会负责推动。Mesosphere自其诞生以来一直提供面向Mesosphere的支持能力,而我们也一直在致力于将自己
的数据中心操作系统(即Datacenter Operating System,简称DCOS)打造成一套能够对其加以承载的卓越平台。
  
  尽管我们的Marathon框架已经在为众多知名企业管理大型生产型容器环境,但我们很清楚仍有不少开发人员希望能够使用Kubernetes,
我们也希望能够为他们提供最理想的方式以构建基于微服务架构的应用程序。而Kubernetes-Mesos正是我们基于这一理念所开发出的技术成果,其
能够将Kubernetes作为原生Mesos框架处理并运行在DCOS之上。Kubernetes-Mesos能够通过DCOS命令行软件包管理器轻松
完成安装,且可以同任意数量的其它Mesos框架——包括Marathon、Spark、Kafka以及Jenkins等等——实现同地协作,从而共享来
自同一套集群中的各类资源。
  
  就在本周,我们高兴地宣布 Kubernetes-Mesos v0.7.0-v1.1.10-alpha 版本的发布,其也成为两大项目以及我们用户最重要的发展里程碑。
  
重要发展里程碑
  尽管目前Kubernetes-Mesos仍然处于alpha测试阶段,但我们已经在全面投入生产环境以及100%兼容Kubernetes平台方面实现了显著进展。这一版本之所以如此特别,是因为我们成功实现了以下两大目标:
  

  •   其基于刚刚于三周前在KubeCon大会上发布的最新且最强大的Kubernetes v1.1。
  •   其已经在与基于Docker组件的开发/测试集群的配合之下通过了Kubernetes兼容性测试套件的考核。
  
  第一项目标的重要意义在于,这意味着我们能够在其主要版本推出后的极短时间之内发布新的DCOS
Kubernetes软件包。之所以能够实现这一点,是因为我们一直在上游GitHub库当中开发并维护Kubernetes-Mesos,并以透明化方
式将其整合至Kubernetes社区e2e测试基础设施当中。来自Kubernetes开发者社区的每一项新功能与bug修复成果都会触发对应条件,并
以实时方式对Mesos的集成效果加以测试。一旦出现编译错误及测试失败状况,开发人员会立即得到报告并对问题加以修改,而不至于把对应代码添加到库当
中。
  尽管Kubernetes用户无法直观感受到这些,但这种严密的开发集成机制允许我们以既定步调发布高质量的开发成果。
  
  而第二项目标的重要意义在于,我们能够借此证明在我们基于Docker组件的开发集群的支持下,Kubernetes-Mesos如今已经能够100%地同开发社区在定义“Kubernetes体验”时所设计的功能及特性实现兼容性保障。
  
  对于最终用户而言,这种兼容性非常重要——因为这意味着他们的Kubernetes工作负载或者其它来自第三方的负载(例如Helm以及其它与
Kubernetes紧密相关的方案)将能够同时顺畅运行在内部Mesos集群与谷歌云环境当中。Kubernetes-Mesos是目前第一套拥有兼容
性保障的第三方平台(或者用Kubernetes的说法,‘云供应方案’)。目前能够实现这种兼容性表现的其它云供应方案全部由谷歌公司负责提
供:Google Container Engine、Google Compute Engine以及Vagrant开发环境。感兴趣的朋友可以点击此处查看官方提供的Kubernetes解决方案清单。
  
  我们接下来的重要举措在于让DCOS Kubernetes软件包获得同样的生产兼容性水平。另外两项需要解决的难题则是为每套容器提供SSL以及IP支持能力。大家可以点击此处与此处分别了解项目的当前已知问题以及下一步重要发展规划。
  
前瞻方向
  随着一步步推进Kubernetes-Mesos的发展,我们最终将实现以下几项目标:
  

  •   利用Mesosphere的DCOS将Kubernetes部署流程难度控制在最低水平。
  •   与部署在谷歌基础设施或者其它平台上的Kubernetes实现全面兼容。
  •   利用动态分区以共享同一套底层服务器,从而提升集群资源利用率并同其它DCOS服务实现同地协作。
  
  以下命令解释了在DCOS集群之上运行Kubernetes在易用性方面的突出优势:
  
$ dcos package install kubernetes  
  一旦Kubernetes-Mesos框架启动完成并开始运行,用户就能够通过下列命令部署工作负载(例如Nginx Web服务器):
  
$ dcos kubectl create -f nginx-pod.yml  
pods/nginx
  
$ dcos kubectl get pods
  
NAME       READY       STATUS       RESTARTS       AGE
  
nginx      1/1         Running      0              1m
  
  就是这么简单!每个pod、复制控制器乃至服务都能够立即对当前可用资源加以利用,并以无缝化方式同Marathon任务、Spark任务、Cassandra数据库或者其它任何DCOS服务进行资源共享。
  
  需要注意的是,由于目前Kubernetes-Mesos在Multiverse库当中仍然处于alpha测试阶段,因此大家必须要在安装之前将repo以打包源文件的形式通过DCOS命令行进行添加:
  
$ dcos config prepend package.sources \  
https://github.com/mesosphere/multiverse/archive/version-1.x.zip
  
$ dcos package update
0.7.0版本中的新鲜内容
  下面再来看最新发布版本中的具体细节。与上一次发布的v1.0.6-v0.6.7版本相比,此次新版本在代
码库方面做出了大量变更。单看Kubernetes当中的Mesos组件(这里暂不考虑从v1.0到v1.1的上游变化),面向Kubernetes库的
Mesos相关提交条目就超过50项。
  简而言之,Kubernetes-Mesos已经获得了显著进展——而我们对此深感自豪!
  
面向DCOS的KUBECTL子命令
  在早期版本当中,Kubernetes-Mesos要求用户以手动方式从GitHub的发布页面下载并安装kubectl二进制文件。除此之外,~/.kube/config文件还必须以手动方式创建并指向对应的DCOS集群。
  而自从v0.6.7以来,我们就对此做出了改进,这一成效自然也在v0.7.0-v1.1.1-alpha中得到了继承:
  
$ dcos kubectl get pods  
  以上代码所示为DCOS命令行中的kubectl子命令。在首次运行这一命令时,其会自动从已经安装的Kubernetes中下载合适的kubectl二进制文件并在用户的操作系统上进行安装。在此之后,其会立即执行指定的命令。
  
  就是这么简单!
  
ETCD-MESOS
  今年十月,我们曾经公布过etcd-mesos的首个版本。易于安装的特性外加可用性出色的正确源使得
Kubernetes在DCOS或者Mesos成为了一款引人注目的明星产品。而目前它已经能够在不造成任何信息丢失的前提下实现核心组件重启(无论是有
意为之还是意外造成)。这一特性再加上Marathon对于Kubernetes核心组件生命周期的管理能力,意味着Kubernetes在DCOS之上
已经具备极为突出的可用性水平(能够在预期或者意外的服务停机情况下继续运作)。
  
  如果运行有Kubernetes核心组件的节点发生故障,Marathon会注意到这一状况并在其它位置对其进行重启。与此同时,如果核心组件报
告任何非正常或者无法实现等反馈,Marathon也会在新容器内对其进行重启。由于etcd集群拥有如此出色的可用性,重启之后的Kubernetes
组件将能够轻松对自身数据加以恢复,也就是在几秒钟之内完成下线到重新上线这一过程。
  
  因此,为了实现持久性与可用性,我们强烈建议大家安装etcd-mesos并将Kubernetes DCOS服务与etcd-mesos集群相对接:
  
$ dcos install etcd  
  这时,etcd-mesos集群可能会需要一小段时间进行部署。一旦开始运行,etcd的运行状态即可通过检查/service/etcd端点或者DCOS Marathon界面的方式为大家所掌握。
  
  接下来,Kubernetes必须通过配置以使用该etcd-mesos集群:
  
$ cat >/tmp/options.json 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151248-1-1.html 上篇帖子: Kubernetes多节点环境(Fedora Ansible) 下篇帖子: kubernetes-1.0.3集群安装部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表