Check! Azure Container Service (ACS) で新着の Kubernetes を試す

  • 3
    Like
  • 0
    Comment
More than 1 year has passed since last update.

こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに

Azure Container Service (ACS) のコンテナ基盤に、 Kubernetes が仲間入りしました!

早速試してみます (b’v`★)

とはいえ、 Kubernetes は初めて触るので、その点はご容赦くださいませ^^;

作業環境

環境

  • Azure Container Service
  • クライアント
    • Windows 10
    • Bash on Windows (≒ Ubuntu 14.04)

備考

  • Azure のアカウントがある前提で進めます。
  • Azure Container Service は、接続に SSH を使います。ここでは ssh-agent (Bash on Windows) を使って進めます。環境に合わせて適宜読み替えてください。
    • ACS を作成するときに、SSH 公開鍵を登録する
    • SSH でマスターノードに接続する

Azure Container Service (ACS) で Kubernetes 環境を作ってみる

それではさっそく、画面に倣って進みます。

リソースの新規作成画面から、 Azure Container Service を選択し、作成します。

20161112_kubernetes-on-acs_009.png

それぞれ項目に入力し、次へ進みます。

項目
User name 任意のユーザー名。マスターノードへの SSH接続時に使用する。
SSH public key SSH 公開鍵の文字列 (id_rsa.pub の内容 (ssh-rsa XXXXX...))。マスターノードへの SSH接続時に使用する。
サブスクリプション 使用するサブスクリプション
リソースグループ リソースグループ名
場所 リソースの配置場所

Orchestrator configuration では、 Kubernetes を選択します。すると、

20161112_kubernetes-on-acs_010.png

おや? 今までの DC/OS や Swarm 選択時にはなかった項目が表示されました。(下図参照) Service Principal というものが必要とのこと。

  • Service Principal Client ID
  • Service Principal Client Secret

Service Principals | Microsoft Azure Container Service Engine を確認すると、 Service Principal は Azure CLI 2.0 (Preview) 、旧 Azure CLI 、Azure PowerShell 、旧ポータルから作成できるようです。

なお、私は、最初 Azure CLI 2.0 で試みて Service Principal を発行することはできたのですが、ログインして確認する (az login --service-principal) でうまく認証が通らず、正しく作成できたのか判断できなかったので、旧 Azure CLI にて作り直しました。

Service Principal を入力して進みましょう。Container Service settings を入力し次に進みます。なお、 Agent count はコンテナが配置されるエージェントノードの個数です。これとは別に、マスターノードが作成されます。

項目
Agent count エージェントノードの個数
Agent virtual machine site エージェントノードのマシンサイズ
DNS prefix for container service 各ノードのインスタンス名のプレフィックス

20161112_kubernetes-on-acs_011.png

それぞれ内容を確認して、作成します。

20161112_kubernetes-on-acs_012.png

しばらくするとデプロイが完了します。

20161112_kubernetes-on-acs_013.png

デプロイ完了!(。・ω・)ノ

Kubernetes on ACS に触ってみる

さて、ACSが準備できたら、接続して Kubernetes に触れてみます!このウォークスルーを参考に進めます。

今回は Bash on Windows (Ubuntu 14.04) から接続します。まず、登録した ssh公開鍵に対応するキーを登録しておきます。

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa

次に、ポータルの ACS のリソースグループで、前回のデプロイを開き、SSHMATER0 の値をコピーします。これは、マスターノードへの接続用コマンドです。

20161112_kubernetes-on-acs_014.png

ただし、このコマンドのまま実行すると以下のエラーでつながらないです。

$ ssh user@xxxmgmt.japaneast.cloudapp.azure.com -A -p 2200

ssh: connect to host xxxmgmt.japaneast.cloudapp.azure.com port 2200: Resource temporarily unavailable

このコマンドでは 2200 ポートを指定していますが、ネットワーク セキュリティ グループを確認してみると、 22 と 443 しか開いていないようです。なので、ポート指定をせずに接続しました。

# Kubernetes のマスターノードに SSH 接続する
$ ssh user@xxxmgmt.japaneast.cloudapp.azure.com -A

Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-28-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

130 packages can be updated.
52 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

つながった!

どれどれ、 kubectl コマンドを使ってみると、

# Kubernetes のノード情報を表示する
$ kubectl get nodes

NAME                    STATUS                     AGE
k8s-agent-55298537-0    Ready                      3h
k8s-agent-55298537-1    Ready                      3h
k8s-master-55298537-0   Ready,SchedulingDisabled   3h

うむ、ノードも無事に認識しているようですね。おけっ! (b’v`★)

Epilogue - おわりに

Kubernetes 初心者でも、クラスタ作るところまでは問題ないですね!

続きは、さらに Kubernetes をもうちょっと勉強してから試してみます~

ちなみに、私が Bash on Windows に Azure CLI 2.0 を入れようとして奮闘した情報はこちら!