本主题介绍如何在 GKE on AWS 上创建工作负载并在内部将其公开给您的集群。
准备工作
在开始使用 GKE on AWS 之前,请确保您已执行以下任务:
- 完成前提条件。
- 安装管理服务。
- 创建用户集群。
- 在 anthos-aws目录中,使用anthos-gke将上下文切换到用户集群。cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME 
您可以使用 kubectl 或 Google Cloud 控制台(如果您已向 Connect 进行身份验证)来执行这些步骤。
如果您使用的是 Google Cloud 控制台,请跳至启动 NGINX Deployment。
如需连接到 GKE on AWS 资源,请执行以下步骤。选择您是拥有现有 AWS VPC(或者与 VPC 的直接连接)还是在创建管理服务时创建了专用 VPC。
现有 VPC
如果您拥有与现有 VPC 的直接连接或 VPN 连接,请省略本主题的命令中的行 env HTTP_PROXY=http://localhost:8118。
专用 VPC
如果您在专用 VPC 中创建管理服务,则 GKE on AWS 会在公共子网中添加一个堡垒主机。
如需连接到您的管理服务,请执行以下步骤:
- 切换到您的 GKE on AWS 配置所在的目录。 您在安装管理服务时创建了此目录。 - cd anthos-aws 
- 要打开隧道,请运行 - bastion-tunnel.sh脚本。隧道会转发到- localhost:8118。- 如需打开堡垒主机的隧道,请运行以下命令: - ./bastion-tunnel.sh -N- 来自 SSH 隧道的消息会显示在此窗口中。准备好关闭连接后,请使用 Control+C 或关闭窗口来停止该进程。 
- 打开新终端并切换到您的 - anthos-aws目录。- cd anthos-aws 
- 检查您是否能够使用 - kubectl连接到集群。- env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info- 输出包括管理服务 API 服务器的网址。 
启动 NGINX Deployment
在本部分中,您将创建一个名为 nginx-1 的 NGINX 网络服务器的 Deployment。
kubectl
- 使用 - kubectl create创建 Deployment。- env HTTPS_PROXY=http://localhost:8118 \ kubectl create deployment --image nginx nginx-1
- 使用 - kubectl获取 Deployment 的状态。记下 Pod 的- NAME。- env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
控制台
如需使用 Google Cloud 控制台启动 NGINX Deployment,请执行以下步骤:
- 访问Google Cloud 控制台中的 GKE 工作负载菜单。 
- 点击部署。 
- 在修改容器下,选择现有容器映像,以选择 Container Registry 中提供的容器映像。使用您要使用的容器映像及其版本填充映像路径。在本快速入门中,请使用 - nginx:latest。
- 点击完成,然后点击继续。您将看到出现配置屏幕。 
- 您可以更改 Deployment 的应用名称和 Kubernetes 命名空间。在本快速入门中,您可以使用应用名称 - nginx-1和命名空间- default
- 在集群下拉菜单中,选择您的用户集群。默认情况下,您的第一个用户集群名为 - cluster-0。
- 点击部署。GKE on AWS 会启动您的 NGINX Deployment。系统会显示 Deployment 详情屏幕。 
公开您的 pod
本部分介绍如何执行以下操作之一:
- 在集群内部公开 Deployment,并通过 - kubectl port-forward确认 Deployment。
- 从 Google Cloud 控制台将 Deployment 公开给节点池安全群组允许的地址。 
kubectl
- 使用 - kubectl expose将 Deployment 上的端口 80 公开给集群。- env HTTPS_PROXY=http://localhost:8118 \ kubectl expose deployment nginx-1 --port=80- 您现在可以从集群内部访问 Deployment。 
- 使用 - kubectl port-forward将 Deployment 上的端口- 80转发到本地机器上的端口- 8080。- env HTTPS_PROXY=http://localhost:8118 \ kubectl port-forward deployment/nginx-1 8080:80
- 使用 - curl或网络浏览器连接到- http://localhost:8080。系统会显示默认的 NGINX 网页。- curl http://localhost:8080
控制台
- 访问 Google Cloud 控制台中的 GKE 工作负载菜单。 
- 在部署详情屏幕中,点击公开。此时会显示公开部署屏幕。 
- 在端口映射部分,保留默认端口 ( - 80),然后点击完成。
- 对于 Service 类型,选择负载平衡器。如需详细了解其他选项,请参阅 Kubernetes 文档中的发布 Service (ServiceTypes)。 
- 点击公开。此时将显示 Service 详情屏幕。GKE on AWS 会为 Service 创建传统弹性负载均衡器。 
- 点击外部端点链接。如果负载均衡器已准备就绪,则会显示默认的 NGINX 网页。 
在 Google Cloud 控制台中查看 Deployment
如果您的集群已连接到 Google Cloud 控制台,则您可以在“GKE 工作负载”页面中查看 Deployment。要查看您的工作负载,请执行以下步骤:
- 在浏览器中,访问 Google Kubernetes Engine“工作负载”页面。 - 访问 Google Kubernetes Engine“工作负载”页面 - 系统会显示工作负载列表。 
- 点击工作负载的名称 - nginx-1。系统会显示 Deployment 详情屏幕。
- 在此屏幕中,您可以获取有关 Deployment 的详细信息、查看和修改 YAML 配置,以及执行其他 Kubernetes 操作。 
如需详细了解此页面提供的选项,请参阅 GKE 文档中的部署无状态应用。
清理
如需删除 NGINX Deployment,请使用 kubectl delete 或 Google Cloud 控制台。
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
控制台
- 访问 Google Cloud 控制台中的“Service 和 Ingress”页面菜单。 
- 找到您的 NGINX Service,然后点击其名称。默认情况下,名称为 - nginx-1-service。此时将显示 Service 详情屏幕。
- 点击 删除,并确认您要删除 Service。GKE on AWS 会删除负载均衡器。 
- 访问 Google Kubernetes Engine“工作负载”页面。 - 访问 Google Kubernetes Engine“工作负载”页面 - 系统会显示工作负载列表。 
- 点击工作负载的名称 - nginx-1。系统会显示 Deployment 详情屏幕。
- 点击 删除,然后确认您要删除 Deployment。GKE on AWS 会删除 Deployment。 
后续步骤
使用以下任一 Service 创建内部负载均衡器或外部负载均衡器:
您可以将其他类型的 Kubernetes 工作负载与 GKE on AWS 搭配使用。如需详细了解如何部署工作负载,请参阅 GKE 文档。