ヒトリ歩き

愚痴とかいろいろ書きます

Kubernetesクラスターの作成でつまづいた

時代に乗り遅れかけているので、下記の書籍でKubernetesの勉強を始めました。

クラウドはAzureの無料枠を使ってますが、Kubernetesクラスターの作成時につまづいたので、同じようにつまづいた人の参考になれば良いなと思い、メモっておく。

Kubernetesのバージョンがサポートされていない

Kubernetesクラスターを作成するために以下のコマンドを実行するのだが、エラーとなる。

az aks create --name $AKS_CLUSTER_NAME --resource-group $AKS_RES_GROUP --node-count 3 --kubernetes-version 1.11.4 --node-vm-size Standard_DS1_v2 --generate-ssh-keys --service-principal $APP_ID --client-secret $SP_PASSWD

エラー内容としては下記の通り、Kubernetesのバージョンがサポートされていないからだ。

BadRequestError: Operation failed with status: 'Bad Request'. Details: Version 1.11.4 is not supported in this region. Please use [az aks get-versions] command to get the supported version list in this region. For more information, please check https://aka.ms/supported-version-list

[解決策] バージョンを確認しよう

locationがサポートしているバージョンを確認して、サポートされているバージョンを選択するようにしましょう。 バージョンの確認は、az aks get-versions で可能。
--location を付けるのをお忘れなく。
2021年1月17日時点では下記のような結果となった。

az aks get-versions --location japaneast --output table
KubernetesVersion    Upgrades
-------------------  -------------------------
1.19.6               None available
1.19.3               1.19.6
1.18.14              1.19.3, 1.19.6
1.18.10              1.18.14, 1.19.3, 1.19.6
1.17.16              1.18.10, 1.18.14
1.17.13              1.17.16, 1.18.10, 1.18.14
1.16.15              1.17.13, 1.17.16
1.16.13              1.16.15, 1.17.13, 1.17.16

リソース問題発生

Kubernetesのサポートバージョンを訂正してもエラーが発生する。
次のエラーは下記のようなエラーが発生した。

BadRequestError: Operation failed with status: 'Bad Request'. Details: System node pool must use VM sku with more than 2 cores and 4GB memory. Nodepool name: nodepool1.

2coreで4GBメモリのVMじゃないとダメだそうで、Standard_DS1_v2のリソースを確認。 Standard_DS1_v2は、1core、3.5GiBのようなので不足している。

docs.microsoft.com

[解決策] リソースの変更

Standard_DS1_v2だとCPUが明らかに不足しているので、Standard_DS2_v2に変更する。

リソース不足

Standard_DS2_v2を指定して実行してみたところ、エラーが発生した。 どうやら、無料枠でできる範囲を超えているらしい。

BadRequestError: Operation failed with status: 'Bad Request'. Details: Provisioning of resource(s) for container service AKSCluster in resource group AKSCluster failed. Message: Operation could not be completed as it results in exceeding approved Total Regional Cores quota. Additional details - Deployment Model: Resource Manager, Location: japaneast, Current Limit: 4, Current Usage: 0, Additional Required: 6, (Minimum) New Limit Required: 6. Submit a request for Quota increase 

[解決策] ノード数を2で実行する

ノード数を3から2に変更する。

3つの問題を乗り越えてKubernetesクラスターが作成できた

3つの問題を解決してなんとかKubernetesクラスターが作成できた。
3つ作るはずが、2つだけになってしまったので書籍の途中で何か影響があるかもしれないが、無料枠なので割り切ることにする。
とりあえず、無料枠の期間内には書籍を読み終わりたい・・・

az aks create --name $AKS_CLUSTER_NAME --resource-group $AKS_RES_GROUP --node-count 2 --kubernetes-version 1.19.6 --node-vm-size Standard_DS2_v2 --generate-ssh-keys --service-principal $APP_ID --client-secret $SP_PASSWD