学习 Azure Kubernetes 服务 – 第二天 – 在本地 Kubernetes 集群上部署 ASP.NET Core 应用程序

作者 : 慕源网 本文共1661个字,预计阅读时间需要5分钟 发布时间: 2021-11-8 共371人阅读

介绍

本文是我们尝试学习和实践 Azure Kubernetes 服务的三个系列文章的延续。在一篇文章中,我们创建了一个 ASP.NET Core 应用程序并使用 Docker 将其容器化。我们创建了应用程序的本地映像并在本地进行了测试。在本文中,我们将该映像部署到本地 Kubernetes 集群。

论文

在本文中,我们将演示如何使用 Docker 和 Azure Kubernetes 服务协调整个 ASP.NET Core 应用程序的部署和扩展。整篇文章将分为以下三个部分。

在我们开始之前,有一些先决条件需要处理。与 Azure 帐户一起,确保在开发计算机上安装以下内容。

  1. 适用于 Windows 的 Git。
  2. .Net Core 2.1 或更高版本。
  3. Azure CLI
  4. Azure PowerShell

安装 Azure CLI 后,运行以下命令 (az –version) 以确保 CLI 已启动并正在运行。

部署在本地 Kubernetes 集群上

有两种方法可以在本地 Kubernetes 集群上部署镜像,即在开发人员的机器上运行。确保 Kubernetes 已安装并正在运行。您可以通过kubectl version –short命令查看版本

互动方式

运行 kubectl run 命令。运行 Kubectl,后跟部署名称<aks-deployment>,后跟 –image <ask:local>,然后使用 –port 开关并指定 80,这是我们的容器公开应用程序的端口。–replica 开关指定应用程序需要 3 个副本。

执行命令时,会创建一个部署,其中所需的状态设置为三个副本。

接下来,创建一个副本集以确保始终有应用程序的三个副本在运行。

调度器在工作节点上调度 pod 部署,它命令工作节点上运行的 Docker 引擎拉取镜像,然后在 pod 中运行。

部署应用程序后,创建一个服务来公开此部署。要创建服务,请运行 kubectl expose 命令并使用类型作为 NodePort。NodePort 类型的服务在静态端口的每个节点的 IP 上公开服务。运行kubectl 公开部署 aks-deployment –type=NodePort命令。

这将创建服务。通过运行kubectl get service或 svc 来验证它。

要连接到服务,请启动浏览器并连接到本地主机,然后是节点上公开的端口号。

该应用程序已启动并正在运行。现在我打开了三个浏览器,即 Chrome、IE 和 Mozilla,并点击了相同的 URL。让我们看看发生了什么。

我们看到容器主机名发生了变化。那是因为在服务器后面有三个 Pod 或容器,服务正在对请求进行负载平衡。

声明式方法

还有另一种方法称为声明式方法来部署应用程序。通过使用 kubectl delete 命令删除它们来清理部署和服务。执行kubectl delete deployment aks-deployment并同样删除服务。

现在需要一个部署清单文件,即一个 YAML 文件。应用程序的根目录下已经有一个 YAML 文件 (aksdeploy.yml)。打开它。

文件有两个部分,第一个创建部署,另一个将其公开为服务。在文件中进行更改,如下图所示。

命令kubectl create -f .\aksdeploy.yml创建部署和服务。

使用kubectl get svc检查服务的状态并启动浏览器以连接到服务。

因此,使用这种方法也再次成功部署。

再次删除部署和服务,但这次是通过指定文件名。

结论

本文是了解如何容器化 ASP.NET 应用程序并将其部署到本地 Kubernetes 的端到端文章。在下一篇文章中,我们将探讨 Azure 容器注册表 (ACR) 以及如何将映像部署到 Azure 上的 Azure Kubernetes 服务。敬请期待!


慕源网 » 学习 Azure Kubernetes 服务 – 第二天 – 在本地 Kubernetes 集群上部署 ASP.NET Core 应用程序

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录