【初心者向け】Azure Kubernetes Service のデプロイに挑戦

オウルです。

今回は Azure のKubernetes マネージドサービスである Azure Kubernetes Service のデプロイに挑戦します。

Azure Kubernetes Service をデプロイするためには、Azure サブスクリプションが必要です。また、Azure Cloud Shell を使用します。使用方法は、以下の公式リファレンスを参考にして下さい。

Azure Container Registryのデプロイ

以降、Azure Container Registry を ACR と記載します。

ACR

Azure コンテナー レジストリは、オープンソースの Docker Registry 2.0 に基づいた、管理された Docker レジストリ サービスです。 プライベート Docker コンテナー イメージを保存および管理する Azure コンテナー レジストリを作成および管理します。

Azure CLI を使用して Azure Kubernetes Service をデプロイします。

Azure CLI

Azure CLI は、Azure リソースを管理するためのコマンドライン ツールです。

リソースグループの作成

ACR をデプロイするリソースグループを作成します。

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 です。 サービス プリンシパルには、割り当てられたロールとアクセス許可によって定義されるタスクを実行するために必要な権限のみが与えられます。

サービスプリンシパルを作成

上記を実行すると以下の出力結果が表示されます。この後の操作で必要となりますので、コピーして保存します。

ACR のリソースIDを取得

ロールを割り当る

ACR のDocker イメージを使用するために適切なロールを割り当てます。

appId
3 の出力結果の”appId”の値を指定します。
acrId
4 の出力結果の値を指定します。

AKS のデプロイ

1 で作成したリソースグループを指定してAKS をデプロイします。

appId
3 の出力結果の”appId”の値を指定します。
password
3 の出力結果の”password”の値を指定します。

Kubernetes CLI のインストール

kubectl でAKS Clusterに接続


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

1 で作成したリソースグループの他に下のリソースグループが自動で作成されています。そして、このリソースグループに、AKS Clusterを動作させるリソースが作成されています。

MC_my-k8s-rg_myAKSCluster_japaneast

  • DNSゾーン
  • ネットワークセキュリティグループ
  • ルートテーブル
  • 仮想マシン
  • OSディスク
  • ネットワークインターフェイス
  • ロードバランサー
  • パブリックIPアドレス
  • 可用性セット

ACR のログインサーバ情報を取得

ACR にイメージプッシュ

プッシュする Docker イメージは前回作成した myapp イメージを使用します。

< acrLoginServer >
9 の出力結果の値を指定します。

ACR のイメージ一覧

AKS にデプロイ

AKS に 10 でプッシュした Docker イメージをデプロイします。

イメージ図

まとめ

今回は、Azure に ACR と AKS をデプロイしました。どちらもマネージドサービスのため、オンプレ環境に全て自前で構築する場合と比較すると、その手軽さと速度を感じることができたのではないかと思います。それに、コンテナを動作させるホスト側では、エージェントノード(ワーカーノード)のみを管理すればよいという点もクラウド、且つマネージドサービスの恩恵です。近い将来、AWS Fargate のようなフルマネージドサービスの提供もあるかもしれません。今後のクラウドサービスに注目です。※但し、AWS Fargate は、デプロイしたコンテナにログインできないなどの制約はあります。

Kubernetes の公式ページには Production environment として AKS は Managed に分類されています。

Kubernetes のうれしいことを知りたい方は、こちらをどうぞ。

おススメ書籍

技術本を読むなら Kindle がおすすめです。こちらの記事をご覧ください。

▼ Azure定番システム設計・実装・運用ガイド
『Azure定番システム設計・実装・運用ガイド オンプレミス資産をクラウド化するためのベストプラクティス』

パブリッククラウドは色々なことができるため(マイクロサービス アーキテクチャ)、知識の整理が難しいというのが僕の悩みです。しかも公式リファレンスは、どうも翻訳が・・・。と思っていた時に、何気に見ていたAzure サポートブログで紹介されていました。著者が全員、現役のマイクロソフトのAzureテクニカルサポートのエンジニアです。


コメントを残す

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

CAPTCHA