本快速入门将引导您完成部署 Speech-to-Text On-Prem API 之前必须完成的一系列操作。如需详细了解在安装和设置过程中公开的可配置 API 参数,请参阅 API 配置页面。
- 购买方案。
- 将所需的 Identity Access Management (IAM) 角色分配给服务账号。
- 安装所需的工具
- 创建 Kubernetes 集群。
- 通过命令行预配置 API(可选 - 仅适用于 CLI 安装)。
- 为 gRPC 负载均衡安装 Istio(可选)。
设置结算功能
在 Google Cloud Platform 解决方案页面上,点击购买方案。此操作应由结算账号管理员完成。如需进行验证,您可以从 Google Cloud Platform 控制台左侧导航栏转到结算 -> 账号管理,然后勾选右侧“角色/主账号”。此操作只需执行一次。
所需 IAM 角色
在信息中心中找到 Google Cloud Platform 项目下拉菜单:
在弹出的窗口中,您可以选择现有的 Google Cloud Platform 项目或创建一个新项目。选择您希望与 Speech-to-Text On-Prem 关联的项目后,转到左上角的汉堡图标,然后选择 IAM 和管理 --> IAM 以查看与该项目关联的服务账号列表。
将下列角色分配给属于将在安装过程中使用的 Google Cloud Platform 项目的服务账号。它们可以分配给单个服务账号或多个单独的账号,但所有账号都必须属于同一项目。要修改服务账号权限,请点击服务账号名称右侧的铅笔图标。您还可以通过点击 Google Cloud Platform 控制台中 IAM 页面顶部的 + 添加按钮来创建新的服务账号。
所需 IAM 角色:
- 项目查看者
- Billing Account Administrator(购买方案时需要此角色,部署时不需要此角色)
- Kubernetes Engine Admin(部署到 GKE 时)
- Kubernetes Engine Cluster Admin(部署到 Anthos 时)
所需工具
- 安装 Google Cloud CLI。
- 安装 kubectl。
创建一个 Kubernetes 集群
确保您运行的是 GKE 或 Anthos 集群。Kubernetes 集群在 Google Cloud Platform 上可用。如果您已有集群,则可以选中集群名称最左侧的复选框,以便从出现的列表中选取一个集群:
如果您没有任何现有集群,则系统会提示您创建一个。确保集群的参数与下表中推荐的参数匹配(默认参数不足以满足集群的需要)。记录集群的名称和位置,以及集群部署到的 Google Cloud Platform 项目的名称。
针对集群设置的基本建议:
- 发布版本:常规版。
- 节点池大小应等于或大于 $REPLICAS。
- 节点机器类型:e2-standard-4(4 个 vCPU、16 GB 内存)或更高版本。
- 启用自动扩缩功能
- 如果您需要 gRpc 负载均衡,请启用 Istio(可选)。
- 如果您要将指标导出到 Stackdriver,请启用 Kubernetes Engine Monitoring(可选)。
为 gRPC 负载均衡安装 Istio(可选)
为了扩缩 Speech-to-Text On-Prem,我们依靠与 gRPC 兼容的 L7 负载均衡器。虽然有多个选项可供选择,我们在此处提供了 Istio 示例配置。请注意,默认的 Kubernetes 服务 L3 负载均衡策略不足以满足要求。您可以按照 Google Cloud 官方指南或 Istio 官方页面来安装 Istio。如果您还想要导出指标,请按照第 1 步和第 2 步(在下面的“配置 Kubernetes 集群”部分)操作,然后运行以下命令:
kubectl get deployment/istio-pilot -n istio-system \
&& kubectl set env deployment/istio-pilot -n istio-system PILOT_HTTP10=1 \
|| kubectl set env deployment/istiod -n istio-system PILOT_HTTP10=1
借助 PILOT_HTTP10=1
标志,我们的应用可以发出 HTTP 1.0 请求。这对于允许应用使用 Stackdriver 进行身份验证(通过 Google Cloud Platform 元数据服务器以便发布遥测数据至关重要。
通过命令行预配置 API(可选)
如果您打算执行基于 CLI 的安装,请按照本部分中的说明操作。
配置您的环境
配置您的 Kubernetes 集群
设置 PROJECT 和 NAMESPACE 环境变量。PROJECT 是集群部署到的 Google Cloud Platform 项目的 ID。NAMESPACE 是您将在下面的第 3 步中创建的新命名空间的名称。您可以为 NAMESPACE 输入任意值,但“speech”是安全的默认值。
export PROJECT=<my-project-id> export CLUSTER_NAME=<name of the cluster> export LOCATION=<location of the cluster> export NAMESPACE=<new name for NAMESPACE>
提取集群的凭据:
gcloud container clusters get-credentials $CLUSTER_NAME --project $PROJECT --zone $LOCATION
创建应用将要部署到的命名空间,并将其分配给您在上述第 1 步中创建的 NAMESPACE 名称:
kubectl create namespace ${NAMESPACE:?}
安装应用 CRD,必须有应用 CRD 才能使用 Google Cloud Platform Marketplace 应用:
kubectl apply -f "https://raw.githubusercontent.com/GoogleCloudPlatform/marketplace-k8s-app-tools/master/crd/app-crd.yaml"
创建报告 Secret。应用会使用此值将使用情况报告回给 Google,并在日后的结算中使用。在解决方案页面上的“通过命令行部署”标签页下,只需按照说明 1 和 2 即可生成和部署许可报告 Secret。
后续步骤
了解如何部署 Speech-to-Text On-Prem API。