# Azure Arc for AI Management

**Last updated:** 2026-02
**Status:** GA
**Category:** Hybrid Cloud & Edge AI

---

## Introduksjon

Azure Arc er Microsofts svar på utfordringen med å administrere AI-arbeidsbelastninger på tvers av hybride og multicloud-miljøer. For norsk offentlig sektor, der data kan befinne seg i egne datasentre, på Azure Local-klynger eller hos tredjeparts skyleverandorer, gir Arc en sentralisert kontrollflate som gjor det mulig å behandle alle Kubernetes-klynger som forsteklasses Azure-ressurser.

Med Azure Arc-enabled Kubernetes kan organisasjoner koble sammen klynger som kjorer lokalt, i Azure eller hos andre skyleverandorer, og administrere dem fra Azure Portal med ensartede policyer, overvaking og sikkerhetskontroller. Dette er spesielt verdifullt for AI-arbeidsbelastninger som krever GPU-akselerasjon, modellversjonering og sentralisert governance.

For offentlige virksomheter i Norge betyr dette at man kan overholde krav til datasuverenitet og plassering av data, samtidig som man drar nytte av Azures ML-plattform for trening og inferens pa tvers av distribuerte miljoer.

---

## Arkitekturoversikt

Azure Arc for AI Management bygger pa tre lag:

```
┌─────────────────────────────────────────────────┐
│            Azure Control Plane                   │
│  ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│  │  Azure   │ │  Azure   │ │   Azure Machine  │ │
│  │  Policy  │ │ Monitor  │ │    Learning      │ │
│  └────┬─────┘ └────┬─────┘ └───────┬──────────┘ │
│       │             │               │            │
│       └─────────────┼───────────────┘            │
│                     │ Azure Arc                  │
└─────────────────────┼───────────────────────────-┘
                      │
        ┌─────────────┼──────────────┐
        │             │              │
   ┌────▼───┐   ┌────▼───┐   ┌─────▼──────┐
   │ On-prem│   │ Azure  │   │ Multi-cloud│
   │ K8s    │   │  AKS   │   │ K8s        │
   │ Cluster│   │ Cluster│   │ Cluster    │
   └────────┘   └────────┘   └────────────┘
```

---

## Arc-enabled Kubernetes for AI

### Tilkobling av klynger

Azure Arc-enabled Kubernetes lar deg koble eksisterende Kubernetes-klynger til Azure for sentralisert administrasjon. Klynger kan kjore pa:

| Plattform | Stotte | Beskrivelse |
|-----------|--------|-------------|
| AKS i Azure | Innebygd | Fullt administrert Kubernetes i skyen |
| AKS pa Azure Local | GA | Kubernetes pa egne servere med Azure-integrasjon |
| Arc-enabled K8s (on-prem) | GA | Alle CNCF-sertifiserte klynger lokalt |
| Arc-enabled K8s (multicloud) | GA | AWS EKS, Google GKE, etc. |
| Edge-enheter | GA | Azure Stack Edge, IoT Edge-enheter |

### Tilkobling med Azure CLI

```bash
# Koble en on-premises klynge til Azure Arc
az connectedk8s connect \
  --name my-ai-cluster \
  --resource-group ai-rg \
  --location norwayeast

# Verifiser tilkobling
az connectedk8s show \
  --name my-ai-cluster \
  --resource-group ai-rg
```

### Arc-agenter

Nar en klynge kobles til Arc, installeres flere agenter:

| Agent | Funksjon |
|-------|----------|
| `clusteridentityoperator` | Administrerer managed identity for klyngen |
| `clusterconnectoperator` | Hndterer klynge-tilkobling |
| `configoperator` | Overvaker konfigurasjonsendringer |
| `controlleroperator` | Orkestrerer andre agenter |
| `fluxoperator` | GitOps-basert konfigurasjonsadministrasjon |
| `extensionoperator` | Installerer og administrerer klynge-extensions |

---

## Sentralisert ML-modellforvaltning

### Azure Machine Learning Extension

Azure Machine Learning-extensionen er kjernen i AI-forvaltning pa Arc-enabled klynger. Den lar deg bruke Arc-klynger som compute targets for bade trening og inferens.

**Installasjon:**

```bash
# Installer ML-extension pa Arc-enabled klynge
az k8s-extension create \
  --name aml-extension \
  --extension-type Microsoft.AzureML.Kubernetes \
  --cluster-type connectedClusters \
  --cluster-name my-ai-cluster \
  --resource-group ai-rg \
  --scope cluster \
  --configuration-settings \
    enableTraining=True \
    enableInference=True \
    inferenceRouterServiceType=LoadBalancer \
    allowInsecureConnections=True
```

**Koble til ML workspace:**

```bash
# Attach klynge til Azure ML workspace
az ml compute attach \
  --resource-group ai-workspace-rg \
  --workspace-name ai-workspace \
  --type Kubernetes \
  --name arc-compute \
  --resource-id "/subscriptions/<sub>/resourceGroups/ai-rg/providers/Microsoft.Kubernetes/connectedClusters/my-ai-cluster" \
  --namespace ai-workloads
```

