你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:发现在数据中心运行的 Spring Boot 应用程序(预览版)

本文介绍如何使用 Azure Migrate:发现和评估工具发现在数据中心的服务器上运行的 Spring Boot 应用程序。 发现过程完全无代理; 目标服务器上未安装任何代理。

本教程介绍如何执行下列操作:

  • 设置基于 Kubernetes 的设备以发现 Spring Boot 应用程序
  • 配置设备并启动持续发现

注意

  • 发现 Spring Boot 应用程序需要基于 Kubernetes 的设备。 详细了解基于 Windows 的设备所涵盖的方案。
  • 教程介绍了尝试方案的最快路径。 这些教程会在任何可行的情况下使用默认选项。

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

支持的地理区域

地域
亚太区
韩国
日本
美国
欧洲
英国
加拿大
澳大利亚
法国

先决条件

设置基于 Kubernetes 的设备

使用 Azure Migrate 设备执行服务器发现和软件盘存后,可以通过设置 Kubernetes 设备来启用 Spring Boot 应用程序的发现,如下所示:

加入基于 Kubernetes 的设备

  1. 转到 Azure 门户。 使用 Azure 帐户登录并搜索 Azure Migrate。

  2. 在“概述”页 >“服务器、数据库和 Web 应用”中,选择“发现、评估和迁移”。

  3. 选择将 Azure Migrate 设备设置为先决条件的一部分的项目。

  4. 你将看到“Azure Migrate: 发现和评估”磁贴上方出现一条消息,用于加入基于 Kubernetes 的设备,以便可以发现 Spring Boot 应用程序。

    屏幕截图显示了 Web 应用的发现和评估的横幅。

  5. 可以通过选择消息上的链接继续操作,这将帮助你开始加入基于 Kubernetes 的设备。

    注意

    建议你选择对服务进行磁盘加密的 Kubernetes 群集。 详细了解如何在 Kubernetes 中加密静态数据。

  6. 在“选择设备”中,可以选择以下选项之一

    • 使用打包的 Kubernetes 群集安装设备 - 此选项默认处于选中状态,因为建议用户使用安装程序脚本在本地 Linux 服务器上下载和安装 Kubernetes 群集以设置设备
    • 自带 Kubernetes 群集:你必须自带在本地运行的 Kubernetes 群集,将其连接到 Azure Arc 并使用安装程序脚本设置设备
  1. 在“提供 Azure Migrate 的设备详细信息”中,设备名称已预先填充,但你可以选择为设备提供自己的易记名称

    显示已选择“使用打包的 Kubernetes 群集安装设备”选项的屏幕截图。

  2. 从下拉列表中选择密钥保管库,也可以或新建密钥保管库。 此密钥保管库用于处理项目中提供的凭据以开始发现 Spring Boot 应用程序。

    注意

    可以在与 Azure Migrate 项目相同的订阅和区域中选择或创建密钥保管库。 创建/选择 KV 时,请确保禁用清除保护,否则通过密钥保管库处理凭据时会出现问题。

  3. 提供设备名称和密钥保管库后,选择“生成脚本”以生成安装程序脚本,你可以将该脚本复制并粘贴到本地 Linux 服务器上。 执行脚本之前,请确保 Linux 服务器满足以下先决条件:

    支持 详细信息
    支持的 Linux 操作系统 Ubuntu 20.04,RHEL 9
    所需的硬件配置 8 GB RAM,具有 30 GB 存储、4 核 CPU
    网络要求 可访问以下终结点:

    .docker.io

    .docker.com

    api.snapcraft.io

    https://dc.services.visualstudio.com/v2/track

    启用了 Azure Arc 的 Kubernetes 的网络要求

    用于绕过代理的 Azure CLI 终结点

复制脚本后,可以转到你的 Linux 服务器,将脚本在服务器上另存为 Deploy.sh

使用出站代理服务器进行连接

如果计算机位于出站代理服务器后面,则必须通过出站代理服务器路由请求。 按照以下步骤提供代理设置:

  1. 打开服务器上的终端,并以 root 用户身份执行以下命令设置环境变量:sudo su -
  2. 在部署计算机上,设置 deploy.sh 使用出站代理服务器所需的环境变量:
    export HTTP_PROXY=”<proxy-server-ip-address>:<port>”
    export HTTPS_PROXY=”<proxy-server-ip-address>:<port>”
    export NO_PROXY=””
    
  3. 如果代理使用证书,请提供证书的绝对路径。 export PROXY_CERT=””

注意

计算机在安装所需的必备组件以运行 deploy.sh 脚本时使用代理详细信息。 它不会替代已启用 Azure Arc 的 Kubernetes 群集的代理设置。

