Azure Kubernetes Service のデプロイに挑戦

オウルです。
今回は Azure のKubernetes マネージドサービスである Azure Kubernetes Service のデプロイに挑戦します。
Azure Kubernetes Service をデプロイするためには、Azure サブスクリプションが必要です。この記事でAzure 無料枠の紹介をしています。
また、Azure Cloud Shell を使用します。使用方法は、以下の公式リファレンスを参考にして下さい。
Azure Container Registryのデプロイ
※以降、Azure Container Registry を ACR と記載します。
CR
Azure コンテナー レジストリは、オープンソースの Docker Registry 2.0 に基づいた、管理された Docker レジストリ サービスです。 プライベート Docker コンテナー イメージを保存および管理する Azure コンテナー レジストリを作成および管理します。
Azure CLI を使用して Azure Kubernetes Service をデプロイします。
zure CLI
Azure CLI は、Azure リソースを管理するためのコマンドライン ツールです。
1. リソースグループの作成
ACR をデプロイするリソースグループを作成します。
2. ACR をデプロイ
1 で作成したリソースグループを指定してACR をデプロイします。
SKU は学習する開発者向けのオプションである Basic を指定します。
Azure Container Registry (ACR) は、SKU と呼ばれる複数のサービス階層で使用できます。 これらの SKU は、Azure におけるプライベート Docker レジストリの容量と使用パターンに合ったさまざまなオプションと予測可能な価格を提供します。
Azure Kubernetes Service のデプロイ
※以降、Azure Kubernetes Service を AKS と記載します。
まず、AKS Cluster が ACR と対話できるようにするために、Azure Active Directory のサービスプリンシパルを作成します。
ービスプリンシパル
サービス プリンシパルは、リソース/サービス レベルの無人操作を実行する目的でテナント内で作成する Azure Active Directory アプリケーション リソースです。 アプリケーション ID とパスワードまたは証明書が与えられた、独自のユーザー ID です。 サービス プリンシパルには、割り当てられたロールとアクセス許可によって定義されるタスクを実行するために必要な権限のみが与えられます。
3. サービスプリンシパルを作成
上記を実行すると以下の出力結果が表示されます。
この後の操作で必要となりますので、コピーして保存します。
4. ACR のリソースIDを取得
5. ロールを割り当る
ACR のDocker イメージを使用するために適切なロールを割り当てます。
< appId >:
3 の出力結果の”appId”の値を指定します。
< acrId >:
4 の出力結果の値を指定します。
6. AKS のデプロイ
1 で作成したリソースグループを指定してAKS をデプロイします。
< appId >:
3 の出力結果の”appId”の値を指定します。
< password >:
3 の出力結果の”password”の値を指定します。
7. Kubernetes CLI のインストール
8. kubectl でAKS Clusterに接続

インストールした Kubernetes CLI を使ってクラスター ノードの一覧を取得します。

KSのリソース
1 で作成したリソースグループの他に下のリソースグループが自動で作成されています。そして、このリソースグループに、AKS Clusterを動作させるリソースが作成されています。
MC_my-k8s-rg_myAKSCluster_japaneast
  • DNSゾーン
  • ネットワークセキュリティグループ
  • ルートテーブル
  • 仮想マシン
  • OSディスク
  • ネットワークインターフェイス
  • ロードバランサー
  • パブリックIPアドレス
  • 可用性セット
9. ACR のログインサーバ情報を取得
10. ACR にイメージプッシュ
プッシュする Docker イメージは前回作成した myapp イメージを使用します。
< acrLoginServer >:
9 の出力結果の値を指定します。
11. ACR のイメージ一覧
12. AKS にデプロイ
AKS に 10 でプッシュした Docker イメージをデプロイします。
まとめ
今回は、Azure に ACR と AKS をデプロイしました。どちらもマネージドサービスのため、オンプレ環境に全て自前で構築する場合と比較すると、その手軽さと速度を感じることができたのではないかと思います。それに、コンテナを動作させるホスト側では、エージェントノード(ワーカーノード)のみを管理すればよいという点もクラウド、且つマネージドサービスの恩恵です。近い将来、AWS Fargate のようなフルマネージドサービスの提供もあるかもしれません。今後のクラウドサービスに注目です。
※但し、AWS Fargate は、デプロイしたコンテナにログインできないなどの制約はあります。
Kubernetes完全ガイド (impress top gear)

Kubernetes完全ガイド (impress top gear)

青山 真也
4,104円(01/18 01:30時点)
発売日: 2018/09/21
Amazonの情報を掲載しています
Docker 実践ガイド (impress top gear)

Docker 実践ガイド (impress top gear)

古賀 政純
3,240円(01/18 01:30時点)
発売日: 2015/12/17
Amazonの情報を掲載しています



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA