在现代的 Web 应用开发中,使用容器技术来部署应用已经成为了一种趋势。Kubernetes 是目前最受欢迎的容器编排工具之一,而 Helm 则是 Kubernetes 中最流行的包管理工具之一。在本文中,我们将介绍如何使用 Helm 来部署 Express.js 应用。
准备工作
在开始之前,你需要先安装好以下工具:
另外,你还需要一个 Express.js 应用程序的代码,并将其打包成 Docker 镜像。如果你还没有一个 Express.js 应用程序,可以使用以下示例代码:
----- ------- - ------------------ ----- --- - --------- ----- ---- - ---- ------------ ----- ---- -- - --------------- -------- -- ---------------- -- -- - -------------------- --- --------- -- -------------------------- --
在代码所在的目录下,创建一个名为 Dockerfile
的文件,并将以下内容复制到文件中:
---- ------- ------- ---- ---- ------------- -- --- --- ------- ---- - - ------ ---- --- - ------ ------- -
然后使用以下命令将应用程序打包成 Docker 镜像:
------ ----- -- --------------- -
创建 Helm Chart
Helm 使用 Chart 来描述 Kubernetes 中的应用程序。Chart 包含了应用程序的所有配置信息,以及 Kubernetes 上下文中需要的资源清单。在创建 Chart 之前,你需要先了解以下几个概念:
values.yaml
: Chart 的默认配置文件,定义了 Chart 的默认配置参数。templates/
: 包含了 Kubernetes 资源清单的模板文件,可以使用 Go 模板语言来动态生成资源清单。Chart.yaml
: Chart 的元数据,包含了 Chart 的名称、版本、描述等信息。
在代码所在的目录下,创建一个名为 my-express-chart
的目录,并在其中创建以下文件:
values.yaml
------ ----------- --------------- ---- ------ ----------- ------------ -------- ----- --------- ----- ---- -------- -------- ----- ------------ -- ----- - ------ - -------------------
templates/deployment.yaml
----------- ------- ----- ---------- --------- ----- -- ------- --------------------------- - -- ------- ---- -- ------- ----------------------- - -- ----- --------- -- -------------------- -- --------- ------------ ---- -- ------- ----------------------- - -- --------- --------- ------- ---- -- ------- ----------------------- - -- ----- ----------- - ----- -- ----------- -- ------ --- ------------------------ ----- ----------------- --- ---------------- -- ------------------------ -- ------ - ----- ---- -------------- ---- --------- ---
templates/service.yaml
----------- -- ----- ------- --------- ----- -- ------- --------------------------- - -- ------- ---- -- ------- ----------------------- - -- ----- ----- -- -------------------- -- ------ - ----- ---- ----- -- -------------------- -- ----------- ---- --------- --- --------- ---- -- ------- ----------------------- - --
Chart.yaml
----------- -- ----- ---------------- ------------ - ---- ----- --- ---------- -------- ----- ----------- -----
安装 Chart
在安装 Chart 之前,你需要先将 Chart 打包成一个 tar 包:
---- ------- -----------------
然后使用以下命令将 Chart 安装到 Kubernetes 集群中:
---- ------- ---------- --------------------------
这个命令将会创建一个名为 my-express
的 Helm Release,并在 Kubernetes 集群中部署一个名为 my-express-my-express-chart
的 Deployment 和一个名为 my-express-my-express-chart
的 Service。
验证部署
使用以下命令查看部署的状态:
------- --- --- -- --------------
你应该能够看到以下输出:
---- ----- ------ -------- --- ------------------------------------------------ --- ------- - -- ---- ---- ---------- ----------- ------- --- ----------------------------------- --------- ------------- ------ -------- -- ---- ----- ---------- --------- --- ------------------------------------------- --- - - -- ---- ------- ------- ----- --- ------------------------------------------------------ - - - --
其中 pod/my-express-my-express-chart-5f5b5c998d-8j9jz
表示部署的 Pod 的名称,service/my-express-my-express-chart
表示部署的 Service 的名称,deployment.apps/my-express-my-express-chart
表示部署的 Deployment 的名称。
使用以下命令测试应用程序是否正常运行:
------- ------------ ------------------------------- ---------
然后在浏览器中访问 http://localhost:3000,你应该能够看到以下输出:
----- ------
总结
本文介绍了如何使用 Helm 在 Kubernetes 中部署 Express.js 应用程序。通过使用 Helm,我们可以轻松地管理和部署应用程序,同时也可以避免手动创建和管理 Kubernetes 资源的繁琐工作。希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/662ce18dd3423812e4a76d23