执行安装程序脚本

将脚本保存到 Linux 服务器上后,请执行以下步骤:

注意

在满足网络先决条件和 OS 兼容性的终端上连接到 Linux 计算机后,需要运行此脚本。
请确保已在服务器上安装 curl。 对于 Ubuntu,可以使用 sudo apt-get install curl 命令安装它,对于其他操作系统(RHEL/CentOS),可以使用 yum install curl 命令。

重要

除非要清理安装程序,否则不要编辑该脚本。

  1. 打开服务器上的终端,并执行以下命令,以 root 用户身份执行脚本:sudo su -

  2. 将目录更改为保存脚本的位置并使用以下命令执行脚本:bash deploy.sh

  3. 按照脚本中的说明进行操作,并在出现提示时使用你的 Azure 用户帐户登录。

  4. 此脚本执行以下步骤:

    1. 安装所需的 CLI 扩展。
    2. 注册 Azure 资源提供程序
    3. 检查先决条件,例如与所需终结点的连接性
    4. 设置 MicroK8s Kubernetes 群集
    5. 在群集上安装所需的运算符
    6. 创建所需的 Migrate 资源
  5. 成功执行脚本后,通过门户配置设备。

重新安装

注意

如果在脚本执行过程中遇到任何问题,则需要重新运行该脚本,它将从上次成功状态恢复。 若要执行完整的全新安装,请在重新运行脚本之前查看清理安装程序详细信息。

静态加密

设置打包设备时,我们共同承担确保机密受保护的责任。

  • 建议你选择对服务进行磁盘加密的 Linux VM。

配置基于 Kubernetes 的设备

使用安装程序脚本成功设置设备后,需要按照以下步骤配置设备:

  1. 转到开始加入基于 Kubernetes 的设备的 Azure Migrate 项目。

  2. 在“Azure Migrate:发现和评估”磁贴上,选择设备摘要下的“挂起操作”的设备计数。

    屏幕截图显示了“挂起的操作”选项。

  3. 在“概述”>“管理”>“设备”中,将显示一个经过筛选的设备列表,其中包含挂起的操作。

  4. 找到你已设置的基于 Kubernetes 的设备,然后选择“凭据不可用”状态来配置该设备。

    屏幕截图显示了设备的详细信息。

  5. 在“管理凭据”页中,添加凭据以启动对服务器上运行的 Spring Boot 应用程序的发现。

    屏幕截图显示了“管理凭据”选项。

  6. 选择“添加凭据”,从 Linux(非域)或域凭据中选择凭据类型,提供易记名称、用户名和密码。 选择“保存”。

    注意

    • 在门户上添加的凭据通过在加入基于 Kubernetes 的设备的初始步骤中选择的 Azure 密钥保管库进行处理。 然后,凭据将同步(以加密格式保存)到设备上的 Kubernetes 群集,并从 Azure 密钥保管库中删除。
    • 凭据成功同步后,它们将用于在下一个发现周期中发现特定工作负载。
  7. 添加凭证后,需要刷新页面才能看到凭证的同步状态。 如果状态为“未完成”,则可以选择该状态来查看遇到的错误并采取建议的操作。 凭据成功同步后,等待 24 小时,然后可以通过在“已发现的服务器”页面中筛选特定工作负荷来查看已发现的盘存。

    注意

    你可以随时添加/更新凭据,方法是导航到“Azure Migrate:发现和评估”>“概述”>“管理”>“设备页面”,从基于 Kubernetes 的设备中的可用选项中选择“管理凭据”。

清理安装程序

若要执行清理,请在删除模式下运行以下脚本:

在门户生成的脚本中,在所有用户参数(下图中的第 19 行之后)之后,添加 export DELETE= “true” 并再次运行同一脚本。 这会清理在创建设备期间创建的所有现有组件。

屏幕截图显示了删除模式。

发现过程概述

“发现的服务器”屏幕提供以下信息:

  • 显示基于服务器的环境中运行的所有 Spring Boot 工作负载。
  • 以表格式列出每个服务器的基本信息。

屏幕截图显示了已发现的服务器。

选择任一 Web 应用以查看其详细信息。 “Web 应用”屏幕提供以下信息:

  • 提供每个服务器上每个 Spring Boot 进程的综合视图。
  • 显示每个进程的详细信息,包括:
    • JDK 版本和 Spring Boot 版本。
    • 已配置的环境变量名称和 JVM 选项。
    • 正在使用的应用程序配置和证书文件。
    • 服务器上进程的 JAR 文件的位置。
    • 静态内容位置和绑定端口。

屏幕截图显示了 Web 应用屏幕。

后续步骤