创建和管理 Kubernetes 支持的自承载集成运行时(预览版)

本文详细介绍适用于 Linux 的基于 Kubernetes 的新 SHIR 功能(目前为公共预览版)。 我们还改进了底层基础结构,以提供以下几项优势:

  • 可伸缩性:能够扩展到数百台计算机
  • 性能:提高了扫描工作负载的性能
  • 安全性(容器化):能够在 Kubernetes 群集上实现容器化安全性,而不是直接在 Windows 计算机上托管 SHIR

本文详细介绍如何安装和管理 Kubernetes 支持的自承载集成运行时。

支持的数据源

有关所有受支持源的列表,请参阅每个集成运行时支持的数据源表

体系结构

从体系结构的较高层面看,在安装基于 Kubernetes 的 SHIR 时,会在用户的 Kubernetes 群集节点上自动创建多个 pod。 此项安装可由名为 IRCTL 的命令行工具触发(更多详细信息请参阅以下部分)。 IRCTL 连接到 Microsoft Purview 服务来注册 SHIR,并连接到 Kubernetes 群集来安装 SHIR。 

在安装过程中,SHIR 映像将从 MCR(Microsoft 容器注册表)下载到 SHIR pod。 安装完成后,用户群集中的 pod 将连接到 Microsoft Purview 服务来拉取扫描作业。 拉取扫描作业后,该作业可以连接用户的本地数据源进行数据扫描。

Kubernetes 支持的自承载集成运行时的网络体系结构信息图。

先决条件

  • 使用企业数据治理解决方案的 Microsoft Purview 帐户。

  • Kubernetes 群集:需有一个现有的基于 Linux 的 Kubernetes 群集,或者准备一个群集。 可以通过遵循 Kubernetes 节点选择器定义的节点选择器来识别节点。 最低配置:

    • 容器类型:Linux
    • Kubernetes 版本:1.24.9 或以上
    • 节点操作系统:Ubuntu 18.04 x64 或以上
    • 节点规格:最少 8 核 CPU、32 GB 内存和至少 80 GB 可用硬盘空间
    • 节点计数:>=1(应是固定数量,未启用群集自动缩放程序)

    注意

    每个节点的文件夹 /var/irstorage/ 是为 SHIR 保留的。 可读取和写入到 SHIR。 可以从此文件夹获取持久的日志或将外部驱动程序上传到此文件夹。 如果该文件夹不存在,SHIR 将创建它,且删除 SHIR 后不会删除它。 SHIR 使用的容器映像由 Kubernetes 垃圾回收管理,SHIR 不会清理这些映像。 请为 Kubernetes 群集配置适当的阈值。

  • Kubernetes 群集网络:你的 Kubernetes 群集应该可以连接到网络要求中列出的终结点

  • 集成运行时命令行工具:若要在本地管理 Microsoft Purview Kubernetes SHIR,需要一个名为 IRCTL 的命令行工具。 可以在 SHIR 创建过程中下载此工具。 IRCTL 是用于管理 Microsoft Purview SHIR 的命令行工具。 有关详细信息,请参阅 IRCTL 文档

  • Kubernetes 上下文:Kubernetes 上下包含此群集的 Kubernetes 群集信息和用户的权限和凭据,需要与 Kubernetes 群集通信。 若要简化用户对 SHIR 管理权限的配置,可以从 Kubernetes 管理员角色开始。 此上下文是使用 Kubernetes 群集的设置生成的,并保存在配置文件中。 获取此文件的位置和方式取决于你对 Kubernetes 群集的设置。
    • 如果使用 kubeadm init 设置 Kubernetes 群集,可以在 /etc/Kubernetes/admin.conf 下找到配置文件。
    • 如果使用 AKS,可以按照 AKS 的指南使用 Az PowerShell 模块命令将此群集的凭据获取到本地计算机。 此上下文可以直接合并到 $HOME/.kube/config 下的配置文件。
    • 如果使用其他工具设置 Kubernetes 群集,请参阅 Kubernetes 文档
    • 由于你拥有 Kubernetes 上下文的配置文件,请将其合并到要运行 IRCTL 命令的计算机上的配置文件(即 $HOME/.kube/config)。 或者,也可在名为 KUBECONFIG 的环境变量中设置 Kubernetes 上下文的配置文件。 有关 Kubernetes 上下文的详细信息,请参阅配置对多个群集的访问

