跳至内容

环境设置

Image

在本页中,我们将讨论如何设置您的环境,并确保启动 UI 前端和 Book Review Service 的节点服务器。

本节的最终交付成果是什么样的?

  • 您在本地机器上有一个运行的 Kubernetes (k8s) 集群,并安装了 Knative。
  • 您已将您的前端应用程序部署为 Kubernetes 部署,并使用端口转发到 localhost:3000
  • 您已将您的 Node.js 应用程序部署为 Kubernetes 部署,并使用端口转发到 localhost:8080

我们将按照上述顺序完成每个要求。

克隆存储库

Next Step Image

git clone https://github.com/knative/docs.git
故障排除

克隆您的存储库时遇到问题?查看 此处 以获取帮助。

警告

重要提示:请花一些时间阅读 免责声明,然后再转到下一页。

文件结构

Image

示例应用程序的代码位于 docs/code-samples/eventing/bookstore-sample-app 中。

bookstore-sample-app 文件夹下,有两个文件夹

  • /solution:此文件夹包含所有 yaml 文件以及您需要的代码。如果您遇到困难,请查看它。

  • /start:此文件夹包含您入门所需的文件。按照教程自己保存所有配置文件!

Image

提示

Kuack 建议您从 /start 开始,在学习教程时编写所有配置文件,并在遇到困难时查看解决方案。

Image

在运行任何命令之前,始终 cd 回根目录,即 /start

教程中的所有命令都是假设您位于 /start 目录中编写的。

快捷方式

Image

运行 docs/code-samples/eventing/bookstore-sample-app/start/setup.sh 将自动完成本节中的所有任务。

警告

但是,如果您不熟悉该过程,我们建议您查看以下步骤。

说明

任务 1:设置运行的 Kubernetes 集群,并安装 Knative

Image

提示

我们建议您使用 kn quickstart 插件来安装 Knative。

请按照 此处 的说明启动您的集群并安装 Knative!

验证

在继续之前,您应该看到 knative-eventingknative-serving 命名空间中的 Pod 正在运行。

NAMESPACE          NAME                                      READY   STATUS    RESTARTS   AGE
knative-eventing   eventing-controller-7576f555d5-7c2p2      1/1     Running   0          4m50s
knative-eventing   eventing-webhook-5874bb8445-cqcn9         1/1     Running   0          4m50s
knative-eventing   imc-controller-8c5d5ddb5-m249l            1/1     Running   0          4m49s
knative-eventing   imc-dispatcher-76d9f7464b-dphd6           1/1     Running   0          4m49s
knative-eventing   mt-broker-controller-8d8f8d48f-rvlcv      1/1     Running   0          4m48s
knative-eventing   mt-broker-filter-85c457f879-dvhnj         1/1     Running   0          4m48s
knative-eventing   mt-broker-ingress-5688f4cd68-nm8cc        1/1     Running   0          4m48s
knative-serving    activator-55d856fccd-g5qpw                1/1     Running   0          4m53s
knative-serving    autoscaler-5fb49c64c7-hrjng               1/1     Running   0          4m53s
knative-serving    controller-ddbb9d4f-khttq                 1/1     Running   0          4m53s
knative-serving    net-kourier-controller-68d89f78d5-hw8r6   1/1     Running   0          4m52s
knative-serving    webhook-85b9744fc5-6w9sg                  1/1     Running   0          4m53s
kourier-system     3scale-kourier-gateway-dbc5b88f5-7g29n    1/1     Running   0          4m52s
kube-system        coredns-5dd5756b68-49xsj                  1/1     Running   0          12m
kube-system        etcd-minikube                             1/1     Running   0          12m
kube-system        kube-apiserver-minikube                   1/1     Running   0          12m
kube-system        kube-controller-manager-minikube          1/1     Running   0          12m
kube-system        kube-proxy-tqcvx                          1/1     Running   0          12m
kube-system        kube-scheduler-minikube                   1/1     Running   0          12m
kube-system        storage-provisioner                       1/1     Running   0          12m

适用于 Minikube 用户的额外步骤:

Image

注意!如果您没有使用 Knative Quick Start,请手动设置隧道以连接到类型为 LoadBalancer 的服务。

运行以下命令并保持终端打开

minikube tunnel
验证

如果没有错误消息,则表示您已成功设置隧道。

任务 2:运行 Bookstore Web 应用程序

Image

Next.js 前端应用程序位于 docs/code-samples/eventing/bookstore-sample-app/start/frontend 文件夹中。

确保您的本地机器上的端口 3000 未被其他应用程序使用。

