你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure Stack Edge Pro GPU 的启用了 Azure Arc 的 Kubernetes 群集上部署具有 Redis 的 PHP Guestbook
无状态应用程序
适用于:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
本文介绍并展示如何使用 Kubernetes 和 Azure Arc 生成和部署简单的多层 Web 应用。本示例包括以下组成部分:
- 一个单实例 Redis 主机,用于存储
guestbook
条目 - 多个复制的 Redis 实例,用于提供读取服务
- 多个 Web 前端实例
部署是在 Azure Stack Edge Pro 设备上启用了 Azure Arc 的 Kubernetes 群集上使用 GitOps 完成的。
此过程适用于已阅读 Azure Stack Edge Pro 设备上的 Kubernetes 工作负载一文且熟悉什么是已启用 Azure Arc 的 Kubernetes(预览版)中的概念的用户。
注意
本文包含对术语“从属”的引用,这是 Microsoft 不再使用的术语。 在从软件中删除该术语后,我们会将其从本文中删除。
先决条件
在部署无状态应用程序之前,请确保设备和将用于访问该设备的客户端上已满足以下先决条件:
对于设备
你有单节点 Azure Stack Edge Pro 设备的登录凭据。
你已在设备上的现有 Kubernetes 群集上启用了 Azure Arc,并在 Azure 门户中具有相应的 Azure Arc 资源。 有关详细步骤,请参阅在 Azure Stack Edge Pro 设备上启用 Azure Arc。
对于访问设备的客户端
你有一个将用于访问 Azure Stack Edge Pro 设备的 Windows 客户端系统。
客户端运行 Windows PowerShell 5.0 或更高版本。 若要下载最新版 Windows PowerShell,请转到安装 Windows PowerShell。
也可使用任何其他客户端,只要安装了受支持的操作系统即可。 本文介绍使用 Windows 客户端时的过程。
你已完成在 Azure Stack Edge Pro 设备上访问 Kubernetes 群集中所述的过程。 你已:
在客户端上安装
kubectl
。确保
kubectl
客户端版本与 Azure Stack Edge Pro 设备上运行的 Kubernetes 主版本相差不超过一个版本。- 使用
kubectl version
检查在客户端上运行的 kubectl 的版本。 记下完整版本。 - 在 Azure Stack Edge Pro 设备的本地 UI 中,转到“概述”,并记下 Kubernetes 软件编号。
- 从支持的 Kubernetes 版本中提供的映射中验证这两个版本的兼容性。
- 使用
你有一个可用于运行 Azure Arc 部署的 GitOps 配置。 在本示例中,你将使用以下
yaml
文件在 Azure Stack Edge Pro 设备上进行部署。frontend-deployment.yaml
frontend-service.yaml
redis-master-deployment.yaml
redis-master-service.yaml
redis-slave-deployment.yaml
redis-slave-service.yaml
部署配置
按照以下步骤配置 Azure Arc 资源,以通过 Azure 门户部署 GitOps 配置:
在 Azure 门户中,转到在设备上的 Kubernetes 群集上启用 Azure Arc 时创建的 Azure Arc 资源。
转到“配置”并选择“+ 添加配置”。
指定 Flux 版本 1 扩展。
在“添加 GitOps 配置”中,为字段输入适当的值,然后选择“添加”。
参数 说明 配置名称 配置资源的名称。 运算符实例名称 用于标识特定配置的运算符的实例名称。 名称是一个长度不超过 253 个字符的字符串,只能包含小写形式、字母数字字符、连字符和句点。 运算符命名空间 设置为 demotestguestbook 以与部署 yaml
中指定的命名空间一致。
字段定义安装运算符的命名空间。 名称是一个长度不超过 253 个字符的字符串,只能包含小写形式、字母数字字符、连字符和句点。存储库 URL
Git 存储库的路径,采用http://github.com/username/repo
或git://github.com/username/repo
格式,是 GitOps 配置所在的位置。运算符范围 选择“命名空间”。
此参数定义运算符的安装范围。 选择“命名空间”,在部署 yaml 文件中指定的命名空间中安装运算符。运算符类型 保留默认值。
此参数指定运算符的类型,默认设置为 flux。运算符参数 将其留空。
此参数包含要传递给 flux 运算符的参数。Helm 将此复选框留为未选中状态。
如果你将会执行基于图表的部署,请启用此选项。配置部署开始,“运算符状态”显示为“挂起”。
部署需要几分钟时间。 部署完成后,“运算符状态”显示为“已安装”。
验证部署
通过 GitOps 配置进行部署时,会创建一个 demotestguestbook
命名空间,该命名空间在位于 Git 存储库中的部署 yaml
文件中定义。
应用 GitOps 配置后,连接到设备的 PowerShell 接口。
运行以下命令以列出与部署相对应的
demotestguestbook
命名空间中运行的 Pod。kubectl get pods -n <your-namespace>
下面是一个示例输出。
[10.128.44.240]: PS>kubectl get pods -n demotestguestbook NAME READY STATUS RESTARTS AGE aseoperator1-5569658644-cqtb5 1/1 Running 0 91m frontend-6cb7f8bd65-4xb4f 1/1 Running 0 91m frontend-6cb7f8bd65-q9cxj 1/1 Running 0 91m frontend-6cb7f8bd65-xpzs6 1/1 Running 0 91m memcached-86bdf9f56b-5l2fq 1/1 Running 0 91m redis-master-7db7f6579f-2z29w 1/1 Running 0 91m redis-slave-7664787fbc-lgr2n 1/1 Running 0 91m redis-slave-7664787fbc-vlvzn 1/1 Running 0 91m [10.128.44.240]: PS>
在此示例中,前端服务被部署为 type:LoadBalancer。 你将需要查找此服务的 IP 地址以查看
guestbook
。 运行以下命令。kubectl get service -n <your-namespace>
[10.128.44.240]: PS>kubectl get service -n demotestguestbook NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.96.79.38 10.128.44.245 80:31238/TCP 85m memcached ClusterIP 10.102.47.75 <none> 11211/TCP 85m redis-master ClusterIP 10.104.32.99 <none> 6379/TCP 85m redis-slave ClusterIP 10.104.215.146 <none> 6379/TCP 85m [10.128.44.240]: PS>
type:LoadBalancer
前端服务有一个外部 IP 地址。 这个 IP 来自你在设备上配置计算网络设置时为外部服务指定的 IP 地址范围。 使用此 IP 地址查看guestbook
,URL 为https://<external-IP-address>
。
删除部署
要删除部署,可以从 Azure 门户中删除配置。 删除配置将删除已创建的对象,包括部署和服务。
- 在 Azure 门户中,转到“Azure Arc 资源”>“配置”。
- 找到要删除的配置。 选择“...”调用上下文菜单,然后选择“删除”。
删除配置可能需要几分钟时间。