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

重要

以前Azure Purview) (Microsoft Purview 统一目录和经典 Microsoft Purview 数据治理功能即将停用。 Microsoft 正在 Microsoft Fabric 中整合其数据治理功能。 无法再创建新帐户,现有功能将保持维护模式直至 2027 年 11 月 12 日。 有关停用时间表、过渡指南和建议的后续步骤,请参阅 Microsoft Purview 数据治理停用公告。

本文详细介绍了基于 Kubernetes 的适用于 Linux 的新 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 或更高版本
    • 节点操作系统:在 x86 架构上运行的基于 Linux 的操作系统
    • 节点规格:至少 8 个内核 CPU、32 GB 内存和至少 80 GB 的可用硬盘空间
    • 节点计数: >=1 (应修复, 不要 启用群集自动缩放程序)
    • 每个节点的 Pod 数量: >= 20 (最大 Pod 数量 – 不属于 Self-Hosted IR) 的其他 Pod 计数

    注意

    每个节点的文件夹 /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 module 命令将此群集的凭据获取到本地计算机。 上下文可以直接合并到下面的 $HOME/.kube/config 配置文件中。
    • 如果使用其他工具设置 Kubernetes 群集,请参阅 Kubernetes 文档。
    • 由于您有 Kubernetes 上下文的配置文件,请将其合并到配置文件中,即 $HOME/.kube/config要运行 IRCTL 命令的计算机上的配置文件。 或者,您也可以在名为 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 扫描的示例。 有关特定先决条件,请参阅相应的连接器文章。

注意

需要这些外部驱动程序的数据源具有先决条件中所列的信息。

在此示例中,我们安装 Db2 驱动程序。 其他驱动程序的步骤类似。

  1. 首先,安装集成运行时。

  2. 下载驱动程序 (每个源都列出了各自的驱动程序。) 例如,可以在此处找到 DB2 驱动程序: 连接和管理 Db2。

  3. 将驱动程序上传到集成运行时的每个节点。 可使用如下命令:

    ./irctl storage upload --source jdbc_sqlj/db2_driver --destination driver/db2
    

    成功上传确认如下所示:

    ========== Context ========== 
    Kubernetes Context             : k8s-shir-test-cluster 
    Purview Account                : test-purview-1 
    Self-hosted Intrgration Runtime: k8s-shir-demo 
    ========== Progress ========== 
    Processing 2/2 nodes... 
    aks-shirpool-27141791-vmss000000: SUCCEEDED 
    aks-shirpool-27141791-vmss000001: SUCCEEDED 
    ========== Results ========== 
    jdbc_sqlj/db2_driver -> /var/irstorage/driver/db2 
    

    注意

    如果替换节点或横向扩展到新节点,则需要再次上传外部驱动程序。

  4. 验证使用此命令上传的文件:

    ./irctl storage list driver/db2
    

    应看到如下所示的响应:

    ========== Context ========== 
    Kubernetes Context             : k8s-shir-test-cluster 
    Purview Account                : test-purview-1 
    Self-hosted Intrgration Runtime: k8s-shir-demo 
    ========== Progress ========== 
    Processing 2/2 nodes... 
    aks-shirpool-27141791-vmss000000: SUCCEEDED 
    aks-shirpool-27141791-vmss000001: SUCCEEDED 
    ========== Results ========== 
    Node: aks-shirpool-27141791-vmss000000 - Succeeded 
    /var/irstorage/driver/db2 
    total 9364 
    drwxr-xr-x    2 root     root          4096 May 15 14:23 . 
    drwxr-xr-x    3 root     root          4096 May 15 14:23 .. 
    -rwxrwxr-x    1 root     root       6568346 May 15 14:23 db2jcc4.jar 
    Node: aks-shirpool-27141791-vmss000001 - Succeeded 
    /var/irstorage/driver/db2 
    total 9364 
    drwxr-xr-x    2 root     root          4096 May 15 14:23 . 
    drwxr-xr-x    3 root     root          4096 May 15 14:23 .. 
    -rwxrwxr-x    1 root     root       6568346 May 15 14:23 db2jcc4.jar 
    
  5. 使用 DriverLocation 的值和步骤 3 中的 目标 值创建扫描。

    扫描设置窗口的屏幕截图,其中显示列为 driver/db2 的驱动程序位置。

高可用性和可伸缩性

在 Kubernetes 支持的自承载集成运行时安装期间,可以使用节点选择器将 Kubernetes 群集的多个节点分配为具有高可用性。 拥有多个节点的好处是:

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

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

注意

您必须上传在每个新节点上扫描所需的所有驱动程序。

网络要求

域名 出站端口 说明
公有云: <tenantID>-api.purview-service.microsoft.com
Azure 政府:<tenantID>-api.purview-service.microsoft.us
中国: <tenantID>-api.purview-service.microsoft.cn
443 需要连接到 Microsoft Purview 服务。 如果使用 Microsoft Purview 专用终结点,则帐户专用终结点涵盖此终结点。
公有云: <purview_account>.purview.azure.com
Azure 政府:<purview_account>.purview.azure.us
中国: <purview_account>.purview.azure.cn
443 需要连接到 Microsoft Purview 服务。 如果使用 Microsoft Purview 专用终结点,则帐户专用终结点涵盖此终结点。
公有云: <managed_storage_account>.blob.core.windows.net 或 <ingestion_storage_account>.*.blob.storage.azure.net
Azure 政府:<managed_storage_account>. blob.core.usgovcloudapi.net或<ingestion_storage_account>. blob.core.usgovcloudapi.net
中国: <managed_storage_account>.blob.core.chinacloudapi.cn或 <ingestion_storage_account>.blob.core.chinacloudapi.cn
443 需要连接到 Microsoft Purview 托管 Azure Blob 存储帐户。
公有云: <managed_storage_account>.queue.core.windows.net 或 <ingestion_storage_account>.*.queue.storage.azure.net
Azure 政府:<managed_storage_account>. queue.core.usgovcloudapi.net或<ingestion_storage_account>. queue.core.usgovcloudapi.net
中国: <managed_storage_account>.queue.core.chinacloudapi.cn或 <ingestion_storage_account>.queue.core.chinacloudapi.cn
443 需要连接到 Microsoft Purview 托管 Azure 队列存储帐户。
公有云: *.compute.governance.azure.com
Azure 政府:*.compute.governance.azure.us
中国: *.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 自托管集成运行时支持自动更新,默认情况下处于启用状态。 此功能可确保集成运行时大约每月自动升级到最新的 Microsoft 托管版本一次。

选择退出

建议保持启用自动更新,以便从最新功能和增强功能中受益。 但是,你可以选择退出使用 IRCTL 的自动更新。 自动更新配置会在重新安装后持续存在,因此无需在每次安装时禁用它。

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

自动更新版本与最新版本

为了确保稳定性,自动更新通常落后于最新版本,延迟一个月。 自动更新版本由 Microsoft 管理。

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

后续步骤