说明
Laravel是开发PHP应用程序的优秀框架。无论您是需要构建新想法的原型,开发MVP(最小可行产品)还是发布成熟的企业系统,Laravel都可以促进所有开发任务和工作流程。
如何处理部署应用程序是一个很有选择性的问题。Vagrant非常适合搭建类似于远程服务器的本地环境。但是,在生产环境中,您很可能需要的不仅仅是一个Web主机和一个数据库。您可能会针对多个要求提供单独的服务。您还需要有适当的机制来确保应用程序始终在线运行,并且服务器可以有效地均衡负载。
在本文中,我将解释如何在Kubernetes上搭建一个简单的Laravel应用程序的环境。
Kubernetes是什么?为什么使用它?
Kubernetes是一款由Google发起的开源系统,目的在于提高集群环境下管理容器化应用的效率。有些人将其称为容器编排平台,而Kubernetes并非唯一的此类平台。不过,相比其它对手,其享誉已盛,且知名度仍在不断提高;更别说你一旦习惯上它,就会发现它真的十分易用。
如果你依然好奇为何有人能够愉快地和Kubernetes玩耍,答案就是——简单。Kubernetes能够让部署、管理多个项目所需的大量集群变得更加容易。
将Laravel应用部署到Minikube
正如我之前提到的,我将会在本文展示如何部署一个简单、无状态的Laravel应用到Kubernetes。我将详细说明此过程中涉及到的步骤,同时向大家解释为何需要执行某项操作。此外,我还将展示如何快速横向扩展应用,并使用IngressController使其能够通过特定域名或IP访问。
你可以在多个云平台上面运行Kubernetes,例如GoogleCloudEngine和AmazonWebServices。在这个例子中,你会使用Minikube运行你的程序,Minikube是一个让你在本地更容易运行Kubernetes的工具。
与Vagrant类似,Minikube仅仅是一个包含了Kubernetes运行平台和Docker的虚拟机。如果使用真正的Kubernetes的话,你需要使用Docker部署你的应用,同时你需要将运行平台扩展到三个节点。
应用
我已经准备了一个简单的Laravel程序,你可以从GitHub克隆下来。它只是一个全新的Laravel安装程序。因此,你可以使用本例中的演示程序,也可以自己创建一个新的Laravel程序。如果使用本例中的演示程序,请按照下面的命令将其克隆到项目目录里面。
cd/to/your/working/directorygitclonegit
github.