(非推奨) Container Service についてよく寄せられる質問

警告

Azure Container Service (ACS) は非推奨となっています。 ACS に新しい機能が追加されることはありません。 API、ポータルのエクスペリエンス、CLI コマンド、ドキュメントはすべて非推奨としてマークされます。

詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。

次のいずれかの Azure Marketplace ソリューションをデプロイすることをお勧めします。

Kubernetes を使用する場合は、Azure Kubernetes Service に関するページを参照してください。

オーケストレーター

Azure Container Service では、どのコンテナー オーケストレーターがサポートされていますか。 

オープンソースの DC/OS、Docker Swarm、および Kubernetes がサポートされています。 詳細については、概要に関するページを参照してください。  

Docker Swarm モードはサポートされていますか。 

現時点では Swarm モードはサポートされていませんが、サービス ロードマップの一部として予定されています。 

Azure Container Service では Windows コンテナーはサポートされていますか。  

現在、すべてのオーケストレーターでサポートされているのは、Linux コンテナーのみです。 Kubernetes での Windows コンテナーのサポートはプレビュー段階です。

Azure Container Service では、特定のオーケストレーターが推奨されますか。 

基本的には、推奨される特定のオーケストレーターはありません。 サポートされているオーケストレーターのいずれかを使用した経験をお持ちの場合は、その経験を Azure Container Service でも活かすことができます。 ただし、データのトレンドから判断すると、ビッグ データや IoT のワークロードについては DC/OS に運用環境での実績があり、クラウド ネイティブのワークロードには Kubernetes が適しているようです。また、Docker Swarm は Docker ツールとの統合や習得の容易さに定評があります。

また、シナリオによっては、他の Azure サービスを使用してカスタムのコンテナー ソリューションを構築し、管理することもできます。 使用できる Azure サービスには、Virtual MachinesService FabricWeb AppsBatch などがあります。 

Azure Container Service と ACS Engine の違いは何ですか。 

Azure Container Service は SLA による保証が付いた Azure サービスで、Azure Portal の各種機能、Azure コマンドライン ツール、Azure API が付属しています。 Azure Container Service を使用すると、比較的少ない選択肢を選んで構成するだけで、標準のコンテナー オーケストレーション ツールを実行するクラスターを簡単に実装して管理できます。

ACS Engine はオープンソース プロジェクトで、パワー ユーザーがクラスター構成を各レベルでカスタマイズするのに適しています。 インフラとソフトウェアの両方の構成に変更を加えることができるため、ACS Engine には SLA が用意されていません。 サポートは、Microsoft の公式チャネルではなく、GitHub のオープンソース プロジェクトを通じて提供されます。 

詳細については、コンテナーのサポート ポリシーを参照してください。

クラスターの管理

クラスターの SSH キーはどのようにして作成するのですか。

クラスターの Linux 仮想マシンへの認証に使用する SSH RSA 公開キーと秘密キーのペアは、オペレーティング システムに搭載された標準のツールを使用して作成できます。 作成方法については、OS X と Linux または Windows のガイダンスを参照してください。

Azure CLI のコマンドを使用してコンテナー サービス クラスターをデプロイする場合は、クラスター用の SSH キーを自動的に生成することができます。

Kubernetes クラスターのサービス プリンシパルはどのようにして作成するのですか。

Azure Active Directory サービス プリンシパルの ID とパスワードが、Azure Container Service で Kubernetes クラスターを作成する際にも必要です。 詳細については、Kubernetes クラスターのサービス プリンシパルに関するページを参照してください。

Azure CLI のコマンドを使用して Kubernetes クラスターをデプロイする場合は、クラスターのサービス プリンシパルの資格情報を自動的に生成することができます。

作成できるクラスターの大きさはどの程度ですか。

1、3、または 5 個のマスター ノードを含むクラスターを作成できます。 エージェント ノードは、最大 100 個選択できます。

重要

クラスターが大きい場合やノードに選択した VM サイズに応じて、サブスクリプションのコア クォータを増やすことが必要になる可能性があります。 クォータの引き上げを要求するには、 オンラインカスタマー サポートリクエスト を無料で開きます。 Azure 無料アカウントを使用している場合は、使用できる Azure コンピューティング コアの数に制限があります。

