LoginSignup
6

More than 5 years have passed since last update.

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

Posted at

こんにちは、 @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 を入れようとして奮闘した情報はこちら!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6