Azure
docker
kubernetes

Azure Container Service で Kubernetes

概要

以下の公式チュートリアルが参考になりますが、Azure Cloud Shell での手順になっておりローカルマシンのTerminal上でやりたい場合は一手間必要だったり、権限系ではまったりしたので、手順をまとめます。

この記事は Azure Container ServiceKubernetes クラスタを作って、ローカルにインストールした kubectl でマスタに接続するまで〜の手順です。

  1. Azure CLIkubectl コマンド をインストールする
  2. Azureログインユーザーをサブスクリプションの所有者にする
  3. Azure Container ServiceKubernetes クラスタを作る
  4. kubectlKubernetes マスタに接続する

Azure CLI、kubectl コマンドをインストールする

For Windows

  1. Azure CLI Installer (MSI)Azure CLI をインストールする
  2. 管理者権限で Power Shell を開く
  3. $ az acs kubernetes install-cli

32bit版のkubectlはここからDownload

For Mac

  1. $ curl -L https://aka.ms/InstallAzureCli | bash
    • $ brew install azure-cli でも可
  2. $ az acs kubernetes install-cli

Azureログインユーザーをサブスクリプションの所有者にする

次手順で Azure CLI を使って Kubernetes クラスタを作っていきますが、Azureのログインユーザーが サブスクリプションの所有者 でなけれはクラスタの作成に失敗します。

Azure CLI でクラスタを構築する際に、Application ID、Access Keyの発行とサブスクリプションへの権限登録を裏で行っており、これが権限に引っかかります

ログインユーザーが既にサブスクリプションの所有者 (例えばルートアカウント) である場合は次の手順は不要です。そうでない場合は ルートアカウントで Azure Portal にログインしなおし、以降の手順を実施して下さい。

subscription-3.png

Subscriptions >> {Subscription名} >> Access control (IAM) で "+ADD" を押します。

subscription-1.png

サブスクリプションの所有者にしたいユーザーを選択して保存します。

subscription-2.png

Azure Container Service で Kubernetes クラスタを作る

以下のコマンドで Azure Portal への認証をします。URLとトークンIDが表示されるのでブラウザで開きます。

$ az login

To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code {トークンID} to authenticate.

リソースグループを作ります。

$ az group create --name rgroupname --location westus

Kubernetes クラスタを作ります。SSHの公開鍵 ~/.ssh/id_rsa.pub と秘密鍵 ~/.ssh/id_rsa が自動で作られます。

$ az acs create --orchestrator-type kubernetes --resource-group rgroupname --name clustername --agent-vm-size Standard_DS1_v2 --agent-count 1 --generate-ssh-keys

ここでエラーになる人は、前述の通りログインユーザーが「サブスクリプションの所有者」ではないと思います。

kubectl で Kubernetes マスタに接続する

Kubernetes クラスタのマスタノードに接続します。

$ az acs kubernetes get-credentials --resource-group rgroupname --name clustername

うまくいけば↓でクラスタノードの一覧が見れます。

$ kubectl get nodes

参考