45
回答
OSC 第 108 高手问答 —— 从 Docker 到 K8s 实践
终于搞明白,存储TCO原来是这样算的>>>   

OSCHINA 本期高手问答( 1月12日- 1月18日) 我们请来了 @mycat 吴治辉为大家解答关于 Kubernetes 方面的问题。

吴治辉,@mycat ,拥有超过 15 年的软件研发经验,精通Java编程,专注于电信软件和云计算方面的软件研发,参与过众多与分布式、云计算相关的大型项目的架构设计和编程,具备丰富的大 型项目架构设计经验,是业界少有的具备很强编程能力的S级资深架构师,目前就职于惠普。著有《Kubernetes权威指南——从Docker到 Kubernetes实践全接触》《ZeroC Ice权威指南》

Kubernetes 是由谷歌开源的Docker容器集群管理系统,为容器化的应用提供了资源调度、部署运行、服务发现、扩容、缩容等一整套功能。虽然Kubernetes自诞生至今才1年多,其第一个正式版本Kubernetes 1.0于2015年7月才发布,完全是个新生事物,但其影响力巨大,已经吸引了包括IBM、惠普、微软、红帽、Intel、VMware、CoreOS、 Docker、Mesosphere、Mirantis等在内的众多业界巨头纷纷加入。

为了鼓励踊跃提问,@博文视点 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Kubernetes 权威指南——从 Docker 到 Kubernetes 实践全接触》一书。

样章试读:http://www.oschina.net/doc/25254

购买链接:http://item.jd.com/11847020.html

Kubernetes这个名字起源于古希腊,是舵手的意思,所以它的Logo既像一张渔网,又像一个罗盘。谷歌采用这个名字的一层深意就是:既然Docker把自己定位为驮着集装箱 在大海上自在遨游的鲸鱼,那么谷歌就要以Kubernetes掌舵大航海时代的话语权,“捕获”和“指引”这条鲸鱼按照“主人”设定的路线巡游,确保谷歌倾力打造的新一代容器世界的宏伟蓝图顺利实现。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Kubernetes 相关的方面问题向 @mycat 提问,请直接回帖提问。

举报
叶秀兰
发帖于2年前 45回/10K+阅
共有45个答案 最后回答: 1年前
@mycat :    https://github.com/docker-java/docker-java   这个项目管理docker也比较方便, Kubernetes 有什么优点?
--- 共有 2 条评论 ---
Cosmos7 回复 @mycat : 4个月前 回复
mycatkubernetes的优点,简单总结,就是下一代微服务架构平台,几乎没有入侵性,运维保障高度自动化,让软件团队只关注于服务本身,而分布式系统中哪些与业务无关而又比较难以解决的问题,如大规模部署,资源规划与调度,故障容错与恢复,服务路由与负载均衡,版本升级等基本被平台自动化了,这是很多分布式平台一直以来的目标,但第一次被谷歌实现并且开源, 2年前 回复

@mycat :你好Kubernetes在解决网络通信方面如何做到?还是里docker自身的分配ip吗?


--- 共有 1 条评论 ---
mycatkubernetes本身是要求每个node节点上的pod之间是可以不用NAT映射等非常规手段而能直接IP互通的,它本身并不解决网络互通问题,官方的标配是flannel技术,简单的虚拟二层技术,我们测试对比后,建议Linux直接路由技术,性能最好。此外,pod容器里的IP地址仍然是由docker engine自己分配管理。 2年前 回复
@mycat :k8s网络这块目前做的工作还很少,后续网络计划是怎样子的?proxy目前是基于iptables来做,如果我要做纯应用层的(排除iptables带来的移植性问题),怎么做?
--- 共有 3 条评论 ---
Oscarzhaosl回复 @mycat : kubernetes 支持外置的负载均衡器,纯http可以用nginx,http和tcp都有的话,用haproxy比较好 2年前 回复
mycat具体做法,查询并监听service的pod实例变化,本地缓存endpoint ,直接建立与目标pod.的tcp连接,这样实现,甚至可以实现一个新的框架,既可以运行于kubernetes ,也能在普通docker环境里运行,当然前提是docker网络也打通了 2年前 回复
mycat网络部分,kubernetes是计划加强proxy部分的性能,从代码可以看出,其他部分诸如dns等特性也在丰富中,如果当前如果不想用它的proxy来做透明的负载均衡,则可以模仿zeroc ice的做法,客户端里实现路由选择与负载均衡, 2年前 回复
@mycat :你好,比较关注Kubernetes安全方面,有什么样的控制?另外容器namespace方面,容器中的root用户映射成操作系统中的普通用户,这个具体实现过程,请教一下,谢谢!
--- 共有 2 条评论 ---
mycat安全方面,目前有几个大的方向,第一,资源的管控方面,主要依赖API Server的访问限制,官方建议的是各个组件,包括客户端应用,采取双向数字证书认证的方式,来杜绝非法访问,这个过程是很严格的,kubernetes里的每个服务进程都要配置自己的证书。资源管控方面, 2年前 回复
mycat还有配额的管控问题,比如某个命名空间(可以理解为租户)最多能创建的pod数量,服务数量,总共占用的CPU内存等,都可以限制。关于pod即容器的安全,则依赖docker自身,这方面,kubernetes并没有自己的设计或改变。比如pod里的容器,默认也是不允许运行特权指令的 2年前 回复
@mycat :对docker的使用者来说,怎么降低技术难度
--- 共有 1 条评论 ---
mycat如果已经在用docker或者很熟悉docker 则kubernetes几乎无难度,只要理解了它的几个概念,运行机制,以及比docker还少的命令行工具,目前我们开源项目ku8eye,也是想降低难度,包括图形界面一键安装kubernetes集群,图形界面定义服务 2年前 回复

@mycat :我对Docker和Docker compose都有一定了解和使用经验了,想进一步学习Docker的使用,下一步是不是就是学习Mesos和kubernetes这些工具?想问一下Mesos和kubernetes有什么区别?

--- 共有 1 条评论 ---
mycatk8s是docker集群化的最佳选择,mesos还是偏向任务调度,可以看看k8s的战略,一方面openstack即将把k8s变成内建支持的一等公民,与虚机平起平坐。Redhat产品也全面拥抱k8s ;Mesos也迫不及待把k8s搬到自己平台上,都说明一个道理,k8s是当前人气王新技术。 2年前 回复
@mycat :Kubernetes的实际应用例子有哪些呢?与docker相比,它更适合哪些应用场景呢?谢谢
--- 共有 1 条评论 ---
mycat只要你有集群应用,kubernetes都合适,如果一个集群里有多个服务实例要负载均衡,故障转移,它都很合适,另外,集群里有多个相互无关的应用要隔离,用kubernetes的命名空间隔离,也很不错,最差的结果,省了大量运维工作量 2年前 回复
@mycat :请问Kubernetes目前的典型应用案例有哪些(互联网应用),其效果如何?主要是其性能表现。谢谢
--- 共有 1 条评论 ---
mycat实际例子应该不少了,但公开的还不多,我们的一个生成,案例可能最近会在infoQ上分享,请留意。 如果一定要跟docker比,就可以理解为集群与单机系统,虽然不是特别恰当的类比 2年前 回复
顶部