#はじめに
AKSはコンテナオーケストレーションサービスであるKubernetesの環境をオールインワンで提供するAzureのPaaSです。極めて簡単に使い始められますが、環境の準備に少しクセがあるため、ちょっとつまづいたりします。この記事は、その「つまづき」を無くしてスムーズに使い始めるためのガイドです。
#環境セットアップ
Azureのセットアップ
Azure側のセットアップは特に悩むところはないと思うので、さらっとだけ説明すると、Azure管理ポータルに行き、検索窓で「AKS」を検索 → 画面の指示に従ってリソースグループの名前やクラスターの名前を付け、コンピューティングリソースの数(VMの数)を選んで作成するだけです。
リソースグループやクラスターの名前は、後からダッシュボードに接続する時などにも使いますし、分かりやすい名前にしておいた方が良いでしょうね。
作成実行をしてからクラスターができあがるまで、けっこうな時間がかかります。小一時間はかかるので、お茶でも飲んでゆっくり待ちましょう。
操作端末(Windowsクライアント)のセットアップ
コマンドで操作するのは手間ですからGUIベースで操作できるようにしたいので、Kubernetes ダッシュボードに接続できるようにします。こちらがけっこうやっかいで、いっぱいつまづきます。よく注意しましょう。
Azureでクラスターの作成が終わったら、Azure管理ポータル上で作成したAKSインスタンスの概要ページを開くと「Kubernetes ダッシュボードを表示」というアイコンというかリンクがあるので、そこをクリックすると↓のような画面が開きます。まずはこの画面の手順でセットアップするんですが、ここの説明が大ざっぱで書いてないことが多いため、詳しくないとつまづくんですよね。
- 最初にAzure Cliをインストールします。最新版を入れましょう。インストーラーは↓にあります。
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-windows?view=azure-cli-latest - PowerShellを「管理者モード」で起動します。(PowerShellのアイコンを右クリック→「管理者として実行」で開く)
-
az aks install-cli
コマンドを実行(エラーっぽいメッセージ「Please ensure that C:\Program Files (x86) is in your search PATH, so thekubectl.exe
command can be found.」が表示されますが、これはエラーではありません。パスを通しておこうねという注意文言です。) - kubectl.exeが "C:\Program Files (x86)" にインストールされるので、環境変数にパスを通しておく。(WindowsのGUIで環境変数に追加しておくのが無難。)
-
az login
する
AKSをセットアップしたAzureのユーザーでログインしましょう。 -
az account set --subscription "サブスクリプション名"
でサブスクリプションを選択
AKSがセットアップされているサブスクリプションを選択します。もしサブスクリプション名が分からない場合はaz account list --output table
で表示できます。 - Azure管理ポータルの「Kubernetes ダッシュボード」のウインドウ(上図)から3番の資格情報取得と4番のダッシュボードを開くコマンドをそれぞれコピペしてPowerShellで実行します。
ここまですると、ローカルPCでプロキシーが起動してブラウザが立ち上がり、Azure上のKubernetesクラスターのダッシュボードが表示されます。
###要注意
このままダッシュボードを開くと、Forbiddenエラーなどが頻発していて情報が見られない状態になっているはずですので、権限設定をしましょう。(参考:KubernetesにDashboardをインストールして、認証なしでアクセスする)
Azure管理ポータル上のクラウドシェルを起動し、以下の通り実行します。
$ cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
EOF
これで正しく表示されるようになります。
あとはダッシュボードでいろいろいじってみましょう。