### Bruksmonster for Kubernetes Compute

| Monster | Data | Trening | Inferens | Bruksomrade |
|---------|------|---------|----------|-------------|
| Sky-forst | Sky | Azure | Azure | Standard ML-pipeline |
| Hybrid trening | Lokalt | Lokalt | Sky | Datasuverenitiet, global tilgang |
| Hybrid inferens | Sky | Sky | Lokalt | Latens, compliance |
| Full lokal | Lokalt | Lokalt | Lokalt | Strengt regulert |
| Multi-sky | Distribuert | Begge | Begge | Elastisitet + kontroll |

### KAITO - Kubernetes AI Toolchain Operator

KAITO forenkler deployment av open-source LLM-er pa Arc-enabled Kubernetes:

```yaml
# workspace-phi4.yaml - Deploy Phi-4-mini pa Arc-klynge
apiVersion: kaito.sh/v1alpha1
kind: Workspace
metadata:
  name: workspace-phi-4-mini
spec:
  resource:
    instanceType: Standard_NC4_A2
    labelSelector:
      matchLabels:
        apps: llm-inference
  inference:
    preset:
      name: phi-4-mini-instruct
```

**Stottede GPU-modeller for KAITO pa Azure Local:**

| GPU | VM SKU | Stottede modeller |
|-----|--------|-------------------|
| NVIDIA T4 | Standard_NK6 | Phi-3-mini-4k |
| NVIDIA A2 | Standard_NC4, NC8 | Phi-3-mini, Phi-3.5-mini |
| NVIDIA A16 | Standard_NC16, NC32 | Phi-4-mini, Mistral-7B, Qwen2.5 |

---

## Policy og Compliance Enforcement

### Azure Policy for Kubernetes

Azure Policy kan handheve governance-regler pa tvers av alle Arc-enabled klynger. For AI-arbeidsbelastninger er dette kritisk for a sikre:

- Konsistente sikkerhetsinnstillinger pa tvers av klynger
- Modell-deployment kun til godkjente noder
- Overholdelse av dataklassifisering og suverenitetskrav
- Standardiserte konfigurasjoner for GPU-ressurser

**Installasjon av Policy-extension:**

```bash
# Installer Azure Policy pa Arc-klynge
az k8s-extension create \
  --cluster-type connectedClusters \
  --cluster-name my-ai-cluster \
  --resource-group ai-rg \
  --extension-type Microsoft.PolicyInsights \
  --name azurepolicy
```

### Innebygde policyer for AI-governance

| Policy | Kategori | Effekt |
|--------|----------|--------|
| Kubernetes-klynger bor ikke tillate privilegerte containere | Sikkerhet | Deny |
| Kubernetes-klynger bor bruke interne lastbalanserere | Nettverk | Deny |
| Kubernetes-klynger bor ha Azure Policy-addon | Compliance | Audit |
| Kubernetes-klynger bor kun bruke godkjente container images | Supply chain | Deny |
| Kubernetes-klynger bor ha resursgrenser | Ressurs | Audit |

### Tilpassede policyer for AI

```json
{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Kubernetes/connectedClusters"
      },
      {
        "field": "tags['ai-workload']",
        "exists": true
      }
    ]
  },
  "then": {
    "effect": "auditIfNotExists",
    "details": {
      "type": "Microsoft.KubernetesConfiguration/extensions",
      "existenceCondition": {
        "field": "Microsoft.KubernetesConfiguration/extensions/extensionType",
        "equals": "Microsoft.AzureML.Kubernetes"
      }
    }
  }
}
```

---

## Multi-cluster AI Governance

### Azure Kubernetes Fleet Manager

For organisasjoner med mange AI-klynger gir Fleet Manager sentralisert koordinering:

| Funksjon | Beskrivelse |
|----------|-------------|
| Cluster grouping | Grupper klynger etter formål (trening, inferens, edge) |
| Update orchestration | Koordinerte oppdateringer pa tvers av klynger |
| Configuration propagation | Distribuer GitOps-konfigurasjoner til mange klynger |
| Multi-cluster networking | Service discovery pa tvers av klynger |

### GitOps-basert AI-modell-distribusjon

Bruk Flux v2 for a distribuere AI-modeller og konfigurasjoner:

```bash
# Konfigurer GitOps med Flux v2 for modell-deployment
az k8s-configuration flux create \
  --name ai-model-config \
  --cluster-name my-ai-cluster \
  --resource-group ai-rg \
  --cluster-type connectedClusters \
  --namespace ai-models \
  --scope namespace \
  --url https://github.com/org/ai-model-configs \
  --branch main \
  --kustomization name=models path=./models prune=true
```

### Overvaking med Azure Monitor

```bash
# Aktiver Container Insights pa Arc-klynge
az k8s-extension create \
  --name azuremonitor-containers \
  --cluster-name my-ai-cluster \
  --resource-group ai-rg \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers
```

**Viktige metrikker a overvake for AI-klynger:**

