Enterprise Distributed Application Service (EDAS) を介して Kubernetes クラスターにアプリケーションをデプロイすると、コンテナはデフォルトで Dockerfile に定義された起動コマンドを実行します。このデフォルトをオーバーライドする場合 (例えば、カスタムの JVM 引数を渡したり、エントリポイントのバイナリを変更したりする場合)、EDAS コンソールで起動コマンドを設定します。
起動コマンドと Docker ディレクティブの対応
EDAS コンソールのフィールドは Docker のディレクティブに直接対応しています:
| EDAS コンソールのフィールド | Docker 相当 | 説明 |
|---|---|---|
| 起動コマンド | ENTRYPOINT | コンテナの起動時に実行される実行可能ファイル |
| 起動パラメーター | CMD | 起動コマンドに渡される引数 |
次の表は、EDAS コンソールでこれらのフィールドを設定した際のオーバーライド動作について説明しています:
| 設定 | 動作 |
|---|---|
| 起動コマンド のみ | Dockerfile の ENTRYPOINT をオーバーライドします。Dockerfile の CMD は無視されます (引数として渡されません)。 |
| 起動パラメーター のみ | Dockerfile の ENTRYPOINT は、指定したパラメーターで実行され、Dockerfile の CMD を置き換えます。 |
| 両方のフィールド | Dockerfile の ENTRYPOINT + CMD の組み合わせ全体を置き換えます。 |
| どちらのフィールドも設定しない | コンテナは Dockerfile の ENTRYPOINT と CMD をそのまま使用します。 |
ランタイムで有効になる ENTRYPOINT は 1 つだけであるため、EDAS コンソールの値は常に Dockerfile よりも優先されます。
Dockerfile の ENTRYPOINT または CMD ディレクティブに慣れていない場合は、起動コマンドをカスタマイズしないでください。無効なコマンドは、アプリケーションの作成を妨げます。
例
次の Dockerfile があるとします:
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']これに相当する EDAS コンソールの設定は次のとおりです:
| フィールド | 値 |
|---|---|
| 起動コマンド | nginx |
| 起動パラメーター | -g (1 行目)、daemon off; (2 行目) |
パイプやシェル機能を含む複雑なコマンドを実行するには、シェル呼び出しでラップします:
| フィールド | 値 |
|---|---|
| 起動コマンド | /bin/sh |
| 起動パラメーター | -c (1 行目)、your-script.sh && echo done (2 行目) |
アプリケーション作成時の起動コマンドの設定
EDAS コンソールにログインします。
左側のナビゲーションウィンドウで、アプリケーション管理 > アプリケーションを選択します。
上部のナビゲーションバーでリージョンを選択します。ページの上部で名前空間を選択します。
左上隅にある アプリケーションの作成 をクリックします。
基本情報 ステップで、クラスタータイプ を Kubernetes クラスター に設定し、アプリケーション実行環境 を選択してから、次へ をクリックします。
ランタイム環境 使用する状況 Java > カスタム カスタムイメージを使用してデプロイします Java > Java JAR パッケージから Dubbo または Spring Boot アプリケーションをデプロイします。選択後、Java 環境 パラメーターを設定します。 Java > Tomcat WAR パッケージから Dubbo または Spring アプリケーションをデプロイします。選択後、Java 環境 と コンテナバージョン パラメーターを設定します。 Java > EDAS-Container (HSF) WAR または FatJar パッケージから High-speed Service Framework (HSF) アプリケーションをデプロイします。選択後、Java 環境、Pandora バージョン、Ali-Tomcat バージョン パラメーターを設定します。 PHP Apache HTTP Server 上に PHP アプリケーションをデプロイします Node.js、C++、Go、およびその他の言語 カスタムイメージを使用してデプロイします。多言語アプリケーションの設定プロセスについては、このトピックでは説明しません。 設定 ステップで、環境、基本情報、デプロイ方式、リソースパラメーターを設定し、次へ をクリックします。
詳細設定 ステップで、起動コマンド を展開し、次のパラメーターを設定します:
パラメーター 説明 起動コマンド 実行する実行可能ファイル。例: nginx。起動パラメーター 1 行に 1 つの引数を入力します。追加 をクリックして行を追加します。例えば、ある行に -gを入力し、次の行にdaemon off;を入力します。
アプリケーションの作成 をクリックします。
作成完了 ページで、基本情報、設定、詳細設定 セクションの設定を確認し、アプリケーションの作成 をクリックします。アプリケーション概要 ページの上部で、詳細の表示 をクリックします。変更履歴 ページで、アプリケーションの変更プロセスを表示します。デプロイが完了するまで数分待ちます。変更プロセスが完了したら、アプリケーション概要 ページの 基本情報 セクションでインスタンスステータスを確認します。Pod が実行中であれば、アプリケーションはデプロイされています。
デプロイ済みアプリケーションの起動コマンドの設定
起動コマンドを更新すると、アプリケーションの再起動がトリガーされます。この操作はオフピーク時間帯に実行してください。
EDAS コンソールにログインします。
左側のナビゲーションウィンドウで、アプリケーション管理 > アプリケーションを選択します。
上部のナビゲーションバーでリージョンを選択します。ページの上部で名前空間を選択します。
クラスタータイプ ドロップダウンリストから、Container Service または Serverless Kubernetes クラスター を選択します。
アプリケーション名をクリックして、その詳細ページを開きます。
概要 または 基本情報 ページの右上隅で、デプロイ > デプロイ を選択します。
デプロイモードの選択 ページで、デプロイモードを選択し、デプロイの開始 をクリックします。
デプロイメントパッケージと環境を指定し、起動コマンド を展開して、次の表で説明するパラメーターを設定します。その後、OK をクリックします。
パラメーター 説明 起動コマンド 実行する実行可能ファイル。例: nginx。起動パラメーター 1 行に 1 つの引数を入力します。追加 をクリックして行を追加します。例えば、ある行に -gを入力し、次の行にdaemon off;を入力します。
OK をクリックすると、アプリケーションが再起動します。この操作はオフピーク時間帯に実行してください。
結果の確認
デプロイが完了したら、次のいずれかの方法で起動コマンドが有効になったことを確認します:
変更履歴の確認: アプリケーション詳細ページの左側のナビゲーションウィンドウで、[変更履歴] をクリックします。[変更ステータス] 列に [成功] と表示されている場合、構成は適用されています。
Pod ステータスの確認:アプリケーション概要 ページで、実行ステータス の横にある 実行中の Pod (クリックして表示) をクリックします。アプリ設定パネルの Pod セクションで、ステータス 列を確認します。緑色のドットは、アプリケーションが新しい設定で実行されていることを示します。