部署应用程序
本文介绍如何在 Kubernetes 群集上部署容器化应用程序。
先决条件
若要开始,请设置 单台计算机 Kubernetes 或 完整的 Kubernetes 群集。
部署示例 Linux 应用程序
步骤 1:更新清单文件
本文使用一个示例应用程序,该应用程序是一个由前端和后端组成的简单投票应用,该应用基于 Microsoft 的 azure-vote-front 映像。 此应用程序的容器映像托管在 Azure 容器注册表 (ACR) 上。 有关部署清单,请参阅 GitHub 存储库包中的 linux-sample.yaml 。 在 YAML 中,我们将标记 nodeSelector
指定为 Linux。
步骤 2:部署应用程序
若要部署应用程序,请使用 kubectl apply 命令。 此命令分析清单文件并创建定义的 Kubernetes 对象。 指定 YAML 清单文件,如以下示例所示:
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
步骤 3:验证 Pod
等待几分钟,让 Pod 处于 运行 状态:
kubectl get pods -o wide
步骤 4:验证服务
若要监视进度,请使用 kubectl get services 命令和 --watch
参数:
kubectl get services
最初, EXTERNAL-IP
服务的 azure-vote-front
显示为 pending
。 当 EXTERNAL-IP
地址从 pending
更改为实际公共 IP 地址时,可以使用分配给服务的 IP 地址。
重要
在单台计算机群集上,如果在未指定 -ServiceIPRangeSize
的情况下部署了 Kubernetes 群集,则不会为工作负荷服务分配 IP,并且没有外部 IP 地址。 在这种情况下,请查找 Linux VM (Get-AksEdgeNodeAddr
) 的 IP 地址:
Get-AksEdgeNodeAddr -NodeType Linux
现在可以将外部端口追加到 VM 的 IP 地址 (例如 192.168.1.12:30432) 。
步骤 5:测试应用程序
若要查看应用程序的实际效果,请打开 Web 浏览器,以转到服务的外部 IP 地址:
如果应用程序未加载,则可能是由于映像注册表存在授权问题。 若要查看容器的状态,请使用 kubectl get pods
命令。 如果无法检索容器映像,请参阅使用来自 Azure Kubernetes 服务 的Azure 容器注册表进行身份验证。
步骤 6:删除应用程序
若要清理,请使用以下命令删除所有资源:
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
将示例 Windows 应用程序部署到群集
此示例基于 Microsoft 的示例映像 ASP.NET 应用程序 运行示例。 请参阅 win-sample.yaml。 YAML 将 nodeSelector
标记指定为 Windows。
步骤 1:通过指定 YAML 清单的名称来部署应用程序
请确保位于 PowerShell 窗口中 YAML 的目录中,然后运行以下命令:
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
步骤 2:验证示例 Pod 是否正在运行
Pod 可能需要一段时间才能达到运行状态,具体取决于 Internet 连接。 ASP.NET 映像很大:
kubectl get pods -o wide
步骤 3:验证示例服务是否正在运行
kubectl get services
由于此示例部署为 NodePort 类型的服务,因此可以检索运行应用程序的 Kubernetes 节点的 IP 地址,然后追加 NodePort 的端口。 使用以下命令获取 Kubernetes 节点的 Get-AksEdgeNodeAddr
IP:
Get-AksEdgeNodeAddr -NodeType Windows
步骤 4:验证正在运行的 Windows 示例
打开 Web 浏览器并找到 NodePort 以访问服务:
步骤 5:清理
若要清理,请使用以下命令删除所有资源:
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
部署自己的应用程序
前面的步骤演示了如何部署示例应用程序。 若要部署自己的应用程序,请执行以下操作:
将应用程序打包到容器映像中,然后将映像上传到Azure 容器注册表或所选容器注册表中。 查看这些步骤以 创建应用程序的容器映像。
AKS Edge Essentials 支持混合 OS 群集。 确保 Pod 在具有相应 OS 的节点上进行计划。 将 添加到
nodeSelector
部署文件。 此选项告知 Kubernetes 在特定操作系统 (OS) 的节点上运行 Pod。 如果群集是单 OS,则可以跳过此步骤;但为了获得最佳做法,请使用节点选择器标记每个部署文件:nodeSelector: "kubernetes.io/os": linux
nodeSelector: "kubernetes.io/os": windows