Kubernetes 지원 자체 호스팅 통합 런타임 만들기 및 관리
이 문서에서는 기본 인프라를 개선하여 몇 가지 이점을 제공하는 Linux용 Kubernetes 기반의 새로운 SHIR 기능에 대한 세부 정보를 설명합니다.
- 확장성: 수백 대의 컴퓨터로 확장할 수 있습니다.
- 성능: 워크로드 검사의 성능이 향상되었습니다.
- 보안 (컨테이너화): Windows 컴퓨터에서 SHIR을 직접 호스팅하는 대신 Kubernetes 클러스터에서 컨테이너화된 보안을 갖는 기능
이 문서에서는 Kubernetes 지원 자체 호스팅 통합 런타임을 설치하고 관리하는 세부 정보를 설명합니다.
지원되는 데이터 원본
지원되는 모든 원본 목록은 각 통합 런타임 테이블에 대해 지원되는 데이터 원본을 참조하세요.
아키텍처
높은 수준의 아키텍처 보기에서 Kubernetes 기반 SHIR이 설치되면 사용자의 Kubernetes 클러스터 노드에서 여러 Pod가 자동으로 생성됩니다. 이 설치는 IRCTL이라는 명령줄 도구에 의해 트리거될 수 있습니다(다음 섹션에서 자세히 설명). IRCTL은 Microsoft Purview 서비스에 연결하여 SHIR을 등록하고 Kubernetes 클러스터에 연결하여 SHIR을 설치합니다.
설치하는 동안 SHIR 이미지는 MCR(Microsoft Container Registries)에서 SHIR Pod로 다운로드됩니다. 설치가 완료되면 사용자 클러스터의 Pod가 Microsoft Purview 서비스에 연결되어 검사 작업을 가져옵니다. 검사 작업을 끌어오면 사용자의 온-프레미스 데이터 원본을 데이터 스캔에 연결할 수 있습니다.
필수 구성 요소
엔터프라이즈 데이터 거버넌스 솔루션을 사용하는 Microsoft Purview 계정입니다.
Kubernetes 클러스터: 기존 Linux 기반 Kubernetes 클러스터가 있거나 준비해야 합니다. 노드는 Kubernetes 노드 선택기의 정의에 따라 노드 선택기를 통해 식별할 수 있습니다. 최소 구성:
- 컨테이너 유형: Linux
- Kubernetes 버전: 1.24.9 이상
- 노드 OS: x86 아키텍처에서 실행되는 Linux 기반 OS
- 노드 사양: 최소 8코어 CPU, 32GB 메모리 및 80GB 이상의 사용 가능한 하드 디스크 공간
- 노드 수: >=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 지원 자체 호스팅 통합 런타임 설정
Microsoft Purview 데이터 맵 통합 런타임 창을 엽니다.
-
새 Microsoft Purview 포털을 사용하는 경우:
- 데이터 맵 열기
- 원본 관리 선택
- 통합 런타임 선택
-
클래식 Microsoft Purview 거버넌스 포털을 사용하는 경우:
- 데이터 맵 열기
- 통합 런타임 선택
-
새 Microsoft Purview 포털을 사용하는 경우:
+ 새로 만들기 단추를 선택합니다.
자체 호스팅을 선택한 다음, 계속을 선택합니다.
런타임에 이름을 지정한 다음 , Kubernetes 서비스 지원 토글을 선택하여 사용하도록 설정합니다.
만들기를 선택합니다.
등록 키 가져오기를 선택합니다.
키 값을 복사합니다. 나중에 IRCTL에서 명령을 실행하려면 이 명령이 필요합니다.
팁
필요한 경우 키를 다시 생성하거나 생성된 키를 해지할 수 있습니다.
IRCTL 다운로드 및 통합 런타임 설치 링크를 선택하여 IRCTL 도구를 다운로드합니다. (다음 단계에 따라 IRCTL을 직접 다운로드할 수도 있습니다.)
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 구성에서 컨텍스트를 지정합니다.
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 관리에서 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 클러스터의 노드를 수동으로 스케일 아웃/인하여 업데이트할 수 있습니다.
참고
각 새 노드에서 검사하는 데 필요한 모든 드라이버를 업로드해야 합니다.
네트워킹 요구 사항
Domain name | 아웃바운드 포트 | 설명 |
---|---|---|
퍼블릭 클라우드: <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 또는 <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 또는 <ingestion_storage_account>.queue.core.chinacloudapi.cn |
443 | Microsoft Purview 관리형 Azure Queue Storage 계정에 연결하는 데 필요합니다. |
퍼블릭 클라우드: *.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년 후에 만료됩니다.
현재 버전을 검사 방법
포털 또는 IRCTL을 사용하여 Kubernetes 자체 호스팅 통합 런타임의 버전을 검사 수 있습니다.
포털
- Microsoft Purview 포털에서 데이터 맵으로 이동합니다.
- 통합 런타임 선택
- 통합 런타임의 설명 줄에 있는 네 번째 열은 버전이 되며, 버전이 검사 수 있습니다.
IRCTL(1.1.0 이상)
describe 명령은 통합 런타임의 버전을 반환합니다.
./irctl describe
자동 업데이트
버전 1.1.0부터 Kubernetes 자체 호스팅 통합 런타임은 기본적으로 사용하도록 설정된 자동 업데이트를 지원합니다. 이 기능을 사용하면 통합 런타임이 한 달에 한 번 정도 최신 Microsoft 관리형 버전으로 자동으로 업그레이드됩니다.
옵트아웃
최신 기능 및 향상된 기능을 활용하려면 자동 업데이트를 사용하도록 설정하는 것이 좋습니다. 그러나 IRCTL을 사용하여 자동 업데이트를 옵트아웃하는 옵션이 있습니다. 자동 업데이트 구성은 다시 설치를 통해 유지되므로 설치할 때마다 사용하지 않도록 설정할 필요가 없습니다.
./irctl config set autoUpdate.enabled false
./irctl config view
자동 업데이트 버전과 최신 버전 비교
안정성을 보장하기 위해 자동 업데이트는 일반적으로 1개월 지연으로 최신 버전 뒤에 있습니다. 자동 업데이트 버전은 Microsoft에서 관리합니다.
통합 런타임을 최신 버전으로 업그레이드하려면 특정 버전의 IRCTL을 사용하여 수동 업그레이드를 수행해야 합니다.