检查点
Creating a Kubernetes Engine cluster
/ 25
Create a new Deployment - hello-server
/ 25
Create a Kubernetes Service
/ 25
Clean up: Delete the cluster
/ 25
Google Kubernetes Engine:Qwik Start
GSP100
概览
Google Kubernetes Engine (GKE) 提供了一个托管式环境,您可以使用 Google 基础设施在其中部署、管理和扩缩容器化应用。GKE 环境由多个机器(具体来讲,就是 Compute Engine 实例)组成,这些机器一起组合成容器集群。
在本实验中,您可以使用 GKE 亲身体验如何创建容器并部署应用。
目标
在本实验中,您将学习如何完成以下操作:
- 创建 GKE 集群
- 向集群部署一个应用
- 删除集群
使用 Google Kubernetes Engine 编排集群
Google Kubernetes Engine (GKE) 集群由 Kubernetes 开源集群管理系统提供支持。Kubernetes 为用户提供了与容器集群进行交互的机制。您可以使用 Kubernetes 命令和资源来部署和管理应用、执行管理任务、设置政策,以及监控您部署的工作负载的健康状况。
Kubernetes 借鉴了一些常用 Google 服务背后的设计原理,可以带来同样的好处:自动管理、对应用容器进行监控和活跃性探测、自动扩缩、滚动更新等。当您在容器集群上运行应用时,所用的技术凝聚了 Google 十余年来在容器中运行生产工作负载的丰富经验。
Google Cloud 上的 Kubernetes
运行 GKE 集群时,您还可以获享 Google Cloud 提供的高级集群管理功能所带来的好处,其中包括:
- 针对 Compute Engine 实例提供的负载均衡功能
- 节点池,可用于在集群中指定节点子集以提高灵活性
- 自动扩缩集群的节点实例数量
- 自动升级集群的节点软件
- 节点自动修复,以保持节点的正常运行和可用性
- 利用 Cloud Monitoring 进行日志记录和监控,让您可以清楚了解自己集群的状况
现在您已对 Kubernetes 有了基本的了解,接下来您将用不到 30 分钟的时间,学习如何使用 GKE 部署容器化应用。请按以下步骤设置实验环境。
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
- 完成实验的时间 - 请注意,实验开始后无法暂停。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:
- 打开 Google Cloud 控制台按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示登录页面。
提示:请将这些标签页安排在不同的窗口中,并将它们并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。 -
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}} 您也可以在实验详细信息面板中找到用户名。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}} 您也可以在实验详细信息面板中找到密码。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本次实验中使用您自己的 Google Cloud 账号可能会产生额外费用。 -
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
- 点击 Google Cloud 控制台顶部的激活 Cloud Shell 。
如果您连接成功,即表示您已通过身份验证,且当前项目会被设为您的 PROJECT_ID 环境变量所指的项目。输出内容中有一行说明了此会话的 PROJECT_ID:
gcloud
是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
-
点击授权。
-
现在,输出的内容应如下所示:
输出:
- (可选)您可以通过此命令列出项目 ID:
输出:
输出示例:
gcloud
, in Google Cloud, refer to the gcloud CLI overview guide.
任务 1. 设置默认计算可用区
计算可用区是您的集群及其资源所在的大致区域位置。例如 us-central1-a
为 us-central1
区域中的一个可用区。
在 Cloud Shell 会话中,运行以下命令。
-
设置默认计算区域:
gcloud config set compute/region {{{project_0.startup_script.project_region|"REGION"}}} 预期输出:
Updated property [compute/region]. -
设置默认计算可用区:
gcloud config set compute/zone {{{project_0.startup_script.project_zone|"ZONE"}}} 预期输出:
Updated property [compute/zone].
任务 2. 创建 GKE 集群
一个集群由至少一台集群主服务器及多个称为节点的工作器机器组成。节点是运行 Kubernetes 进程的 Compute Engine 虚拟机 (VM) 实例,只有运行这些进程的虚拟机实例才能加入到集群中。
运行以下命令:
-
创建集群:
gcloud container clusters create --machine-type=e2-medium --zone={{{project_0.startup_script.project_zone|ZONE}}} lab-cluster
如果输出结果中出现任何警告,请忽略。集群创建过程可能需要几分钟才能完成。
预期输出:
点击检查我的进度以验证是否完成了以下目标。
任务 3:获取用于集群的身份验证凭据
创建集群后,您需要有身份验证凭据才能与其交互。
-
向集群进行身份验证:
gcloud container clusters get-credentials lab-cluster 预期输出:
Fetching cluster endpoint and auth data. kubeconfig entry generated for my-cluster.
任务 4. 向集群部署一个应用
现在,您可以向集群部署一个容器化应用。在本实验中,您将在集群中运行 hello-app
。
GKE 使用 Kubernetes 对象创建和管理集群的资源。Kubernetes 提供了 Deployment 对象,用以部署 Web 服务器等无状态应用。Service 对象则用于定义从互联网访问您的应用时需要遵循的规则和负载均衡机制。
-
运行下面的
kubectl create
命令,以基于hello-app
容器映像创建一个新的 Deployment 对象hello-server
:kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0 预期输出:
deployment.apps/hello-server created 此 Kubernetes 命令会创建一个代表
hello-server
的 Deployment 对象。在本例中,--image
指定了要部署的容器映像。该命令会从 Container Registry 存储桶中拉取示例映像。gcr.io/google-samples/hello-app:1.0
指定了要拉取的特定映像版本。如果未指定版本,则使用最新版本。点击检查我的进度以验证是否完成了以下目标。
创建新的 Deployment 对象:hello-server -
运行下面的
kubectl expose
命令,以创建一个 Kubernetes Service(即一项将您的应用公开给外部流量的 Kubernetes 资源):kubectl expose deployment hello-server --type=LoadBalancer --port 8080 在此命令中:
-
--port
指定了该容器公开的端口。 -
type="LoadBalancer"
表示为您的容器创建一个 Compute Engine 负载均衡器。
预期输出:
service/hello-server exposed -
-
运行
kubectl get
命令,以检测hello-server
Service:kubectl get service 预期输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-server loadBalancer 10.39.244.36 35.202.234.26 8080:31991/TCP 65s kubernetes ClusterIP 10.39.240.1 433/TCP 5m13s 注意:可能需要一分钟的时间才能生成外部 IP 地址。 如果 EXTERNAL-IP
列的状态为 pending,请再次运行上述命令。 -
打开新的标签页并输入以下地址,将
[EXTERNAL IP]
替换为hello-server
的EXTERNAL-IP
,以在网络浏览器中查看应用。http://[EXTERNAL-IP]:8080 预期输出:浏览器标签页显示消息 Hello, world! 以及版本和主机名。
点击检查我的进度以验证是否完成了以下目标。
创建 Kubernetes Service
任务 5. 删除集群
-
运行以下命令,以删除集群:
gcloud container clusters delete lab-cluster -
出现提示时,请输入 Y 进行确认。
删除集群可能需要几分钟的时间。如需详细了解如何删除 GKE 集群,请参阅 Google Kubernetes Engine (GKE) 文章删除集群。
点击检查我的进度以验证是否完成了以下目标。
删除集群
恭喜!
您刚刚在 Google Kubernetes Engine 中部署了一个容器化应用!在本实验中,您创建了一个 GKE 集群,向该集群部署了一个容器化应用,并删除了该集群。现在,您可以运用这些知识,使用 GKE 部署自己的应用。
后续步骤/了解详情
本实验是 Qwik Starts 系列实验中的一项。通过这些实验,您可以大致体验 Google Cloud 的诸多功能。请在 Google Cloud Skill Boost 目录中搜索“Qwik Starts”(Qwik 快速入门),找到您要尝试的下一项实验!
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
上次更新手册的时间:2024 年 2 月 13 日
上次测试实验的时间:2024 年 1 月 26 日
版权所有 2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。