容器和Kubernetes的应用与开发

  • 时间:
  • 浏览:0

水平扩展:在这里集群里,三台计算机每台运行另一一一另一个容器。 一共有另一一一另一个app server的实例来防止大的负载。

管理一台计算机肯能是另一一一另一个问提了。 管理一大群互相通讯的机器更是错综复杂得多. 感谢发明权家 了像Docker、Kubernetes另另一一一另一个非凡工具的好心人,他们 歌词 现在有了容器另另一一一另一个的简单模型,都在工具将集群管理起来就像一台计算机。 构建可扩展的应用也从没像现在另另一一一另一个那么简单。

累似 于Docker和Rkt另另一一一另一个的工具被开发出来另另一一一另一个使得他们 歌词 能系统化地使用哪些地方地方行态。 哪些地方地方工具提供了打包的功能,将另一一一另一个命名空间打包成另一一一另一个容器,使得他们 歌词 还要很方便的将它搬到另一台机器上运行,没哟意外的它会跟另另一一一另一个完整版一致的办法继续运行,肯能它并都在的隔离行态。 事实上,通常还要很容易的将容器想象为还要完整版独立的运行的小计算机. 肯能哪些地方地方新的工具非常易用,它们渐渐成为并都在流行的构建软件办法。

一台计算机的资源是有限的,或者 一块儿仅能防止有限的数据和运行有限的系统程序运行运行。 当面临增长的负载时(比如更多用户,更大的数据集)另一一一另一个简单的应对办法是垂直扩展,也即是增加更多的防止能力和内存给到这台计算机,或者 放慢你这人 代价就会非常昂贵,或者 并都在扩展的空间也相当有限。 另并都在办法所以 通过增加更多的计算机来水平扩展。 哪些地方地方计算机一块儿就组成了集群。

另一一一另一个pod后边的所有系统程序运行运行跑在同一台机器上,另另一一一另一个防止了累似 挂载磁盘另另一一一另一个的资源共享的问提。 肩上是Kubernetes将pod分配到不同的计算节点也所以 kubernetes node上,他们 歌词 还要给pod肯能node设置处于的条件累似 资源约束、亲和性等。

Kubernetes既是另一一一另一个在集群后边管理和调度系统程序运行运行的框架,也是并都在构建应用的新的思维模型,基于的是pod后边的系统程序运行运行分组和service所提供的服务发现。

另另一一一另一个,他们 歌词 考虑的是哪些地方系统程序运行运行还要在一台机器上一块儿运行。 现在,他们 歌词 考虑将哪些地方系统程序运行运行组构造成哪些地方pod;pod肯能成为并都在优美的办法来对另一一一另一个应用的另一一一另一个功能单元构造模型。他们 歌词 甚至还要直接使用社区构造的pod,直接将他们 歌词 跑起来,累似 日志和监控。

另一一一另一个Kubernetes的service会跟踪集群里并都在特定type的pod的所有实例。 累似 ,他们 歌词 有另一一一另一个ap server service,它会跟踪cluster后边所有的app server的pod。service是另一一一另一个非常简便的抽象;他们 歌词 的应用还要非常快的找到并都在类型服务的所有功能单元或者 将工作整理给他们 歌词 。

另一一一另一个完整版的Kubernetes集群图

计算机肯能系统程序运行运行肯能会在任意的时间点失败肯能不可用或者 整个系统仍然保持工作(架构要考虑失败和恢复)。

Kubernetes:pod所以 新的计算机

Pod被动态分配到节点上。 每并都在pod对应的服务都在服务发现和负载均衡,一块儿也描绘了pod和服务的虚拟网络。

容器中的系统程序运行运行。 在这里,另一一一另一个系统程序运行运行仅仅才能与所在同另一一一另一个容器后边的许多系统程序运行运行和资源交互。

容器和集群管理软件业也影响了他们 歌词 构建应用的办法。 他们 歌词 创造了新的模式和抽象,所以 的肯能性仍在探索中, 累似 , 使用容器来构建可重用的应用组件肯能库肯能也会很有意思。 在Hasura,他们 歌词 正为数据库、搜索、用户管理、文件管理等等创建组件,构建应用就只需将它们快速组装起来。

通过将系统程序运行运行进行划分, 系统程序运行运行员还要有另一一一另一个更加简单的模型来方便理解, 所以 创建命名空间(namespace)的工具也被开发出来了。 系统程序运行运行肯能系统程序运行运行必须都看运行在同另一一一另一个命名空间下的许多系统程序运行运行。 肯能它们寻找文件,那么必须看见硬盘上分配到你这人 命名空间的那一要素。 从安全的深层而言,另一一一另一个命名空间后边的某个系统程序运行运行被黑掉了影响的仅仅也所以 你这人 命名空间而已。

Google 贡献的Kubernetes项目则他们 歌词 歌词 更加接近他们 歌词 让你一台”巨型”计算机的模型。

整个生态以及未来发展

为了能跑在集群上,应用也还要以不同的办法架构。 累似 ,肯能他们 歌词 确认同另一一一另一个系统程序运行运行的两份拷贝还要不还要访问对方的数据就能运行,那么他们 歌词 就能放心的将它的多份拷贝放到去去去不同的计算机上运行。