クラスターの作成後にマスターの数を増やすにはどうすればよいですか。 

クラスターを作成すると、マスターの数は固定され、変更できなくなります。 高可用性を確保するために、クラスターの作成時に複数のマスターを選択するのが理想です。

クラスターの作成後にエージェントの数を増やすにはどうすればよいですか。 

クラスター内のエージェントの数は、Azure Portal またはコマンドライン ツールを使用して増やすことができます。 詳細については、Azure Container Service クラスターのスケーリングに関するページを参照してください。

マスターとクラスターの URL は何ですか。 

Azure Container Service クラスター リソースの URL は、ユーザーが指定した DNS 名のプレフィックスと、ユーザーがデプロイ時に選択した Azure リージョンに基づいて設定されます。 たとえば、マスター ノードの完全修飾ドメイン名 (FQDN) は次のような形式になります。

DNSnamePrefix.AzureRegion.cloudapp.azure.net

Azure Portal や Azure Resource Explorer などの Azure ツールではクラスターの URL が広く使用されています。

どのバージョンのオーケストレーターがクラスターで実行されているかを確認するには、どうすればよいですか。

  • DC/OS: Mesosphere のドキュメントを参照してください
  • Docker Swarm: docker version を実行します
  • Kubernetes: kubectl version を実行します

デプロイ後にオーケストレーターをアップグレードするには、どうすればよいですか。

現時点で Azure Container Service には、クラスターにデプロイしたオーケストレーターのバージョンをアップグレードするためのツールは用意されていません。 Container Service でそれ以降のバージョンがサポートされている場合は、新しいクラスターをデプロイできます。 他には、オーケストレーターに固有のツールがあれば、それを利用してデプロイ済みのクラスターをアップグレードするという方法もあります。 一例として、DC/OS のアップグレードに関するページを参照してください。  

クラスターへの SSH 接続文字列はどこで確認できますか。

接続文字列は、Azure Portal か Azure コマンドライン ツールで確認できます。

  1. Azure Portal の場合は、クラスター デプロイのリソース グループに移動します。  

  2. [概要] をクリックし、[要点] にある [デプロイ] のリンクをクリックします。 

  3. [デプロイ履歴] ブレードで、名前が microsoft-acs で始まり、その後にデプロイ日が付加されているデプロイをクリックします。 例: microsoft-acs-201701310000  

  4. [概要] ページの [出力] に、いくつかのクラスター リンクが用意されています。 SSHMaster0 は、コンテナー サービス クラスター内の 1 つ目のマスターに対する SSH 接続文字列です。 

前述のとおり、Azure ツールを使用して、マスターの FQDN を確認することもできます。 マスターへの SSH 接続は、マスターの FQDN と、クラスターの作成時に指定したユーザー名を使用して作成します。 例を以下に示します。

ssh userName@masterFQDN –A –p 22 

詳細については、「Azure Container Service クラスターに接続する」を参照してください。

Windows で DNS 名前解決が機能しません。 どうすればよいですか。

Windowsには、修正がまだアクティブに段階的に廃止されている既知の DNS の問題がいくつかあります。お使いの環境でこれを利用できるように、最新の acs-engine と Windows バージョン (KB4074588KB4089848 がインストールされています) を使用していることを確認してください。 その他の軽減策 (手順) については、以下の表を参照してください。

DNS の症状 回避策
ワークロード コンテナーが不安定でクラッシュすると、ネットワーク名前空間がクリーンアップされる 該当するサービスを再デプロイします。
サービスの VIP アクセスが切断される 通常の (非特権) ポッドが常に 1 つ実行状態となるように DaemonSet を構成してください。
コンテナーを実行しているノードが利用不可状態になると、DNS クエリが失敗して "negative cache entry" が発生することがある 該当するコンテナー内で次のコマンドを実行してください。
  • New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name MaxCacheTtl -Value 0 -Type DWord
  • New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name MaxNegativeCacheTtl -Value 0 -Type DWord
  • Restart-Service dnscache

それでも問題が解決されない場合は、DNS キャッシュを完全に無効にしてみてください。
  • Set-Service dnscache -StartupType disabled
  • Stop-Service dnscache

次の手順