在此博客中,我将指导您完成在Azure Kubernetes Services(AKS)上托管的Kubernetes平台的kubernetes平台的过程。此外,我还将向您展示如何使用服务缩放和高可用性。

Docker将容器定义为“一个标准的软件单元,可包装代码和所有依赖项,因此应用程序从一个计算环境快速可靠地运行到另一个计算环境

Docker容器图像是一款轻量级,独立的可执行软件软件包,包括运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。“

我不会进一步深入Docker和容器的概念,并敦促您自己去阅读。

要构建我们的解决方案,我们将需要执行以下操作

  1. 创建Azure Container注册表(ACR)
  2. 创建一个Azure Service主体
  3. 创建Azure Kubernetes集群(AKS)
  4. 将图像导入Azure容器注册表
  5. 发布应用程序
  6. 升级AKS群集
  7. 缩放AKS群集节点
  8. 豆荚和缩放它们
  9. 访问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。请参阅以下屏幕截图:

我们现在将使用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群集。