Azure Kubernetes Serviceを使ってみた

Qiitaのキャンペーンに乗っかってAKSを作ってみようと思った。
個人的なスタンスとしては自前Kubernetesクラスター万歳派。
https://qiita.com/rk05231977/items/9f4ce13d3cd285891fd7


# VSCodeでAKSクラスターを作る（失敗）

VSCodeのKubernetesプラグインにCreate Clusterというメニューがあり、せっかくの機会なのでそれを使ってAKSクラスター作ってみようかなと。
以下の画面のそれ、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/e2873540-863d-a51b-a717-33a37e4ae166.png)

Cluster typeにAzure Kubernetes Serviceがあるのでそれを選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/8b298051-10f3-90c7-6087-5b53a7d14bd3.png)

az loginで表示されるサブスクリプション名が `{"name": "従量課金"}` となっているのが原因なのだろうけど、なんか文字化けしてる。
それでもまあ、Nextをクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/a4b917a2-febb-b832-e747-854771181c05.png)

空の画面が表示されて無反応に。えぇ。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/4550a4c2-6aef-ebb4-b507-6b5f04e80e9e.png)

まあ、VSCodeのPluginがAzureの販促目的なのに発表されてこの方全くやる気がないのは知ってた。
Dashboardが意味不明なエラーで開けないのもずっと変わらないらしいし。

それはともかく。

# Web UIでAKSクラスターを作る

AzureのコンソールからAKSを作ってみる。
クラスター作るのは、まあクラスター名何にしようかくらいしか悩むことなくデフォルト値を受け入れて作成完了。
「接続」のヘルプ画面で、サンプルコマンドがコメント含めて全選択となり、部分選択もできず、そのままcmdプロンプトに張り付けるとエラーになるのが若干不満。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/20363ab0-1e1a-f659-76c3-1774e80338cd.png)

ちょっと探してみた感じでは、Kubernetes DashboardのWeb UIにアクセスする方法はないっぽい。
Podの一覧を確認するも、そのようなPodは無し。

```
C:\>kubectl get pod -A -o wide
NAMESPACE     NAME                                  READY   STATUS    RESTARTS   AGE   IP           NODE                                NOMINATED NODE   READINESS GATES
kube-system   azure-ip-masq-agent-5fxvl             1/1     Running   0          24m   10.240.0.6   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   coredns-autoscaler-54d55c8b75-2gdts   1/1     Running   0          25m   10.244.0.4   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   coredns-d4866bcb7-ncjwt               1/1     Running   0          24m   10.244.0.5   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   coredns-d4866bcb7-t85pl               1/1     Running   0          25m   10.244.0.6   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   kube-proxy-rxthd                      1/1     Running   0          24m   10.240.0.6   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   metrics-server-569f6547dd-sskdc       1/1     Running   0          25m   10.244.0.7   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   omsagent-2fw84                        2/2     Running   0          24m   10.244.0.2   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   omsagent-rs-544f8d76b8-vwsgb          1/1     Running   0          25m   10.244.0.8   aks-agentpool-24655092-vmss000002   <none>           <none>
kube-system   tunnelfront-6985f7cc75-v87w2          1/1     Running   0          25m   10.244.0.3   aks-agentpool-24655092-vmss000002   <none>           <none>
```

metrics-server動いているのか。kubectl topコマンドは動作する。

```
C:\>kubectl top node
NAME                                CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
aks-agentpool-24655092-vmss000002   194m         10%    1278Mi          28%
```

Dashboardは使えなくても、yamlのマニフェストをGUIでデプロイするくらいは出来てほしいなと思ったら、Azureコンソールの「デプロイの作成」から出来ることが分かった。まあ、それが有ればいいか。。？

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/57fd3ca2-0e86-5d01-20ea-94f285b1a84b.png)|
|:|

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/fb7c272a-8ee0-8001-cd7e-90fe59076336.png)|
|:|

とりあえずクイックスタート アプリケーションをデプロイしてみる。

・・・あ、いや、AKSのコンソール自体がダッシュボードになっているのか、気が付かなんだ。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/0d5a2ee5-af01-d979-1944-861a7e24186b.png)|
|:|

さて、サンプルアプリをデプロイしてみたが、frontのロードバランサーが10分以上待ってもOKにならない。これはちょっと遅い。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/8a294c09-6391-9e38-50d4-36092db07a6b.png)|
|:|

さすがに遅すぎて変だなと思ったら「Error syncing load balancer: failed to ensure load balancer: instance not found」なるイベントが。

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/592692f4-9131-f534-d80e-509f7065a420.png)|
|:|

エラーメッセージをググってみると以下の記事が。
Botが「If this case is urgent, please open a Support Request so that our 24/7 support team may help you faster.」と返してくる圧倒的塩対応。

https://github.com/Azure/AKS/issues/2026


# さいごに

人類がどうかはともかく私にはAKSは早すぎた。自前Kubernetesクラスター最高。


# 後日談

実際に使っていたのは30分くらいだと思うがその間に発生した料金は54円くらい。1000円超えるようなら返金請求しようと思ったが、動かなくてもこれくらいなら暇つぶしに付き合ってくれた分くらいで悪くはないか。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146381/601c0ab2-ccee-ff15-7d66-c543eff9349e.png)