学习 Azure Kubernetes 服务 – 第二天 – 在本地 Kubernetes 集群上部署 ASP.NET Core 应用程序
介绍
本文是我们尝试学习和实践 Azure Kubernetes 服务的三个系列文章的延续。在上一篇文章中,我们创建了一个 ASP.NET Core 应用程序并使用 Docker 将其容器化。我们创建了应用程序的本地映像并在本地进行了测试。在本文中,我们将该映像部署到本地 Kubernetes 集群。
论文
在本文中,我们将演示如何使用 Docker 和 Azure Kubernetes 服务协调整个 ASP.NET Core 应用程序的部署和扩展。整篇文章将分为以下三个部分。
- 学习 Azure Kubernetes 服务 – 第一天:使用 Docker 容器化 ASP.NET Core 应用程序
- 学习 Azure Kubernetes 服务 – 第二天:在本地 Kubernetes 集群上部署 ASP.NET Core 应用程序
- 学习 Azure Kubernetes 服务 – 第三天:将 ASP.NET Core 应用程序部署到 Azure Kubernetes 服务
必备条件
在我们开始之前,有一些先决条件需要处理。与 Azure 帐户一起,确保在开发计算机上安装以下内容。
- 适用于 Windows 的 Git。
- .Net Core 2.1 或更高版本。
- Azure CLI
- 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 或容器,服务正在对请求进行负载平衡。
声明式方法
现在需要一个部署清单文件,即一个 YAML 文件。应用程序的根目录下已经有一个 YAML 文件 (aksdeploy.yml)。打开它。
文件有两个部分,第一个创建部署,另一个将其公开为服务。在文件中进行更改,如下图所示。
命令kubectl create -f .\aksdeploy.yml创建部署和服务。
使用kubectl get svc检查服务的状态并启动浏览器以连接到服务。
因此,使用这种方法也再次成功部署。
再次删除部署和服务,但这次是通过指定文件名。
结论
本文是了解如何容器化 ASP.NET 应用程序并将其部署到本地 Kubernetes 的端到端文章。在下一篇文章中,我们将探讨 Azure 容器注册表 (ACR) 以及如何将映像部署到 Azure 上的 Azure Kubernetes 服务。敬请期待!
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!