创建 Kubernetes 支持的自承载集成运行时

若要控制和管理 Kubernetes SHIR,用户可以下载名为 IRCTL 的命令行工具。 以下是 Kubernetes 支持的自承载集成运行时的步骤。

这些步骤将引导你下载 IRCTL,但如需直接链接,请参阅 IRCTL 文档

设置 Kubernetes 支持的自承载集成运行时

  1. 在 Microsoft Purview 数据映射中打开“集成运行时”窗口

  2. 选择“+ 新建”按钮

    Microsoft Purview 数据映射中的集成运行时窗口的屏幕截图。

  3. 选择“自承载”,然后选择“继续”

    新集成运行时窗口的屏幕截图,其中选择了“自承载”。

  4. 为运行时命名,然后选择“Kubernetes 服务支持”切换开关以启用它

    新集成运行时窗口的屏幕截图,其中启用了 Kubernetes 切换开关。

  5. 选择“创建”

  6. 选择“获取注册密钥”

    查看集成运行时页面的屏幕截图,其中突出显示了“获取注册密钥”按钮。

  7. 复制密钥值。 稍后需要在 IRCTL 中运行命令时需要此密钥。

    提示

    如果需要,可以重新生成密钥或撤销已生成的密钥。

  8. 选择“下载 IRCTL 并安装集成运行时”链接以下载 IRCTL 工具。 (也可以按照这些步骤直接下载 IRCTL。

  9. 在要运行 IRCTL 命令行的计算机上,通过下载的包安装 IRCTL。 IRCTL 通过 Kube 配置上下文连接到 Kubernetes 群集。如果未指定上下文,IRCTL 将使用当前上下文。 可以通过以下两种方式之一设置上下文:

    • 运行 kubectl 命令行并执行以下命令来确认当前上下文:

      kubectl config get-contexts – List all contexts configured on the machine
      
      kubectl config current-context – Get the current context name
      
      kubectl config use-context <name of context>
      
    • 运行 IRCTL 并执行 --context,以在 Kube 配置中指定上下文

  10. 运行 IRCTL 命令行,并使用复制的注册密钥执行此命令。

    ./irctl create --registration-key <registration key copied from the portal>
    

    注意

    如果未指定节点选择器,则将使用 Kubernetes 群集的所有节点。 对于 AKS,建议使用 AKS 节点池的标签作为节点选择器,或者可为 SHIR 节点自定义不同的标签。

  11. 你将看到以下输出:

    [Info] Start to create SHIR with Kubernetes context [your-context]......
    [Info] Environment validation passed!
    [Info] Registering SHIR[example-k8s-shir] for Microsoft Purview Account [yourpurviewaccount]......
    [Info] SHIR Registration done!
    [Info] Provisioning SHIR, it may take about 5-30 minutes......done!
    [Info] SHIR creation succeeded!  
    

    提示

    如果因按下 Ctrl-C 或其他原因中断了安装进度,可以使用以下命令来监视安装进度:./irctl install status

  12. 安装完成后,要检查 SHIR 的当前状态,请运行以下命令:

    ./irctl describe
    
  13. 还可以在 Microsoft Purview 门户的“集成运行时”页面上检查 SHIR 的状态

使用外部驱动程序设置扫描

扫描某些数据源时,需要在安装了 SHIR 的计算机上安装相应的驱动程序,以便 Microsoft Purview 能够与数据源进行连接。 下面是 Db2 扫描的示例。 有关具体的先决条件,请参阅相应的连接器文章。

注意

需要这些外部驱动程序的数据源将在其先决条件中列出这些信息。

高可用性和可伸缩性

在 Kubernetes 支持的自托管集成运行时安装过程中,你可以通过使用节点选择器来分配 Kubernetes 群集的多个节点,以实现高可用性。 关联多个节点的好处如下:

  • 自托管集成运行时的可用性更高,因此它不再是扫描的单一故障点。
  • 运行更多并发扫描。 每个节点都可以同时进行多次扫描。 如果需要更多并发扫描,可以手动横向扩展 Kubernetes 群集的节点。
  • 扫描某些源(如 Azure Blob、Azure Data Lake Storage Gen2 和 Azure 文件存储)时,每次扫描运行都可以使用多个节点来提高扫描性能。 对于其他源,仅在其中一个节点上执行扫描。

Kubernetes 支持的自托管集成运行时的功能可以通过手动横向扩展/缩减 Kubernetes 群集的节点来更新。

注意

必须上传所有必要的驱动程序,以便在每个新节点上进行扫描。

网络要求

域名 出站端口 说明
公有云:<tenantID>-api.purview-service.microsoft.com
中国:<tenantID>-api.purview-service.microsoft.cn
443 连接到 Microsoft Purview 服务时需要。 如果使用 Microsoft Purview 专用终结点,则帐户专用终结点将涵盖此终结点。
公有云:<purview_account>.purview.azure.com
中国:<purview_account>.purview.azure.cn
443 连接到 Microsoft Purview 服务时需要。 如果使用 Microsoft Purview 专用终结点,则帐户专用终结点将涵盖此终结点。
公有云:<managed_storage_account>.blob.core.chinacloudapi.cn<ingestion_storage_account>.*.blob.storage.chinacloudapi.cn
中国:<managed_storage_account>.blob.core.chinacloudapi.cn<ingestion_storage_account>.blob.core.chinacloudapi.cn
443 连接到 Microsoft Purview 托管 Azure Blob 存储帐户时需要。
公有云:<managed_storage_account>.queue.core.chinacloudapi.cn<ingestion_storage_account>.*.queue.storage.chinacloudapi.cn
中国:<managed_storage_account>.queue.core.chinacloudapi.cn<ingestion_storage_account>.queue.core.chinacloudapi.cn
443 连接到 Microsoft Purview 托管 Azure 队列存储帐户时需要。
公有云:*.compute.governance.azure.com
中国:*.compute.governance.azure.cn
443 连接到 Microsoft Purview 服务时需要。 目前需要通配符,因为没有专用资源。
mcr.microsoft.com 443 需要通过此终结点下载映像。
*.data.mcr.microsoft.com 443 需要通过此终结点下载映像。

注意

根据用户想要扫描的源,他们还需要允许通过其他域和出站端口访问其他 Azure 源或外部源。

版本

通常,我们每个月都会发布一个新的自承载集成运行时次要版本,其中包括功能、增强和 bug 修复。

自承载集成运行时的每个版本将在一年后过期。

如何检查当前版本

可以在门户上或使用 IRCTL 检查 Kubernetes 自托管集成运行时的版本。

门户

  1. 在 Microsoft Purview 门户中,导航到数据映射。
  2. 选择“集成运行时”
  3. 集成运行时说明行中的第四列是版本,你可以在那里查看版本。

IRCTL(1.1.0 及更高版本)

describe 命令将返回集成运行时的版本。

./irctl describe

自动更新

从版本 1.1.0 开始,Kubernetes 自托管集成运行时支持自动更新,默认情况下启用自动更新。 此功能可确保你的集成运行时大约每月自动升级一次到最新的 Azure 托管版本。

选择退出

我们建议保持启用自动更新,以便从最新功能和增强功能中受益。 但是,你可以选择使用 IRCTL 退出自动更新。 自动更新配置在重新安装过程中仍然有效,因此你不需要在每次安装时禁用它。

./irctl config set autoUpdate.enabled false
./irctl config view

自动更新版本与最新版本

为了确保稳定性,自动更新通常比最新版本晚一个月。 自动更新版本由 Microsoft 管理。

如果要将集成运行时升级到较新版本,则应使用特定版本的 IRCTL 执行手动升级。

后续步骤