| Metrikk | Beskrivelse | Terskel |
|---------|-------------|---------|
| GPU-utnyttelse | Prosent GPU-bruk per node | >80% = skaler opp |
| GPU-minne | VRAM-forbruk | >90% = advarsel |
| Inferens-latens | P95 responstid | <500ms for real-time |
| Modell-versjon | Aktiv modellversjon | Match med registeret |
| Pod-restarts | Antall omstarter | >3 = undersok |

---

## Sikkerhetsarkitektur for Arc AI

### Defense in Depth

```
┌────────────────────────────────────────┐
│  1. Azure RBAC                         │
│  ┌──────────────────────────────────┐  │
│  │  2. Kubernetes RBAC              │  │
│  │  ┌────────────────────────────┐  │  │
│  │  │  3. Network Policy         │  │  │
│  │  │  ┌──────────────────────┐  │  │  │
│  │  │  │  4. Pod Security     │  │  │  │
│  │  │  │  ┌────────────────┐  │  │  │  │
│  │  │  │  │  5. Container  │  │  │  │  │
│  │  │  │  │  Security      │  │  │  │  │
│  │  │  │  └────────────────┘  │  │  │  │
│  │  │  └──────────────────────┘  │  │  │
│  │  └────────────────────────────┘  │  │
│  └──────────────────────────────────┘  │
└────────────────────────────────────────┘
```

### Microsoft Defender for Kubernetes

Defender gir trusselbeskyttelse for alle Arc-enabled klynger:

- Runtime-trusselbeskyttelse
- Sarbarhetsskanning av container images
- Sikkerhetskonfigurasjonskontroller
- Integrasjon med Microsoft Sentinel for SIEM

### Hemmelighetshaandtering

```bash
# Installer Azure Key Vault Secrets Provider
az k8s-extension create \
  --cluster-type connectedClusters \
  --cluster-name my-ai-cluster \
  --resource-group ai-rg \
  --extension-type Microsoft.AzureKeyVaultSecretsProvider \
  --name akvsecretsprovider
```

---

## Relevans for norsk offentlig sektor

### Datasuverenitetshensyn

| Krav | Arc-losning |
|------|-------------|
| Data ma forbli i Norge | On-prem klynge med Arc management |
| Sentralisert policy | Azure Policy handheves fra Norway East |
| Auditlog | Azure Monitor med lokal lagring |
| Kryptering | Key Vault med CMK i Norway East |
| Tilgangskontroll | Azure RBAC + Kubernetes RBAC |

### Anbefalte Azure-regioner

| Region | Bruk | Data residency |
|--------|------|----------------|
| Norway East | Primaer kontrollflate | Norge |
| Norway West | DR/backup | Norge |
| West Europe | Fallback, utvidede tjenester | EU/EFTA |

### NSM-krav og Arc

Nasjonal sikkerhetsmyndighet (NSM) sine grunnprinsipper for IKT-sikkerhet kan mappes mot Arc-kapabiliteter:

| NSM-prinsipp | Arc-kontroll |
|--------------|--------------|
| Kartlegg enheter og programvare | Arc inventory og tagging |
| Ha kontroll pa nettverk og systemer | Azure Policy, Network Policy |
| Beskytt data | Kryptering, Key Vault |
| Overlapp/overvak | Azure Monitor, Defender |
| Styring og kontroll | RBAC, governance hierarki |

---

## Begrensninger og hensyn

| Begrensning | Beskrivelse | Workaround |
|-------------|-------------|------------|
| Outbound connectivity | Arc krever utgaende HTTPS | Proxy-stotte tilgjengelig |
| Extension-kompatibilitet | Ikke alle extensions stotter alle distribusjoner | Sjekk kompatibilitetsmatrise |
| GPU-stotte | KAITO pa Arc kun for Azure Local (preview) | Bruk Azure ML extension for andre |
| Skalering | Ingen auto-scaling for Kubernetes compute i ML | Manuell skalering |
| Modellkatalog | Model Catalog ikke stottet pa Kubernetes endpoints | Bruk custom modeller |

---

## For Cosmo

- **Azure Arc er brokken mellom lokale AI-klynger og Azures skybaserte administrasjon** — alle Kubernetes-klynger blir forsteklasses Azure-ressurser med policy, overvaking og ML-integrasjon.
- **KAITO (Kubernetes AI Toolchain Operator) forenkler LLM-deployment** pa Arc-enabled klynger, spesielt pa Azure Local med GPU-stotte for Phi-4, Mistral og Qwen-modeller.
- **Azure Policy for Kubernetes handhever governance pa tvers av alle klynger** — fra on-prem til multicloud — med innebygde og tilpassede policyer for AI-arbeidsbelastninger.
- **For norsk offentlig sektor er Arc losningen for "data forblir lokalt, styring fra skyen"** — kontrollflaten i Norway East, data pa egne servere, med full auditlog og kryptering.
- **Multi-cluster governance med Fleet Manager og GitOps** gir skalerbar, deklarativ modell- og konfigurasjonsstyring for distribuerte AI-miljoer.
