Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Kubernetes在GCP中扩展webapp_Kubernetes_Google Cloud Platform_Google Cloud Storage_Google Kubernetes Engine - Fatal编程技术网

如何使用Kubernetes在GCP中扩展webapp

如何使用Kubernetes在GCP中扩展webapp,kubernetes,google-cloud-platform,google-cloud-storage,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Cloud Storage,Google Kubernetes Engine,我最近开始关注GKE。假设我们有一个基本的web应用程序(后端和前端) 前端通过一个NGINX-LB连接到后端,因此,如果您需要更多的电力,您可以扩展吊舱,LB可以在节点之间分配负载,并且工作正常,因此我的问题是,如果您在容器中拥有DB,会发生什么?当您缩放Kubernetes集群时,它将为每个节点创建一个db,对吗?那样的话会有问题吗?所以说,现在市场上是如何使用它的,我假设你只把后端放在一个容器中,然后使用云提供商的另一个服务来存储数据,这样服务就可以从所有容器中获取请求,并且不会有数据差异

我最近开始关注GKE。假设我们有一个基本的web应用程序(后端和前端)


前端通过一个NGINX-LB连接到后端,因此,如果您需要更多的电力,您可以扩展吊舱,LB可以在节点之间分配负载,并且工作正常,因此我的问题是,如果您在容器中拥有DB,会发生什么?当您缩放Kubernetes集群时,它将为每个节点创建一个db,对吗?那样的话会有问题吗?所以说,现在市场上是如何使用它的,我假设你只把后端放在一个容器中,然后使用云提供商的另一个服务来存储数据,这样服务就可以从所有容器中获取请求,并且不会有数据差异

你已经自己回答了。大多数人在容器中运行前端和后端,并使用(例如谷歌)云SQL、数据存储或BigQuery存储数据

你已经自己回答了。大多数人在容器中运行前端和后端,并使用(例如谷歌)云SQL、数据存储或BigQuery存储数据

大多数后端应用程序都依赖数据库来保存状态。因此,代码是无状态的,可以在不进一步考虑状态或数据的情况下进行缩放

您可以在kubernetes上运行DB。不过有一个很大的“然而”。必须遵守一些规则,因为豆荚是致命的,这需要进一步的管理

来自kubernetes中DB的数据必须始终由POD将连接到的持久磁盘进行备份

此外,并非所有数据库都是kubernetes友好的(例如:MySQL、PostgreSQL),在这些情况下,有必要使用kubernetes操作符来包装数据库

如果将DB容器放入POD中会发生什么情况? 集群中的每个节点将有许多不同的pod同时运行。当您使用Kubernetes DB解决方案时,有必要在pod上放置一个DB容器。将pod与后端容器和DB容器放在一起不是一个好方法

当您缩放Kubernetes群集时,它将为每个节点创建一个db? Kubernetes中的缩放单位是pod,而不是容器。当负载增加时,集群中的节点数量以及该服务的已部署吊舱总数都会增加


有关此主题的更多信息,请参阅。可以找到在Kubernetes上部署DB的指南。

大多数后端应用程序都依赖DB来保存状态。因此,代码是无状态的,可以在不进一步考虑状态或数据的情况下进行缩放

您可以在kubernetes上运行DB。不过有一个很大的“然而”。必须遵守一些规则,因为豆荚是致命的,这需要进一步的管理

来自kubernetes中DB的数据必须始终由POD将连接到的持久磁盘进行备份

此外,并非所有数据库都是kubernetes友好的(例如:MySQL、PostgreSQL),在这些情况下,有必要使用kubernetes操作符来包装数据库

如果将DB容器放入POD中会发生什么情况? 集群中的每个节点将有许多不同的pod同时运行。当您使用Kubernetes DB解决方案时,有必要在pod上放置一个DB容器。将pod与后端容器和DB容器放在一起不是一个好方法

当您缩放Kubernetes群集时,它将为每个节点创建一个db? Kubernetes中的缩放单位是pod,而不是容器。当负载增加时,集群中的节点数量以及该服务的已部署吊舱总数都会增加


有关此主题的更多信息,请参阅。可以找到在Kubernetes上部署DB的指南。

因此,换言之,可以将DB和后端一起放在同一个容器中,但需要额外的配置工作,因此最好使用GCP或云提供商提供的存储服务。有些数据库专为运行到K8S而设计,比如维蒂斯。您也可以只为您的数据库设置一个POD,并根据您的流量使用垂直POD缩放来增加其上允许的资源。在任何情况下,K8做了很多,但不是全部,您必须管理和维护集群/吊舱。查看完全管理的解决方案,并评估它们是否符合您的需要(前两个是云运行,前两个是云SQL)。我已更新了“发生了什么…”中的答案@正如你所说,最好的方法是使用DB产品。因此,换言之,db和后端可以放在同一个容器中,但需要额外的配置工作,因此,如果使用GCP或云提供商提供的存储服务,效果会更好一些。例如,有些数据库设计为运行到K8S,比如Vitess。您也可以只为您的数据库设置一个POD,并根据您的流量使用垂直POD缩放来增加其上允许的资源。在任何情况下,K8做了很多,但不是全部,您必须管理和维护集群/吊舱。查看完全管理的解决方案,并评估它们是否符合您的需要(前两个是云运行,前两个是云SQL)。我已更新了“发生了什么…”中的答案@正如你所说,最好的方法是使用DB产品。这将是简单和足够好。