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

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

    注意

    每个节点的文件夹 /var/irstorage/ 是为 SHIR 保留的。 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 群集。如果未指定 context,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. 使用步骤 3 中的“目标”值的 DriverLocation 创建扫描。

    扫描设置窗口的屏幕截图,其中显示了驱动程序位置列为 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 执行手动升级。

后续步骤