部署前端应用程序

您可以 在本地构建镜像,也可以使用我们预先构建的镜像。如果您使用的是预先构建的镜像,则可以继续执行下一步。

准备就绪后,运行以下命令来部署前端应用程序

kubectl apply -f frontend/config/100-front-end-deployment.yaml

这将创建部署并将其暴露为类型为 LoadBalancer 的服务,以接收外部流量

deployment.apps/bookstore-frontend created
service/bookstore-frontend-svc created
验证

运行以下命令检查 Pod 是否正在运行

kubectl get pods

您将看到您的前端 Pod 正在运行。

NAME                                  READY   STATUS    RESTARTS   AGE
bookstore-frontend-7b879ffb78-9bln6   1/1     Running   0          4m37s

端口转发(在条件下为可选)

Image

您可能需要设置端口转发才能从您的本地机器访问应用程序。

通过运行以下命令检查是否需要端口转发

kubectl get services

您将看到以下控制台输出

NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
bookstore-frontend-svc   LoadBalancer   10.99.187.173   <pending>     3000:31600/TCP   27m
kubernetes               ClusterIP      10.96.0.1       <none>        443/TCP          39m

注意

如果您的前端服务的 EXTERNAL-IP127.0.0.1,则不需要端口转发。

如果需要端口转发,请运行以下命令

kubectl port-forward svc/bookstore-frontend-svc 3000:3000

您应该看到以下输出

Forwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000

建立端口转发后,不要关闭终端。 启动一个新的终端来运行下一个命令。

验证

在您的浏览器中访问 https://127.0.0.1:3000。UI 页面应该会出现!

Image

任务 3:运行 Book Review Service

Image

Node.js 服务器位于 node-server 文件夹中。

警告

确保您的本地机器上的端口 8080 未被其他应用程序使用。

部署 Book Review Service:Node.js 服务器

您可以 在本地构建镜像,也可以使用我们预先构建的镜像。如果您使用的是预先构建的镜像,则可以继续执行下一步。

准备就绪后,运行以下命令来部署 Node.js 服务器

kubectl apply -f node-server/config/100-deployment.yaml

此命令将拉取镜像并将其部署到您的集群作为部署。它还将将其暴露为 LoadBalancer 以接收外部流量。

deployment.apps/node-server created
service/node-server-svc created
验证

运行以下命令检查 Pod 是否正在运行

kubectl get pods

您将看到您的 Node.js 服务器 (node-server) Pod 正在运行。

NAME                                  READY   STATUS    RESTARTS   AGE
bookstore-frontend-7b879ffb78-9bln6   1/1     Running   0          39m
node-server-68bf98cdf4-skjmh          1/1     Running   0          38m

端口转发(在条件下为可选)

Image

您可能需要设置端口转发才能从您的本地机器访问应用程序。

通过运行以下命令检查是否需要端口转发

kubectl get services
您将看到以下控制台输出
NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
bookstore-frontend-svc   LoadBalancer   10.99.187.173   <pending>     3000:31600/TCP   73m
kubernetes               ClusterIP      10.96.0.1       <none>        443/TCP          85m
node-server-svc          LoadBalancer   10.101.90.35    <pending>     80:31792/TCP     73m

注意

如果您的 Node.js 服务的 EXTERNAL-IP127.0.0.1,则不需要端口转发。如果您无法访问页面 localhost:8080,则可以尝试设置端口转发。

如果需要端口转发,请打开一个新的终端并运行

kubectl port-forward svc/node-server-svc 8080:80
您应该看到以下输出

Forwarding from 127.0.0.1:8080 > 8000
Forwarding from [::1]:8080 > 8000

建立端口转发后,不要关闭终端。 启动一个新的终端来运行下一个命令。

验证

在您的浏览器中访问 https://127.0.0.1:8080。Node.js 服务应该已启动并运行。

在您的前端页面中,您应该看到状态变为绿色并显示“已连接到节点服务器”。

Image

故障排除

如果您在设置过程中遇到任何问题,请参阅文档中的故障排除部分或检查 Kubernetes Pod 的日志以获取更多详细信息。

故障排除

要检查日志,请使用以下命令

kubectl logs <pod-name>

<pod-name> 替换为您要检查的 Pod 的名称。

下一步

Image

您已成功设置了安装了 Knative 的集群,并运行了前端应用程序和节点服务器。您已准备好开始学习。您的旅程从这里开始。

转到第 1 课 - 将评论发送到代理

我们使用分析和 Cookie 来了解网站流量。为此目的,您的网站使用信息将与 Google 共享。了解更多。