测试您的 React.js 部署

先决条件

在开始之前,请确保您已完成以下操作

Kubernetes 新手?
访问 Kubernetes 基础教程,熟悉集群、Pod、部署和服务的工作原理。


概述

本节将指导您使用 Docker Desktop 内置的 Kubernetes 在本地部署容器化的 React.js 应用程序。在本地 Kubernetes 集群中运行您的应用程序可以密切模拟真实的生产环境,使您能够在将其推广到预发布或生产环境之前,自信地测试、验证和调试您的工作负载。


创建 Kubernetes YAML 文件

请按照以下步骤定义部署配置

  1. 在项目根目录下,创建一个名为:`reactjs-sample-kubernetes.yaml` 的新文件。

  2. 在您的 IDE 或首选文本编辑器中打开该文件。

  3. 添加以下配置,并务必将 {DOCKER_USERNAME}{DOCKERHUB_PROJECT_NAME} 替换为您在之前的 使用 GitHub Actions 自动化构建 中实际的 Docker Hub 用户名和仓库名称。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: reactjs-sample
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reactjs-sample
  template:
    metadata:
      labels:
        app: reactjs-sample
    spec:
      containers:
        - name: reactjs-container
          image: {DOCKER_USERNAME}/{DOCKERHUB_PROJECT_NAME}:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name:  reactjs-sample-service
  namespace: default
spec:
  type: NodePort
  selector:
    app:  reactjs-sample
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30001

此清单定义了两个主要的 Kubernetes 资源,由 --- 分隔

  • 部署 在 Pod 中部署您的 React.js 应用程序的单个副本。该 Pod 使用由您的 GitHub Actions CI/CD 工作流构建并推送的 Docker 镜像
    (请参阅使用 GitHub Actions 自动化构建)。
    容器监听端口 8080,该端口通常由 Nginx 用于提供生产环境的 React 应用程序。

  • 服务 (NodePort) 将已部署的 Pod 暴露给您的本地机器。
    它将您的主机上的端口 30001 的流量转发到容器内的端口 8080
    这使您可以在浏览器中通过 https://:30001 访问应用程序。

注意

要了解更多关于 Kubernetes 对象的信息,请参阅Kubernetes 文档


部署并检查您的应用程序

请按照以下步骤将您的容器化 React.js 应用程序部署到本地 Kubernetes 集群并验证其是否正确运行。

步骤 1. 应用 Kubernetes 配置

在您的终端中,导航到包含 reactjs-sample-kubernetes.yaml 文件的目录,然后使用以下命令部署资源:

  $ kubectl apply -f reactjs-sample-kubernetes.yaml

如果一切配置正确,您将看到部署和服务都已创建的确认信息

  deployment.apps/reactjs-sample created
  service/reactjs-sample-service created

此输出表示 Deployment 和 Service 都已成功创建并正在您的本地集群中运行。

步骤 2. 检查部署状态

运行以下命令检查部署状态

  $ kubectl get deployments

您应该会看到类似以下的输出:

  NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
  reactjs-sample       1/1     1            1           14s

这确认您的 Pod 已启动并运行,并且有一个可用的副本。

步骤 3. 验证服务暴露

检查 NodePort 服务是否将您的应用程序暴露给本地机器

$ kubectl get services

您应该会看到类似下面的内容:

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
reactjs-sample-service   NodePort    10.100.244.65    <none>        8080:30001/TCP   1m

此输出确认您的应用程序可通过 NodePort 在端口 30001 上访问。

步骤 4. 在浏览器中访问您的应用程序

打开浏览器并导航到 https://:30001

您应该会看到由本地 Kubernetes 集群提供的生产就绪的 React.js 示例应用程序正在运行。

步骤 5. 清理 Kubernetes 资源

测试完成后,您可以使用以下命令删除部署和服务

  $ kubectl delete -f reactjs-sample-kubernetes.yaml

预期输出

  deployment.apps "reactjs-sample" deleted
  service "reactjs-sample-service" deleted

这确保您的集群保持干净并为下一次部署做好准备。


摘要

在本节中,您学习了如何使用 Docker Desktop 将 React.js 应用程序部署到本地 Kubernetes 集群。此设置允许您在将其部署到云端之前,在类似于生产环境的环境中测试和调试容器化应用程序。

你完成了什么

  • 为您的 React.js 应用程序创建了一个 Kubernetes Deployment 和 NodePort Service
  • 使用 kubectl apply 在本地部署应用程序
  • 验证了应用程序正在运行并可通过 https://:30001 访问
  • 测试后清理了您的 Kubernetes 资源

探索官方参考资料和最佳实践以提升您的 Kubernetes 部署工作流程

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.