Azure Provider 정의

Terraform에서 제공하는 Azure provider를 사용하려면 client_id, client_secret, tenant_id, subscription_id 정보가 있어야 한다.

provider "azurerm" {
  features {}

  client_id       = var.client_id
  client_secret   = var.client_secret
  tenant_id       = var.tenant_id
  subscription_id = var.subscription_id
}

Azure resource 그룹 생성

이미 있다면

data "azurerm_resource_group" "ml_prod" {
  name = "ml-prod"
}

새로 생성한다면

resource "azurerm_resource_group" "ml_prod_ws" {
  name     = "ml_prod_ws"
  location = "koreacentral"
}

Azure Arc 생성

agent_public_key_certificate에는 certificate-authority-data를 넣어주면 된다.

Untitled

Azureml SDK에서 Arc kubernetes에 등록된 외부 cluster를 사용하려면 Arc cluster를 생성한 후 그 안에 Microsoft.AzureML.Kubernetes도 설치해야 한다.

resource "azurerm_arc_kubernetes_cluster" "onprem_c002_cluster" {
  name                         = "onprem-c002"
  resource_group_name          = data.azurerm_resource_group.ml_prod.name
  location                     = data.azurerm_resource_group.ml_prod.location
  agent_public_key_certificate = var.c002_certificate_authority_data

  identity {
    type = "SystemAssigned"
  }
}

resource "azurerm_arc_kubernetes_cluster_extension" "onprem_c002_ext" {
  name           = "onprem-c002"
  cluster_id     = azurerm_arc_kubernetes_cluster.onprem_c002_cluster.id
  extension_type = "Microsoft.AzureML.Kubernetes"
  identity {
    type = "SystemAssigned"
  }

  configuration_settings = {
    "scope" : "cluster",
    "enableTraining" : true,
  }
}

확인

Azure arc 에서 해당 cluster Overview 화면에 이렇게 떠야 정상임

Untitled