GKE on AWS 用户集群托管您的 Kubernetes 工作负载。本主题介绍如何创建基本的用户集群。如果您想进一步配置用户集群,请参阅创建自定义用户集群。
您可以使用 AWSCluster
和 AWSNodePool
自定义资源预配 GKE on AWS 用户集群。
准备工作
如需创建用户集群,您首先需要安装管理服务。
如需连接到 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 服务器的网址。
选择控制层面实例大小
GKE on AWS 不支持调整控制层面实例的大小。在创建用户集群之前,请选择控制层面的实例大小。控制层面大小取决于集群中的节点数量。下表包含针对各种集群大小建议的控制层面实例大小。
集群大小(节点数) | 控制层面实例类型 |
---|---|
1 – 10 | m5.large |
11 – 100 | m5.xlarge |
101 – 200 | m5.2xlarge |
创建用户集群
在此示例中,您将使用 terraform
生成配置以创建基本集群。然后,使用 kubectl apply
应用配置。
打开您的终端,必要时连接到堡垒主机。
将目录切换到您在安装管理服务时创建的文件夹。
使用 Terraform 生成用于配置示例集群的清单并将其保存到 YAML 文件。 选择您的 Terraform 版本,然后运行以下命令:
Terraform 0.12、0.13
terraform output cluster_example > cluster-0.yaml
Terraform 0.14.3+
terraform output -raw cluster_example > cluster-0.yaml
如需详细了解此文件的内容,请参阅
AWSCluster
和AWSNodePool
文档。在文本编辑器中打开文件并进行所需的修改。默认情况下,GKE on AWS 会在
anthos-gke.yaml
中指定的每个可用性区域中创建节点池。您可以更改节点池的大小和数量以匹配所需的集群。您还可以对配置进行其他更改。例如,您可以更改 GKE on AWS 节点的实例类型;您还可以在控制平面节点上启用日志记录和监控。将文件应用到您的管理服务。
env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
创建 kubeconfig
在用户集群启动时,您可以为新用户集群创建 kubeconfig
上下文。您将使用该上下文向用户或管理集群进行身份验证。
使用
anthos-gke aws clusters get-credentials
为~/.kube/config
中的用户集群生成kubeconfig
。env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
将 CLUSTER_NAME 替换为您的集群的名称。例如
cluster-0
。使用
kubectl
向新用户集群进行身份验证。env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
如果您的集群已准备就绪,则输出内容会包含集群中 Kubernetes 组件的网址。
查看集群的状态
如果您应用 AWSCluster
或 AWSNodePool
,则管理服务会预配 AWS 资源。
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
如需列出集群,请使用
kubectl get AWSClusters
。env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSClusters
输出包括每个集群的名称、状态、存在时间、版本和端点。
例如,以下输出仅包含一个名为
cluster-0
的AWSCluster
:NAME STATE AGE VERSION ENDPOINT cluster-0 Provisioning 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
查看集群事件
如需查看用户集群中的近期 Kubernetes 事件,请使用 kubectl get events
。
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
运行
kubectl get events
。env HTTPS_PROXY=http://localhost:8118 \ kubectl get events
输出包括与您的管理服务相关的信息、警告和错误。
删除用户集群
如需删除用户集群,请执行以下步骤:
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
使用
kubectl delete
删除包含用户集群的清单。env HTTPS_PROXY=http://localhost:8118 \ kubectl delete -f CLUSTER_FILE
将 CLUSTER_FILE 替换为包含 AWScluster 和 AWSNodePool 对象的清单的名称。例如
cluster-0.yaml
。
删除所有用户集群
要删除所有用户集群,请执行以下步骤:
在
anthos-aws
目录中,使用anthos-gke
将上下文切换到管理服务。cd anthos-aws anthos-gke aws management get-credentials
使用
kubectl delete
从管理服务中删除 AWSNodePool 和 AWSCluster。env HTTPS_PROXY=http://localhost:8118 \ kubectl delete AWSNodePool --all env HTTPS_PROXY=http://localhost:8118 \ kubectl delete AWSCluster --all
如需了解详情,请参阅卸载 GKE on AWS。
后续步骤
在 GKE on AWS 上启动您的第一个工作负载。
使用 GKE Identity Service 配置您的身份提供方。
使用不同的设置创建自定义用户集群。
设置 AWS 网络以对工作负载进行负载平衡。
阅读 AWSCluster 和 AWSNodePool 自定义资源定义的规范。