在此博客中,我将指导您完成在Azure Kubernetes Services(AKS)上托管的Kubernetes平台的kubernetes平台的过程。此外,我还将向您展示如何使用服务缩放和高可用性。
Docker将容器定义为“一个标准的软件单元,可包装代码和所有依赖项,因此应用程序从一个计算环境快速可靠地运行到另一个计算环境“
Docker容器图像是一款轻量级,独立的可执行软件软件包,包括运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。“
我不会进一步深入Docker和容器的概念,并敦促您自己去阅读。
要构建我们的解决方案,我们将需要执行以下操作
- 创建Azure Container注册表(ACR)
- 创建一个Azure Service主体
- 创建Azure Kubernetes集群(AKS)
- 将图像导入Azure容器注册表
- 发布应用程序
- 升级AKS群集
- 缩放AKS群集节点
- 豆荚和缩放它们
- 访问Kubernetes仪表板
|
先决条件:
请在工作站上准备以下先决条件:
Docker Cli.你还必须在本地安装Docker。Docker Desktop for Windows是为运行在Windows 10上而设计的Docker。它是一个原生Windows应用程序,为构建、发布和运行dockerized应用程序提供了易于使用的开发环境。下载该软件并安装到您的系统上。- - - - - -https://hub.docker.com/editions/community/docker-ce-desktop-windows.
笔记:
1.创建Azure Container注册表(ACR)
容器注册表允许您跨所有类型的Azure部署存储和管理容器图像。您从注册表部署Docker映像。首先,我们需要访问我们正在创建的Azure Kubernetes服务(AKS)群集访问的注册表。为此,我们将创建Azure Container注册表(ACR),在那里我们将推送图像进行部署。
- 在Azure门户,选择+创建资源那容器,然后点击集装箱注册表。
- 在“创建容器注册表刀片”上,输入以下内容:
- 注册表名称:“kloudaks01”(选择合适的名称)
- 订阅:选择您的订阅
- 资源组:使用您现有的资源组
- 地点:选择该地区
- 管理员用户:启用
- SKU:标准
- 点击创造。
- 导航到Container注册表,在Azure Portal中查看新创建的ACR帐户。由于这是一个新帐户,您还不会看到任何存储库。我们将在这篇文章的后面创建这些。
|
2.创建Azure服务主体
Azure Kubernetes服务(AKS)需要一个Azure Active Directory服务主体来与Azure api交互。服务主体需要动态管理资源,比如用户定义的路由和第4层Azure负载均衡器。我们将使用PowerShell中的Azure Cli设置服务主体:
- 打开一个PowerShell控制台并运行AZ登录登录您的Azure订阅。这将打开Web浏览器以完成Azure登录过程。
- 在完成创建服务主体的步骤之前,应该确保正确设置默认订阅。
- 要查看当前的订阅,请在“云外壳”窗口中输入:AZ帐户显示
- 要列出所有订阅,请键入:AZ帐户列表
- 要将默认订阅设置为当前选择以外的其他内容,请键入:AZ帐户集-subscription {id}代替{ID}具有所需的订阅ID值。
- 要创建服务主体,请键入:Az AD sp create-for-rbac -skip-assignment
- 这将创建一个没有默认赋值的Azure Service主体。service principal命令将产生一个输出。复制此信息,因为我们将在稍后阶段需要它。
- 将唯一的ACR ID存储为变量:$ Acrid = Az ACR Show -Name Kloudaks01 -Resource-group Infra_core_syd -Query“ID”-Output TSV
- 使用 ”Appid.“从下面的命令中的服务主体创建步骤:AZ角色分配创建-Assignee“appid”-Role Reader -Scope $ acrid
|
3.创建Azure Kubernetes服务(AKS)集群
在此任务中,我们将创建Azure Kubernetes服务群集。
- 从Azure门户,选择+创建资源,容器并选择Kubernetes服务。
- 在基本刀片提供以下信息:
- 订阅:选择所需的订阅
- 资源组:选择相应的资源组
- 名称:Sanakscluster01.
- 区域:选择与资源组相同的区域
- Kubernetes版本:12.5。(选择N-1版本)
- DNS名称前缀:Sanakscluster01.
- 在节点大小下,单击“更改大小”以配置VM大小。搜索并选择“DS2_V2”。
- 将节点计数设置为1
- 点击“下一页:身份验证“
|
通过单击“配置服务”主体“配置服务校长”。使用创建服务主体步骤中保存的输出
- 服务主客户ID:使用服务主体”Appid.“
- 服务主客户秘密:使用服务主体”密码“
- 点击“下一个:网络”。
- 将其余部分留在默认值并选择“查看+创建”。
- 完成最终验证后,单击“创建”。
- 创建一个新的资源组,其中包含群集节点的所有组件。Azure Kubernetes Service Cluster Deployment将开始,您可以监控概述刀片中的进度。在门户网站上列出之前,此过程最多可能需要10分钟。
|
4.将图像导入Azure Container注册表(ACR)
注意:从工作站的PowerShell控制台运行所有Azure CLI命令
- 要在ACR中执行推入或拉入操作,我们需要登录到容器注册表。确保您仍然通过PowerShell连接到azure CLI,否则使用AZ登录再次登录Azure订阅。
- 现在登录到我们在步骤1中创建的容器注册表:AZ ACR登录-Name kloudaks01
- 登录到容器注册表后,我们现在将登录AKS群集:AZ AKS Get-Credentials -Name SanaksCluster01 -Resource-Group Infra_core_Syd
- 要在存储库中查看当前图像,请运行命令:AZ ACR存储库列表 - 名称kloudaks01 -output表
- 您将看到此列表是空的,因为我们还没有将任何图像部署到它。
- 对于我们的演示,我们现在将通过运行以下命令,将Microsoft提供的Demo应用程序导入Docker的公共存储库:AZ ACR导入 - kloudaks01 -source mcr.microsoft.com/azuredocs/azure-vote-front:v2 -image Azure-ext-Front:v2
- 等待几分钟以完成此操作。
- 使用命令查看上传到存储库中的图像。AZ ACR存储库列表 - 名称kloudaks01 -output表
|
5.发布申请
- 要将应用程序发布到AKS群集,我们需要创建yaml文件。
- 创建一个名为Azure-eLot-in-one-in-indis.yml并将下面的内容复制到其中并将其保存到本地工作站。
- 我救了它“C: \ Temp \ azure-vote-all-in-one-redis.yml“
apiersion:apps / v1beta1 类:部署 元数据: 名称:Azure-opot-back 规格: 副本:1 模板: 元数据: 标签: 应用程序:蔚蓝的投票 规格: 容器: - 名称:Azure-opot-back 图片:复述, 港口: - 集装箱运动:6379 名称:redis. - apierion:v1 类:服务 元数据: 名称:Azure-opot-back 规格: 港口: - 港口:6379 选择器: 应用程序:蔚蓝的投票 - apiersion:apps / v1beta1 类:部署 元数据: 名称:azure-vote-front 规格: 副本:1 战略: rollingUpdate: maxsuge:1 maxunavailable:1 minReadySeconds:5 模板: 元数据: 标签: 应用:azure-vote-front 规格: 容器: - 名称:Azure-Pot-Front 图片:Microsoft / Azure-Pote-Frant:v2 港口: - 集装箱运动:80 资源: 请求: CPU:250M 限制: CPU:500M. env: - 名称:redis 价值:“alzure-eact-back” - apierion:v1 类:服务 元数据: 名称:azure-vote-front 规格: 类型:loadbalance 港口: - 港口:80 选择器: 应用:azure-vote-front
- 确保kubectl.安装在您的Azure CLI中。如果没有,请运行命令:AZ AKS安装-CLI
- 要从Azure CLI控制台部署容器,请运行以下命令:kubectl apply -f " C:\Temp\azure- votes -all-in-one-redis.yml“
- 使用实例监控部署进程。Kubectl Get Services -Watch
- 等到外部IP.分配地址,然后按Ctrl + C退出。记下这个IP。
- 在新创建的资源组中容纳群集节点,您将在NSG中看到允许访问端口80上的外部IP地址的入站规则。
- 注意外部IP地址并将其粘贴到浏览器中。这加载了浏览器中的Azure Color Pooting应用程序。搏一搏 。
|
6.升级AKS集群
重要的是,您可以应用最新的Kubernetes安全修补程序或应用任何升级以获得对最新功能的访问权限。
- 要检查群集可用的Kubernetes版本,请运行命令:AZ AKS Get-Upgrades -Resource-group infra_core_syd -name sanakscluster01 -Output表
- 输出显示Kubernetes群集可以升级到1.12.6版本
- 要执行此升级,请运行命令:AZ AZ AKS升级-Resource-group infra_core_syd -name sanakscluster01 -kubernetes-version 1.12.6
- 按y用于确认并等待完成完成。
- 要确认升级成功,请在以下命令中键入:AZ AKS Show -Resource-group infra_core_syd -name sanakscluster01 --output表
|
7.缩放AKS群集节点
- 要检查正在运行的群集节点列表,请使用命令:kubectl得到节点
- 由于我们已使用单个节点创建群集,因此命令的输出将显示一个节点。
- 我们现在将缩放群集节点4.运行以下命令以执行它:AZ AKS Scale -Resource-group rg_mel -name sanakscluster01-node-count 4
- 这需要几分钟才能完成其行动。
- 重新运行命令:kubectl得到节点
- 您应该看到使用四个节点运行的附加节点。
|
8.豆荚和缩放
- pod是你在Kubernetes中创建或部署的最小单位。pod将应用程序表示为集群上运行的进程。
- 在我们的Yaml文件中,我们指定了replicas = 1的数量,因此我们只提供一个可用于应用程序的POD。请参阅以下屏幕截图:
/code1.png)
|
我们现在将使用AKS群集运行的应用程序缩放。
- 要查看豆荚,快跑kubectl得到豆荚。应用程序显示了一个前端和一个后端
- 要规模,我们需要知道部署名称,我们可以通过运行命令来获得此项:熊掌获得部署
- 我们现在将应用程序扩展到3个节点。我们有两个部署(后端和前端)需要扩展。
- 输入命令:Kubectl Scale -Replicas = 3部署/ Azure-export,部署/ Azure-Pot-Front
- 要验证应用程序已缩放,请重新运行命令:kubectl得到豆荚
- 缩放POD后,您可以注意到已将负载均衡器引入到应用程序中的资源组中。这是由Azure Kubernetes服务创建的。
- 确保您仍然能够在Web浏览器上以相同的IP访问Web应用程序。
|
9.访问Kubernetes仪表板
要打开Kubernetes仪表板,请完成以下步骤:
- 通过运行以下命令获取集群的凭据:AZ AKS Get-Credentials -Resource-group infra_core_syd -name sanakscluster01
- 通过运行以下命令打开Kubernetes仪表板:AZ AKS浏览-Resource-group Infra_core_syd -Name SanaksCluster01
- 单击上述输出中的URL,该输出将导航到Kubernetes仪表板。
- 仪表板提供有关群集中Kubernetes资源的状态以及可能发生的任何错误的信息。它可用于将集装箱应用程序部署到Kubernetes群集。
|