Azure Kubernetes Service (AKS)クラスタをTerraformで構築する
はじめに
これまで手動で行っていた個人ユースのAzure Kubernetes Service (AKS)クラスタの構築を, 公式のドキュメントを参考にTerraformでのものに変更した.その際のメモ.
[toc]
成果物
GitHub - mickey390/aks-terraform: AKSのクラスタをTerraformでおこなう
気になる点
ログのワークスペース名はユニークに
ログのワークスペース名は、Azure全体?でユニークでないとだめっぽい. クラスタを再構築することも鑑み,ひとまずランダムな数値を名前に入れた.
* azurerm_log_analytics_workspace.test: operationalinsights.WorkspacesClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: autorest/azure: Service returned an error. Status= Code="Conflict" Message="The workspace name 'testLogAnalyticsWorkspaceName' is not unique" Target="name"
Dashboardへの権限付与
Azureのコンソールに,k8sへのダッシュボード表示リンクがある↓.
その際に,権限がなくリソースが表示されない場合は↓を実施.
kubectl create clusterrolebinding kubernetes-dashboard \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:kubernetes-dashboard
利用可能なk8sのversionを確認
以下のコマンドで確認した
az aks get-versions -l japaneast | fzf
利用可能なVMのサイズの確認
ドキュメントを見つけられなかった. Cloud Shell(bash)で以下のコマンドを入力しつつ<tab>を2回押すと利用できる?らしいVMの一覧が出てきた.
az aks create --l japaneast -s Standard_ <tab押す*2> Standard_A1 Standard_D13_v2 Standard_D64s_v3 Standard_DS3 Standard_F16s Standard_GS5 Standard_A1_v2 Standard_D13_v2_Promo Standard_D64_v3 Standard_DS3_v2 Standard_F16s_v2 Standard_GS5-16 ・・・・・・・・
デフォルトはStandard_DS2_v2
だが,お高いのでひとまずStandard_B2s
にした.
簡単にアプリケーションをデプロイしたが支障なく動いた.
バーストするタイプのインスタンスらしいので、リソースに注意.
https://github.com/Azure/azure-cli/pull/5393