快速入门

本主题介绍如何在 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 会在公共子网中添加一个堡垒主机。

如需连接到您的管理服务,请执行以下步骤:

  1. 切换到您的 GKE on AWS 配置所在的目录。 您在安装管理服务时创建了此目录。

    cd anthos-aws

  2. 要打开隧道,请运行 bastion-tunnel.sh 脚本。隧道会转发到 localhost:8118

    如需打开堡垒主机的隧道,请运行以下命令:

    ./bastion-tunnel.sh -N
    

    来自 SSH 隧道的消息会显示在此窗口中。准备好关闭连接后,请使用 Control+C 或关闭窗口来停止该进程。

  3. 打开新终端并切换到您的 anthos-aws 目录。

    cd anthos-aws
  4. 检查您是否能够使用 kubectl 连接到集群。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    输出包括管理服务 API 服务器的网址。

启动 NGINX Deployment

在本部分中,您将创建一个名为 nginx-1 的 NGINX 网络服务器的 Deployment

kubectl

  1. 使用 kubectl create 创建 Deployment。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl create deployment --image nginx nginx-1
    
  2. 使用 kubectl 获取 Deployment 的状态。记下 Pod 的 NAME

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl get deployment
    

控制台

如需使用 Google Cloud 控制台启动 NGINX Deployment,请执行以下步骤:

  1. 访问 Google Cloud 控制台中的“GKE 工作负载”菜单。

    访问“工作负载”菜单

  2. 点击部署

  3. 修改容器下,选择现有容器映像,以选择 Container Registry 中提供的容器映像。使用您要使用的容器映像及其版本填充映像路径。在本快速入门中,请使用 nginx:latest

  4. 点击完成,然后点击继续。您将看到出现配置屏幕。

  5. 您可以更改 Deployment 的应用名称和 Kubernetes 命名空间。在本快速入门中,您可以使用应用名称 nginx-1 和命名空间 default

  6. 集群下拉菜单中,选择您的用户集群。默认情况下,您的第一个用户集群名为 cluster-0

  7. 点击部署。GKE on AWS 会启动您的 NGINX Deployment。系统会显示 Deployment 详情屏幕。

公开您的 pod

本部分介绍如何执行以下操作之一:

  • 在集群内部公开 Deployment,并通过 kubectl port-forward 确认 Deployment。

  • 从 Google Cloud Console 将部署公开给节点池安全组允许的地址。

kubectl

  1. 使用 kubectl expose 将 Deployment 上的端口 80 公开给集群。

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl expose deployment nginx-1 --port=80
    

    您现在可以从集群内部访问 Deployment。

  2. 使用 kubectl port-forward 将 Deployment 上的端口 80 转发到本地机器上的端口 8080

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl port-forward deployment/nginx-1 8080:80
    
  3. 使用 curl 或网络浏览器连接到 http://localhost:8080。系统会显示默认的 NGINX 网页。

    curl http://localhost:8080
    

控制台

  1. 访问 Google Cloud 控制台中的“GKE 工作负载”菜单。

    访问“工作负载”菜单

  2. 部署详情屏幕中,点击公开。此时会显示公开部署屏幕。

  3. 端口映射部分,保留默认端口 (80),然后点击完成

  4. 对于 Service 类型,选择负载平衡器。如需详细了解其他选项,请参阅 Kubernetes 文档中的发布 Service (ServiceTypes)

  5. 点击公开。此时将显示 Service 详情屏幕。GKE on AWS 会为 Service 创建传统弹性负载均衡器

  6. 点击外部端点链接。如果负载平衡器已准备就绪,则会显示默认的 NGINX 网页。

在 Google Cloud Console 上查看部署

如果您的集群已连接到 Google Cloud Console,则您可以在“GKE 工作负载”页面中查看部署。要查看您的工作负载,请执行以下步骤:

  1. 在浏览器中,访问 Google Kubernetes Engine“工作负载”页面

    访问 Google Kubernetes Engine“工作负载”页面

    系统会显示工作负载列表。

  2. 点击工作负载的名称 nginx-1。系统会显示 Deployment 详情屏幕。

  3. 在此屏幕中,您可以获取有关 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

控制台

  1. 访问 Google Cloud Console 中的“Service 和 Ingress”页面菜单。

    访问“Service 和 Ingress”页面

  2. 找到您的 NGINX Service,然后点击其名称。默认情况下,名称为 nginx-1-service。此时将显示 Service 详情屏幕。

  3. 点击 删除,并确认您要删除 Service。GKE on AWS 会删除负载均衡器。

  4. 访问 Google Kubernetes Engine“工作负载”页面

    访问 Google Kubernetes Engine“工作负载”页面

    系统会显示工作负载列表。

  5. 点击工作负载的名称 nginx-1。系统会显示 Deployment 详情屏幕。

  6. 点击 删除,然后确认您要删除 Deployment。GKE on AWS 会删除 Deployment。

后续步骤

使用以下任一 Service 创建内部负载平衡器或外部负载平衡器:

您可以将其他类型的 Kubernetes 工作负载与 GKE on AWS 搭配使用。如需详细了解如何部署工作负载,请参阅 GKE 文档。