应用、副本和容器

什么是应用

应用是脉冲云部署管理中最核心的资源,所有管理都是围绕着应用开展的。应用,是指你希望运行在服务器端的一个个程序,每一个应用有着独立的职责和功能。我们将不同功能的应用有机组织在一起完成项目部署。

一个部署环境下可以建立多个应用,比如 MySQL + PHP + Nginx。

每个应用都有一个名称,名称必须为小写,并以字母开头,比如 mysql。

应用之间可以通过彼此的名称互相访问,比如 PHP 连接 MYSQL时,只需要指定数据的主机名为 mysql,而不需要指定IP地址。

应用对应的是 Kubernetes 中的 Deployment / DaemonSet。

什么是应用副本

同一个应用,可以运行多个副本,比如我们有三个应用: MongoDB + Nodejs + Nginx,但是将 Nodejs 应用启动10个副本,那么在服务器端,就会将同样的Nodejs 程序运行10份。

允许多副本运行应用,是为了使得系统计算能力能够横向扩展,承受更多流量,多个副本间的流量是自动进行负载均衡的。同时,多副本运行能有效提高系统的高可用性。

应用副本对应的是 Kubernetes 中的 Pod。

应用副本的负载均衡

每一个应用副本运行时都会被分配一个IP,多副本运行应用,下游请求时,只需要指定应用名,不需要指定IP,系统自动会进行负载均衡,不需要其他的额外处理,比如下游的nginx 连接上游 Nodejs 时,只需要设置:

location /sockets/ {
  proxy_pass http://nodejs;
  # ...
}

应用和容器的关系

脉冲云所有应用都是运行在Docker容器中的,但应用不直接等同于容器,脉冲云的一个应用副本可能是由多个容器组成,即,一个应用对应多个副本,每个副本都对应多个容器。

一个应用副本中的多个容器使用同一个网络栈,即,同一个应用副本下的多个容器的IP是一样的,就像是运行在同一个电脑上的多个程序,他们之间可以通过 localhost127.0.0.1 互相访问。

当前脉冲云界面上只能为应用添加一个容器,但是开放API数据接口中允许多个容器。

results matching ""

    No results matching ""