系统程序运行运行员对于开发跑在一台计算机上的应用很得心应手了。 理想情形下,他们 歌词 让你的是有另一一一另一个工具能将集群后边所有的计算机管理起来,而展现给系统程序运行运行员的就像一台“巨型”的计算机。

在必须一台计算机的另另一一一另一个,必须另一一一另一个ip地址就还要了。 在有多个计算机另另一一一另一个,他们 歌词 还要维护另一一一另一个系统程序运行运行到ip的映射,累似 像etcd另另一一一另一个的分布式数据库。 当另一一一另一个系统程序运行运行在一台机器上启动时,你这人 信息就被加入到数据库中。 肯能系统程序运行运行挂掉肯能机器宕机,也还要将你这人 条目从数据库中删除。

当许多的系统程序运行运行跑在不同的地方时,他们 歌词 还要并都在办法他们 歌词 歌词 互相发现和沟通。他们 歌词 只还要某个系统程序运行运行运行所在的机器ip就还要与你这人 系统程序运行运行通信。

还要有多份拷贝一块儿运行(架构要考虑并发性)。

首先,他们 歌词 还要管理计算机上的资源,比如防止能力和存储。这由于分析他们 歌词 不得不有效地整理和调度系统程序运行运行到不同的计算机上去执行。

Kubernetes做的第一件事情所以 拿走你的所有计算机,或者 还回给你另一一一另一个”巨型”计算机--另一一一另一个Kubernetes的集群。

Kubernetes克隆qq好友好友控制器用来保证任意时间某个pod的一定数量的拷贝在运行。 就像另一一一另一个分布式的init,肯能另一一一另一个pod挂了: 起因肯能是后边的另一一一另一个系统程序运行运行失败了,肯能pod 的依赖挂了,肯能它所在的节点down了; kubernetes会探测到并在另另一一一另一个可用的节点上启动另一一一另一个新的拷贝。

肯能他们 歌词 还要某个特定功能进行扩展,他们 歌词 只还要在集群中多跑哪几条你这人 pod的拷贝。 当硬件缺乏,他们 歌词 就往集群后边增加更多的计算和存储。 通过将资源与它所承载的功能解耦,调度器还要保证所有的可用资源会被尽肯能高效利用。

多个系统程序运行运行一块儿跑在一台计算机上。所有的系统程序运行运行还要自由的互相之间交互,肯能与常规的资源交互。

另一一一另一个Kubernetes的pod指定一组还要运行Docker肯能rkt容器。

另另一一一另一个他们 歌词 描述的是另一一一另一个集群后边不同计算机上跑着不同系统程序运行运行,现在他们 歌词 都看的是Kubernetes集群后边的不同pod里跑着不同系统程序运行运行。

容器还要在集群中的任意一台机器上动态启动和停止(最好是无情形肯能临时的)。

本文转自d1net(转载)

你这人 方向上的另一一一另一个进展是CoreOS的Fleet项目,它的基本思想所以 像一台计算机上的init系统程序运行运行那样延伸做整个集群的init。

容器所以 新的系统程序运行运行。

随便说说容器并都在并那么给他们 歌词 任何许多的工具来构建分布式应用,或者 考虑一下你这人 级别上的抽象能让构建集群的应用方便许多。容器模型所鼓励的假设情形是:

他们 歌词 也还要“亲和性”和办法将相关的系统程序运行运行放到去去去一块儿跑,以便高效利用共享存储;而一块儿“反亲和性”的要求又还要保证对同另一一一另一个资源有竞争性的系统程序运行运行必须运行在同一台机器上。累似 ,肯能他们 歌词 让你将应用服务器的系统程序运行运行跑两份来服务两倍的请求,他们 歌词 肯能希望他们 歌词 跑在集群里两台不同的服务器上。

另一一一另一个Kubernetes集群围绕着pod也所以 容器组构建了另一一一另一个模型. 哪些地方地方pod基于资源和”亲和度”的约束被动态分配到底层节点上。

总的来说,在追求创造更简模型的道路上他们 歌词 肯能前进了一大步。 当今的所有软件本质所以 运行代码,执行功能。 从你这人 深层,他们 歌词 做的所有的事情仅仅是管理哪些地方地方功能:将它们分组,运行它们的多份拷贝,找到并与它们交互,或者 防止失败的情形。 由此推出另一一一另一个逻辑结论, 或许某一天他们 歌词 会有另另一一一另一个另一一一另一个系统,他们 歌词 只还要描述他们 歌词 还要的功能,余下的交给系统按照描述完成即可。 那随便说说是求之不得啊!

他们 歌词 歌词 从计算机开聊。 当计算机启动时,它会运行另一一一另一个叫init的系统程序运行运行,或者 init会启动许多所需的系统程序运行运行:服务器、终端、窗口管理器等。 Init能做几件有趣的事情, 累似 让另一一一另一个系统程序运行运行开机启动, 隔一段时间运行另一一一另一个系统程序运行运行, 还有确保另一一一另一个系统程序运行运行那么失败肯能crash,肯能有就重启它。 正在运行的系统程序运行运行还要都看这台机器上的所有东西: 其它在运行的系统程序运行运行,所有的文件,以及网络。

计算机所以 资源的集合:计算能力、内存、磁盘和网络接口。与之累似 ,另一一一另一个pod还要从底层的资源池中分配一定量的资源. 它也会有买车人的网卡和pod所在的虚拟网络的ip。所以 ,pod所以 新的计算机。