APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

Azure IaCツール BicepでAKSのFlux、Dapr、KEDAを有効にする

はじめに

皆さんご存知の通り、AKSではFluxDaprKEDAがサポートされています。 あるのは知っているんだけど、AKSをプロビジョニングする際これらの機能をどうやって有効にするか、意外と覚えていないものです。今回はそれをご紹介したいと思います。

(何割かは自分向けの備忘録でもあります)

有効化方法

実は有効の方法はKEDAと、Flux/Daprとでは少し違います。

KEDA

KEDAを有効にするには AKSプロビジョニング時のオプションとして指定します。

resource aks 'Microsoft.ContainerService/managedClusters@2023-10-01' = {
  name: clusterName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
  sku: {
    name: 'Base'    // Fixed value
    tier: clusterSku
  }
  properties: {
    // 省略
    workloadAutoScalerProfile: {
      keda: {
        enabled: enableKeda
      }
    }
    // 省略
    

properties.workloadAutoScalerProfile.keda.enabled を指定することでKEDAが有効になります。

learn.microsoft.com

プロビジョニング後、以下のコマンドで結果が確認できます。

az aks show -g myResourceGroup --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled"

Flux と Dapr

FluxとDaprは Microsoft.KubernetesConfiguration/extensions を使って有効にします。

Fluxはこんな感じです。

param clusterName string 
param fluxName string
param fluxNamespace string = 'flux-system'
param autoUpgradeMinorVersion bool =  true

resource aks 'Microsoft.ContainerService/managedClusters@2022-04-01' existing = {
  name: clusterName
}

resource flux 'Microsoft.KubernetesConfiguration/extensions@2022-11-01' = {
  name: fluxName
  scope: aks
  properties: {
    extensionType: 'microsoft.flux'
    scope: {
      cluster: {
        releaseNamespace: fluxNamespace
      }
    }
    autoUpgradeMinorVersion: autoUpgradeMinorVersion
  }
}

Daprはこんな感じになります。

param clusterName string 
param daprName string
param daprNamespace string = 'dapr-system'
param autoUpgradeMinorVersion bool =  true

resource aks 'Microsoft.ContainerService/managedClusters@2022-04-01' existing = {
  name: clusterName
}

resource dapr 'Microsoft.KubernetesConfiguration/extensions@2022-11-01' = {
  name: daprName
  scope: aks
  properties: {
    extensionType: 'Microsoft.Dapr'
    scope: {
      cluster: {
        releaseNamespace: daprNamespace
      }
    }
    autoUpgradeMinorVersion: autoUpgradeMinorVersion
  }
}

これらを実行すると有効になります。

まとめ

わかってしまえば簡単ですが、実は今回Daprの有効化の方法についてなかなか見つけられなかったため、のちのち誰か同じことを調べるだろう(未来の自分も含みます)と考え記録として残そうと思いました。お役にたてば幸いです。