Azureコンテナサービス (ACS)は、一般的に使用されるオープンソースのコンテナーオーケストレーターツール用に最適化されたコンテナーホスティングソリューションです。サポートされているコンテナオーケストレーターツールは、MesosベースのDC / OS、Kubernetes、DockerSwarmです。または、スタンドアロンのDockerエンジンを使用することもできます。 Azure Container Serviceは、選択したオーケストレーションエンジンのAPIエンドポイントを公開するため、監視、継続的インテグレーション、コマンドラインツールなどのさまざまなユースケースのオープンソースツールがコンテナーサービスにアクセスできます。
ACS Docker Swarmとは何ですか?
Docker Swarm Docker Engineを実行している仮想マシン(VM)のコレクション/クラスターであり、ロードバランサー、VMスケールセットまたは可用性セット、ストレージ、ネットワークなどの他のリソースが含まれています。 Azure ContainerService上のDockerSwarmは、SwarmマスターノードとSwarmエージェントノード(VM)で構成されます。 Swarm Masterは、SSHRSAキーを使用して直接接続できます。 Swarm Agentは、SSHRSAキーを使用して直接接続することはできません。
Azure Container ServiceDockerSwarmクラスターはDockerSwarmモードクラスターではありません。 Docker Swarmモードは、ACSSwarmマスターで初期化する必要があります。 Docker SwarmClusterがAzurePortalで作成されると、必要なすべてのリソース(VM、スケールセット、ロードバランサー)が自動的に作成されます。
この記事には次のセクションがあります:
- 環境の設定
- AzureCloudShellの起動
- SSHRSAキーペアの作成
- AzureコンテナサービスのDockerSwarmの作成
- DockerSwarmクラスターリソースの調査
- スウォームマスターへの接続
- 結論
環境の設定
Azureアカウントが唯一の前提条件です。 Azureアカウントは、https://azure.microsoft.com/で作成できます。
AzureCloudShellの起動
Azureは、CloudShellと呼ばれるAzureツールに接続するためのクライアントインターフェイスを提供します。 Cloud Shellは、Azureに接続するためのブラウザーベースの管理シェルです。 Cloud Shellは、PowerShellモジュール、Azureツール、コンテナーツール、データベースツール、Linuxシェルインタープリター、ソースコントロール、ビルドツールなど、選択可能なクライアントツールをサポートしています。 Cloud Shellは、.NETやNode.jsなど、選択可能ないくつかのプログラミング言語もサポートしています。 Cloud Shellを起動するには、> _をクリックします 図1に示すように、アイコン。
図1: CloudShellの開始
SSHRSAキーペアの作成
Azure Container Serviceベースのホスト型ソリューションを作成するには、SSHRSAキーが必要です。次のコマンドを使用して、CloudShellからSSHRSAキーを作成します。
ssh-keygen -t rsa -b 2048
図2に示すように、キーを保存するファイルを指定するコマンドプロンプトが表示されます。Enterをクリックしてデフォルトのファイルを選択します。
図2: SSHRSAキーの生成
パスフレーズを指定する別のコマンドプロンプトが表示されます。パスフレーズを使用しない場合は、[Enter]をクリックします。パスフレーズが選択されているかどうかに関係なく、パスフレーズを再度指定するための確認コマンドプロンプトが表示されます。パスフレーズが使用されていない場合は、Enterキーをもう一度クリックします。公開鍵と秘密鍵のペアが生成され、保存されます。 ssh-keygenコマンドからの完全な出力を次に示します。
[email protected]:~$ ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/home/deepak/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/deepak/.ssh/id_rsa. Your public key has been saved in /home/deepak/.ssh/id_rsa.pub. The key fingerprint is: SHA256:+YArpP5Eri/JENp0b3CKVbOz3qFPveivTHr1vyaHv/o [email protected] The key's randomart image is: +---[RSA 2048]----+ | | | o | | . o | |. . + +. . | |.+ +o=.oS | |o o=. +..+. | | o..+o.oooo. . | | .+o .o=o. .+ o | | o+o .+*oo .OEo | +----[SHA256]-----+
SSH RSAキーに設定されているデフォルトのアクセス許可はオープンすぎて、ACSでは使用できません。権限を400に変更します(所有者による読み取り専用):
[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa
Docker Swarmを作成するときは、SSHRSAキーを使用します。 viエディターで公開鍵ファイルを開きます:
[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub
そして、すべてを選択して、 id_rsa.pubの内容をコピーします ファイルを作成し、後で使用するためにテキストファイルに保存します。
AzureコンテナサービスのDockerSwarmの作成
Azure ContainerServiceベースのDockerSwarmを作成するには、[新規]をクリックします 図3に示すように、Azureポータルで。
図3: Azureポータル>新規
新規 ウィザードでは、図4に示すように、いくつかのAzureMarketplaceアプリケーションが表示されて選択できます。
図4: 新しいウィザード
図5に示すように、AzureContainerServiceを選択します。
図5: AzureContainerServiceの選択
図6に示すように、基本を使用してAzureコンテナーサービスの作成ウィザードが開始されます。 表示される基本設定を構成するためのダイアログ。
図6: AzureContainerServiceの作成>基本
コンテナサービスの名前を指定します (hello-world-docker)、サブスクリプションを選択します 。 [リソースグループ]で、[既存のものを使用]を選択します 図7に示すように、リソースグループを選択します。または、新規作成を選択します。 オプション。
図7: AzureContainerServiceの作成>基本
場所を選択します 図8に示すように、[OK]をクリックします。
図8: AzureContainerServiceの基本設定の構成
マスター構成で、図9に示すように、マスター情報を提供します。
図9: マスター構成
オーケストレーターを選択します 群れとして 、図10に示すように。
図10: DockerSwarmとしてOrchestratorを選択する
DNS名プレフィックスを指定します (「docker」–任意の名前)、ユーザー名を指定します 、これも任意の名前です。 SSHRSAキーペアの作成のセクションで説明されているように、[SSH公開キー]フィールドに、以前に保存されたSSHRSA公開キーをテキストファイルに入力します。 。 マスターカウントを選択します (1、3、または5)、図11に示すように、高可用性要件のために奇数のマスターノードがプロビジョニングされます。
図11: マスター情報の提供
[OK]をクリックします(図12を参照)。
図12: マスター構成の完了
エージェント構成の場合 、エージェント数を指定します 、エージェント仮想マシンのサイズを選択します 、図13に示すように、[OK]をクリックします。
図13: エージェント構成
概要 、Swarm構成が検証され、図14に示すように、「Validationpassed」メッセージが表示されます。[OK]をクリックします。
図14: 群れの概要
図15に示すように、Swarmの展開が開始されます。
図15: AzureContainerServiceのデプロイ
展開が完了すると、「展開に成功しました」というメッセージが表示されます(図16を参照)。
図16: 展開に成功しました
DockerSwarmクラスターリソースの探索
図17に示すように、Swarmのリソースが表示されます。もっと見るをクリックします。 生成されたリソースの完全なリストを表示します。
図17: リソース
図18に示すように、すべてのSwarmリソースが表示されます。Swarmリソースのタイプは TYPEで示されます。 列であり、仮想マシン、仮想マシンスケールセット、パブリックIPアドレス、可用性セット、ロードバランサー、およびネットワークインターフェイスが含まれます。
図18: スウォームリソース
スウォームマスターへの接続
Swarmマスターに接続するには、図18に示すように、Swarmマスター仮想マシンをクリックします。Swarmマスターの詳細ページからパブリックIPアドレスをコピーします(図19を参照)。
図19: スウォームマスターのパブリックIPアドレス
図20に示すように、クリックしてSwarmマスターのパブリックIPアドレスをコピーします。
図20: SwarmMasterパブリックIPアドレスのコピー
SSH秘密鍵、SSHポート(2200)、ユーザー名、およびパブリックIPアドレスを使用して、SwarmマスターVMに接続します。
[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected]
コマンドプロンプト「接続を続行しますか(はい/いいえ)?」で「はい」を指定すると、図21に示すように、Swarmマスターへの接続が確立されます。SwarmマスターはUbuntuを実行していることを示します。 OS。
図21: SwarmMasterに接続する
SwarmマスターVMはデフォルトでDockerエンジンを実行します。
結論
この記事では、Azure Container Service(ACS)上にDockerSwarmクラスターを作成しました。 ACSDockerSwarmはDockerSwarmモードクラスターではありません。バージョン1.12以降を実行しているDockerホストと同様に初期化する必要があります。他の(Docker Swarm以外の)オプションは、MesosベースのDC/OSまたはKubernetesクラスターを作成することです。 ACS Docker Swarmは、Dockerを実行している仮想マシンのクラスターです。 Azure Container Serviceは、仮想マシン、パブリックIPアドレス、仮想マシンスケールセット、ロードバランサー、ネットワークインターフェイスなどのすべてのリソースをプロビジョニングします。 SSH RSA秘密鍵、ユーザー名、およびSwarmマスターのパブリックIPアドレスを使用してSwarmマスターに接続しました。