kubernetes 必知必会
什么是 kubernetes?
kubernetes 是一个应用编排器,主要用于对容器化的云原生微服务应用进行编排。kubernetes 已经成为部署和管理云原生应用的事实上的标准平台。
kubernetes 组成概览
一个 kubernetes 集群由主节点(master)与工作节点(node)组成。
主节点各服务之间的关系如下图所示。
工作节点各服务之间的关系如下图所示。
kubernetes 应用打包
一个应用想要在 kubernetes 上运行,需要如下几步:
将应用按容器方式打包;
将应用封装到 Pod 中;
通过声明式 manifest 文件部署;
整体结构如下图所示。
声明式模型(declarative model)以及期望状态(desire state)是 kubernetes 中非常核心的概念,声明式模型的工作方式如下:
在 manifest 文件中声明一个应用期望达到的状态;
将 manifest 文件发送到 API server;
kubernetes 将 manifest 存储到集群存储,并作为应用的期望状态;
kubernetes 在集群中实现上述期望状态;
kubernetes 启动循环监控,保证应用的当前状态不会与期望状态出现差异;
Pod
在 docker 中,调度的原子单位是容器;而在 kubernetes 中,调度的原子单位是 Pod。kubernetes 的确支持运行容器化应用,但是用户无法直接在 kubernetes 中运行一个容器,容器必须并且总是需要在 pod 中才能运行。
在 kubernetes 中将包含了一组容器的事物称作 Pod。
kubernetes 中最小的调度单元是 Pod。如下图所示,如果读者需要扩容或缩容自己的应用,可以通过添加或删除 Pod 来实现,千万不要选择通过向一个已经存在的 Pod 中增加更多的容器的方式来完成扩容,多容器 Pod 仅适用于那种两个的确是不同容器但又需要共享资源的场景。
实战:创建第一个 Pod
参考链接
《kubernetes 修炼手册》
版权声明: 本文为 InfoQ 作者【itschenxiang】的原创文章。
原文链接:【http://xie.infoq.cn/article/217284d89ebd0fdcb00ee1b21】。文章转载请联系作者。
评论