Kubernetes でサポートされているセルフホステッド統合ランタイムを作成および管理する
この記事では、基になるインフラストラクチャを改善していくつかの利点を提供する Kubernetes ベースの Linux である新しい SHIR 機能の詳細について説明します。
- スケーラビリティ: 数百台のマシンにスケーリングする機能。
- パフォーマンス: ワークロードのスキャンのパフォーマンスが向上しました。
- セキュリティ (コンテナー化): Windows マシンで SHIR を直接ホストするのではなく、Kubernetes クラスターでコンテナー化されたセキュリティを持つ機能
この記事では、Kubernetes でサポートされているセルフホステッド統合ランタイムをインストールして管理する詳細について説明します。
サポートされているデータ ソース
サポートされているすべてのソースの一覧については、 各統合ランタイム テーブルでサポートされているデータ ソースに関するページを参照してください。
アーキテクチャ
概要のアーキテクチャ ビューでは、Kubernetes ベースの SHIR がインストールされると、ユーザーの Kubernetes クラスターのノードで複数のポッドが自動作成されます。 このインストールは、IRCTL というコマンド ライン ツールによってトリガーできます (以降のセクションで詳しく説明します)。 IRCTL は Microsoft Purview Service に接続して SHIR を登録し、Kubernetes クラスターに接続して SHIR をインストールします。
インストール中に、SHIR イメージは MCR (Microsoft Container Registries) から SHIR ポッドにダウンロードされます。 インストールが完了すると、ユーザーのクラスター内のポッドが Microsoft Purview Service に接続してスキャン ジョブをプルします。 スキャン ジョブがプルされると、ユーザーのオンプレミス データ ソースをデータ スキャン用に接続できます。
前提条件
エンタープライズ データ ガバナンス ソリューションを使用した Microsoft Purview アカウント。
Kubernetes クラスター: 既存の Linux ベースの Kubernetes クラスターを用意するか、準備する必要があります。 ノードは、Kubernetes ノード セレクターの定義に従って、ノード セレクターによって識別できます。 最小構成:
- コンテナーの種類: Linux
- Kubernetes バージョン: 1.24.9 以降
- ノード OS: x86 アーキテクチャで実行されている Linux ベースの OS
- ノード スペック: 最小 8 コア CPU、32 GB メモリ、少なくとも 80 GB の使用可能なハード ディスク領域
- ノード数: >=1 (クラスター自動スケーラーを有効 にせず 、固定する必要があります)
- ノードあたりのポッド数: >= 20 (最大ポッド数 - Self-Hosted IR に属していない他のポッドの数)
注:
各ノードのフォルダー /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 でサポートされているセルフホステッド統合ランタイムを設定する
Microsoft Purview データ マップで [統合ランタイム] ウィンドウを開きます
-
新しい Microsoft Purview ポータルを使用している場合:
- データ マップを開く
- [ ソース管理] を選択します
- 統合ランタイムの選択
-
従来の Microsoft Purview ガバナンス ポータルを使用している場合:
- データ マップを開く
- 統合ランタイムの選択
-
新しい Microsoft Purview ポータルを使用している場合:
[ + 新規 ] ボタンを選択します
[ セルフホステッド ] を選択し、[続行] を選択 します
ランタイムに名前を付けてから、 Kubernetes サービスサポート トグルを選択して有効にします
[作成] を選択します
[ Get registration key]\(登録キーの取得\) を
キー値をコピーします。 後で IRCTL でコマンドを実行する必要があります。
ヒント
必要に応じて、キーを再生成するか、生成されたキーを取り消すことができます。
[IRCTL のダウンロードと統合ランタイムのインストール] リンクを選択して、IRCTL ツールをダウンロードします。 (次の手順に従って IRCTL を直接ダウンロードすることもできます)。
IRCTL コマンド ラインを実行するコンピューターで、ダウンロードから IRCTL をインストールします。 IRCTL は、Kube 構成のコンテキストによって Kubernetes クラスターに接続します。コンテキストが指定されていない場合、IRCTL は現在のコンテキストを使用します。 コンテキストは、次の 2 つの方法のいずれかで設定できます。
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 構成でコンテキストを指定します
IRCTL コマンド ラインを実行し、コピーした登録キーを使用してこのコマンドを実行します。
./irctl create --registration-key <registration key copied from the portal>
注:
ノード セレクターが指定されていない場合は、Kubernetes クラスターのすべてのノードが使用されます。 AKS の場合は、ノード セレクターとして AKS ノード プールのラベルを使用するか、SHIR ノードに異なるラベルをカスタマイズすることをお勧めします。
次の印刷結果が表示されます。
[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
インストールが完了したら、SHIR の現在の状態をチェックするには、次のコマンドを実行します。
./irctl describe
Microsoft Purview ポータルの [統合ランタイム] ページで、SHIR の状態をチェックすることもできます。
外部ドライバーを使用してスキャンを設定する
一部のデータ ソースをスキャンするときは、Microsoft Purview がデータ ソースに接続するために SHIR がインストールされているコンピューターに対応するドライバーをインストールする必要があります。 Db2 スキャンの例を次に示します。 特定の前提条件については、それぞれのコネクタに関する記事を参照してください。
注:
これらの外部ドライバーを必要とするデータ ソースには、前提条件に記載されている情報が含まれます。
この例では、Db2 ドライバーをインストールします。 他のドライバーの手順も同様です。
ドライバーをダウンロードします (各ソースには個々のドライバーが表示されます)。たとえば、DB2 ドライバーについては、「Db2 に接続して管理する」を参照してください。
統合ランタイムの各ノードにドライバーをアップロードします。 次のようなコマンドを使用できます。
./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
注:
ノードを置き換えたり、新しいノードにスケールアウトしたりする場合は、外部ドライバーをもう一度アップロードする必要があります。
次のコマンドを使用してアップロードされたファイルを確認します。
./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
手順 3. の [宛先] の値を使用して、DriverLocation の値を使用してスキャンを作成します。
高可用性とスケーラビリティ
Kubernetes でサポートされているセルフホステッド統合ランタイムのインストール中にノード セレクターを使用して、Kubernetes クラスターの複数のノードを高可用性に割り当てることができます。 複数のノードを持つことの利点は次のとおりです。
- セルフホステッド統合ランタイムの可用性が高くなり、スキャンの単一障害点ではなくなりました。
- より多くの同時実行スキャンを実行します。 各ノードは、同時に多数のスキャン実行を支援できます。 より多くの同時スキャンが必要な場合は、Kubernetes クラスターのノードを手動でスケールアウトできます。
- Azure Blob、Azure Data Lake Storage Gen2、Azure Filesなどの一部のソースをスキャンする場合、各スキャン実行で複数のノードを使用してスキャンパフォーマンスを向上させることができます。 その他のソースの場合、スキャンはいずれかのノードでのみ実行されます。
Kubernetes でサポートされているセルフホステッド統合ランタイムの機能は、Kubernetes クラスターのノードを手動でスケールアウトまたはスケールインすることで更新できます。
注:
スキャンに必要なすべてのドライバーを新しいノードごとにアップロードする必要があります。
ネットワークの要件
ドメイン名 | 送信ポート | 説明 |
---|---|---|
パブリック クラウド: <tenantID>-api.purview-service.microsoft.com Azure Government: <tenantID>-api.purview-service.microsoft.us 中国: <tenantID>-api.purview-service.microsoft.cn |
443 | Microsoft Purview サービスに接続するために必要です。 Microsoft Purview プライベート エンドポイントを使用する場合、このエンドポイントはアカウントのプライベート エンドポイントでカバーされます。 |
パブリック クラウド: <purview_account>.purview.azure.com Azure Government: <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 Government: <managed_storage_account>. blob.core.usgovcloudapi.net または<ingestion_storage_account>. blob.core.usgovcloudapi.net 中国: <managed_storage_account>.blob.core.chinacloudapi.cn or <ingestion_storage_account>.blob.core.chinacloudapi.cn |
443 | Microsoft Purview マネージド Azure Blob Storage アカウントに接続するために必要です。 |
パブリック クラウド: <managed_storage_account>.queue.core.windows.net または <ingestion_storage_account>.*.queue.storage.azure.net Azure Government: <managed_storage_account>. queue.core.usgovcloudapi.net または<ingestion_storage_account>. queue.core.usgovcloudapi.net 中国: <managed_storage_account>.queue.core.chinacloudapi.cn or <ingestion_storage_account>.queue.core.chinacloudapi.cn |
443 | Microsoft Purview マネージド Azure Queue ストレージ アカウントに接続するために必要です。 |
パブリック クラウド: *.compute.governance.azure.com Azure Government: *.compute.governance.azure.us 中国: *.compute.governance.azure.cn |
443 | Microsoft Purview サービスに接続するために必要です。 現在、専用リソースがないため、ワイルドカードが必要です。 |
mcr.microsoft.com | 443 | イメージをダウンロードするために必要です。 |
*.data.mcr.microsoft.com | 443 | イメージをダウンロードするために必要です。 |
注:
ユーザーがスキャンするソースに応じて、他の Azure または外部ソースの他のドメインと送信ポートも許可する必要があります。
バージョン
通常、セルフホステッド統合ランタイムの新しいマイナー バージョンを毎月 1 つリリースします。これには、機能、拡張機能、バグ修正が含まれます。
セルフホステッド統合ランタイムの各バージョンの有効期限は 1 年です。
現在のバージョンをチェックする方法
Kubernetes セルフホステッド統合ランタイムのバージョンは、ポータルまたは IRCTL でチェックできます。
ポータル
- Microsoft Purview ポータルで、[データ マップ] に移動します。
- 統合ランタイムの選択
- 統合ランタイムの説明行の 4 番目の列は Version になり、そこでバージョンをチェックできます。
IRCTL (1.1.0 以降)
describe コマンドは、統合ランタイムのバージョンを返します。
./irctl describe
自動更新
バージョン 1.1.0 以降、Kubernetes セルフホステッド統合ランタイムは自動更新をサポートしており、既定で有効になっています。 この機能により、統合ランタイムが月に約 1 回、最新の Microsoft マネージド バージョンに自動的にアップグレードされます。
オプトアウト
最新の機能と拡張機能の恩恵を受けるために、自動更新を有効にしておくことをお勧めします。 ただし、IRCTL を使用して自動更新をオプトアウトすることもできます。 自動更新構成は再インストールによって保持されるため、各インストールで無効にする必要はありません。
./irctl config set autoUpdate.enabled false
./irctl config view
自動更新バージョンと最新バージョン
安定性を確保するために、自動更新は通常、1 か月の遅延で最新バージョンより遅れています。 自動更新バージョンは Microsoft によって管理されます。
統合ランタイムを新しいバージョンにアップグレードする場合は、特定のバージョン の IRCTL を使用して手動アップグレードを実行する必要があります。