广告

用K8S解决容器的混乱(下)

  • 浏览(976)
  • 评论(0)
  • 译者:k8s

Kubernetes编排


Kubernetes(K8S)是一个开源容器编排系统,它使用期望状态理念来运行所有的应用程序容器。Kubernetes是由Google创建的,旨在集合工程师们在过去10年中构建自己容器编排系统(Brog)所获得的经验。Kubernetes不是这个系统的端口或转换。相反,它本意是尝鲜,开始就想避免错误并分享经验。它从与RedHat、CoreOS、IBM、Mesosphere和Microsoft的合作中受益匪浅。

Kubernetes有很多组件,下面探讨一些最为重要的。

容器

容器是Kubernetes中的“亚原子”组件,这意味着你不会只运行一个容器,因为它们必须在一个称为pod的控制结构中运行。但是你可以用与在Docker中一样的方式,来基于Dockerfiles运行Docker映像。我经常用Makefiles在Docker中运行一个容器来进行开发,然后将它启动到Kubernetes中进行生产。

Pod

Pod是Kubernetes的“原子”单位。Kubernetes的其他组件启动一个或多个pod,或将一个或多个pod连接到网络。Pod由一个或多个容器组成。在同一个pod中运行的容器共享磁盘、本地主机、安全上下文和一些其他属性。

部署

部署是运行一个或多个pod的控制结构。Pod本身不具有期望状态的概念。部署通过创建副本来管理pod组的期望状态。例如,如果你需要三个这样的pod,总有三个pods运行。部署还管理pod的更新。

服务

服务将临时pod连接到需要长时间运行的内部或外部进程,例如API端点或MySQL主机。假设你有三个pod运行Web服务器容器,并且需要一种方法将请求从公共Internet路由到容器,你可以通过设置一个使用负载均衡器将请求从公共IP地址路由到其中一个容器的服务来实现。给pods一个“Web服务器”的标签,然后在服务定义中说:“服务使用任何标签为Web服务器的容器的端口80”。 

Kubernetes将使用公共负载均衡器在所选容器之间划分流量。对于只想要暴露给Kubernetes应用程序其他部分(例如数据库服务器)的主机,也可以私下进行此操作。

总结


总而言之,要在Kubernetes上提供一个简单的Web前端,你将:

  • 配置Docker映像
  • 配置引用该映像的部署
  • 运行部署以根据该映像启动一组pod副本集
  • 配置引用pod的服务
  • 使用公共负载均衡器运行服务

Kubernetes并非解决上述问题的唯一解决方案。 Docker Swarm、Amazon Container Service和Mesosphere也是可选的方案。但值得强调的是,Kubernetes有一个活跃的开源贡献者社区、强大的架构以及在许多商业云上运行的能力,此外,它运行在裸机上。

编译:Jonathan Zhang
作者:claire jin
来源:https://opensource.com/life/16/9/containing-container-chaos-kubernetes

K8S技术社区当前有两大技术推广平台,K8S技术社区官方网站(www.k8s.cn)和K8S技术社区微信公众平台(kubernetescn),我们欢迎广大K8S技术同好们关注支持,也希望集合K8S技术极客进群交流(筒子们后台留言微信号!),有任何建议或问题都可以随时与我们取得沟通(admin@k8s.cn),感谢支持!

 


  • 分享到:
  • icon
  • icon
  • icon
  • icon
箭头