本主题介绍如何在 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
将 CLUSTER_NAME 替换为用户集群名称。
您可以使用 kubectl
或 Google Cloud Console(如果您已向 Connect 进行身份验证)来执行这些步骤。如果您使用是 Google Cloud Console,请跳至启动 NGINX 部署。
如需连接到 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 Console 将部署公开给节点池安全组允许的地址。
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 Console 上查看部署
如果您的集群已连接到 Google Cloud Console,则您可以在“GKE 工作负载”页面中查看部署。要查看您的工作负载,请执行以下步骤:
在浏览器中,访问 Google Kubernetes Engine“工作负载”页面。
访问 Google Kubernetes Engine“工作负载”页面
系统会显示工作负载列表。
点击工作负载的名称
nginx-1
。系统会显示 Deployment 详情屏幕。在此屏幕中,您可以获取有关 Deployment 的详细信息、查看和修改 YAML 配置,以及执行其他 Kubernetes 操作。
如需详细了解此页面提供的选项,请参阅 GKE 文档中的部署无状态应用。
清理
如需删除 NGINX Deployment,请使用 kubectl delete
或 Google Cloud Console。
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
控制台
访问 Google Cloud Console 中的“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 文档。