OSC 第 108 高手问答 —— 从 Docker 到 K8s 实践

linuxhitlover 发布于 2016/01/11 17:51
阅读 12K+
收藏 28

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 提问,请直接回帖提问。

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

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


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

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

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