Azure Kubernetes Service (AKS) クラスターに、Open Liberty または WebSphere Liberty を使用する Java アプリケーションをデプロイする
この記事では、次の方法を示します。
- Open Liberty または IBM WebSphere Liberty ランタイムで、Java、Java EE、Jakarta EE、または MicroProfile アプリケーションを実行します。
- Open Liberty または WebSphere Liberty コンテナー イメージを使用して、
az acr build
でアプリケーションの Docker イメージをビルドします。 - Open Liberty Operator または WebSphere Liberty Operator を使用して、コンテナー化されたアプリケーションを Azure Kubernetes Service (AKS) クラスターにデプロイします。
Open Liberty オペレーターにより、Kubernetes クラスターで実行されるアプリケーションのデプロイと管理が簡単になります。 Open Liberty Operator または WebSphere Liberty Operator を使用して、トレースやダンプの収集など、より高度な操作を実行することもできます。
この記事では、Open Liberty または WebSphere Liberty 向けの Azure Marketplace オファーを使用して、AKS への移行を加速します。 このオファーでは、次の内容を含む複数の Azure リソースが自動的にプロビジョニングされます。
- Azure Container Registry インスタンス。
- AKS クラスター。
- Application Gateway イングレス コントローラー (AGIC) インスタンス。
- Open Liberty Operator と WebSphere Liberty Operator。
- 必要に応じて、Liberty とアプリケーションを含むコンテナー イメージ。
AKS で Liberty を実行するための手動ステップ バイ ステップのガイダンスを使用する場合は、「Azure Kubernetes Service (AKS) クラスターに、Open Liberty または WebSphere Liberty を使用する Java アプリケーションを手動でデプロイします」を参照してください。
この記事は、デプロイをすばやく行うのに役立ちます。 運用環境に移行する前に、「Liberty のチューニングに関する IBM のドキュメント」を確認する必要があります。
Azure 上の WebSphere ソリューションを開発しているエンジニアリング チームにフィードバックを提供したり、移行シナリオについてチームと密接に連携したりすることに関心がある場合は、こちらの簡単な WebSphere の移行に関するアンケートに記入し、連絡先情報を含めてください。 プログラム マネージャー、アーキテクト、エンジニアのチームからすぐに連絡があり、緊密なコラボレーションが開始されます。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- Unix のようなオペレーティング システム (Ubuntu、Azure Linux、macOS、Linux 用 Windows サブシステムなど) がインストールされているローカル マシンを準備します。
- Azure CLI コマンドを実行するには、Azure CLI をインストールします。
az login
コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI で Azure にサインインする」を参照してください。- 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。
az version
を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade
を実行します。 この記事では、バージョン 2.61.0 以降の Azure CLI が必要です。
- Java Standard Edition (SE) の実装、バージョン 17 (例: Eclipse Open J9) をインストールします。
- Maven 3.9.8 以上をインストールします。
- Git がインストールされていることを確認します。
- サブスクリプションで
Owner
ロールまたはContributor
およびUser Access Administrator
ロールが割り当てられていることを確認してください。 これを確認するには、「ユーザーまたはグループのロールの割り当てを一覧表示する」の手順に従ってください。
ポータルを使用して AKS 上の Liberty のデプロイを作成する
次の手順は、AKS 上の Liberty ランタイムを作成する方法を示しています。 これらの手順を完了すると、コンテナー化されたアプリケーションをデプロイするための Container Registry インスタンスと AKS クラスターが作成されます。
Azure ポータルにアクセスします。 ページの上部にある検索ボックスに、「WebSphere Liberty/Open Liberty on Kubernetes」と入力します。 候補が表示されたら、[Marketplace] セクションでる唯一の一致項目を選択します。
必要に応じて、オファーに直接移動できます。
[作成] を選択します
[基本] ペインで、次の操作を行います。
- 新しいリソース グループを作成します。 リソース グループはサブスクリプション内で一意である必要があるため、一意の名前を選択します。 一意の名前を付ける簡単な方法は、自分の名前のイニシャル、今日の日付、何らかの識別子 (
ejb0913-java-liberty-project-rg
など) を組み合わせて使用することです。 この記事の後の方で使用できるように、このリソース グループ名を保存しておきます。 - [リージョン] では、自分の地域に近いリージョンを選択します。 たとえば、[米国東部 2] を選択します。
- 新しいリソース グループを作成します。 リソース グループはサブスクリプション内で一意である必要があるため、一意の名前を選択します。 一意の名前を付ける簡単な方法は、自分の名前のイニシャル、今日の日付、何らかの識別子 (
[次へ] を選択します。 AKS ウィンドウでは、デプロイで新しいクラスターを作成する代わりに、必要に応じて既存の AKS クラスターと Container Registry インスタンスを選択できます。 この選択により、Azure アーキテクチャ センターに示すようにサイドカー パターンを利用できます。 また、AKS ノード プール内の仮想マシンのサイズと数の設定を調整することもできます。
この記事では、このウィンドウの既定値はすべてそのまま使用します。
[次へ] を選択します。 [負荷分散] ウィンドウで、[Azure Application Gateway に接続しますか?] の横にある [はい] を選択します。 このセクションでは、次のデプロイ オプションをカスタマイズできます。
[仮想ネットワーク] と [サブネット] では、必要に応じて、デプロイでリソースが配置される仮想ネットワークとサブネットをカスタマイズできます。 残りの値を既定値から変更する必要はありません。
TLS/SSL 証明書については、Azure Application Gateway から TLS/SSL 証明書を指定できます。 値を既定値のままにして、オファーで自己署名証明書が生成されるようにします。
自己署名証明書を使用して運用環境に移行しないでください。 自己署名証明書の詳細については、「自己署名公開証明書を作成してアプリケーションを認証する」を参照してください。
[Cookie ベースのアフィニティを有効にする] を選択できます。このアフィニティは、スティッキー セッションとも呼ばれます。 この記事ではスティッキー セッションを使用するため、必ずこのオプションを選択してください。
[次へ] を選択します。 [オペレーターとアプリケーション] ウィンドウで、この記事ではすべて既定値を使用します。 ただし、次のデプロイ オプションをカスタマイズできます。
- [IBM サポート] オプションで [はい] を選択すると、WebSphere Liberty Operator をデプロイできます。 既定値の [いいえ] のままにすると、Open Liberty Operator がデプロイされます。
- [アプリケーションのデプロイ] オプションで [はい] を選択すると、選択した Operator 用のアプリケーションをデプロイできます。 既定値の [いいえ] のままにすると、アプリケーションはデプロイされません。
[確認および作成] を選択して、選んだオプションを検証します。 [確認と作成] ウィンドウで、検証に合格した後、[作成] が使用可能になったことが確認できたら、[作成] を選択します。
デプロイには、最大 20 分かかる場合があります。 デプロイが完了するのを待つ間に、「Azure SQL Database インスタンスの作成」セクションの手順に従うことができます。 そのセクションを完了したら、ここに戻って続行します。
選択した情報をデプロイから取得する
[デプロイが進行中です] ページから移動した場合は、次の手順でそのページに戻る方法について説明します。 [デプロイが完了しました] と表示されたページにまだいる場合は、新しく作成したリソース グループに移動して、3 番目のステップに進みます。
ポータル ページの隅にあるメニュー ボタンを選んでから [リソース グループ] を選びます。
[任意のフィールドのフィルター] というテキストが表示されているボックスに、前に作成したリソース グループの最初の数文字を入力します。 推奨される方法に従った場合は、名前のイニシャルを入力してから、適切なリソース グループを選択します。
リソース グループ内のリソースの一覧で、その [種類] 値が [コンテナー レジストリ] のリソースを選択します。
ナビゲーション ウィンドウで、[設定] の [アクセス キー] を選択します。
[レジストリ名] および [ログイン サーバー] の値を保存しておきます。 各フィールドの横にあるコピー アイコンを使用して、システム クリップボードに値をコピーできます。
Note
この記事では、
az acr build
コマンドを使用して Docker イメージをビルドして Container Registry にプッシュし、Container Registry のusername
とpassword
は使用しません。docker login
とdocker push
でユーザー名とパスワードを使用することはできます。 ユーザー名とパスワードの使用は、パスワードレス認証よりも安全性が低くなります。リソースをデプロイしたリソース グループに戻ります。
[設定] セクションで、[デプロイ] を選択します。
一覧で最下部のデプロイを選択します。 [デプロイ名] 値は、オファーの発行元 ID と一致します。 それには、文字列
ibm
が含まれています。ナビゲーション ウィンドウで、[出力] を選択します。
上記の値と同じコピー手法を使用して、次の出力の値を保存します。
cmdToConnectToCluster
デプロイにアプリケーションが含まれていない場合は
appDeploymentTemplateYaml
。 つまり、Marketplace オファーをデプロイするときに、[アプリケーションをデプロイしますか?] で [いいえ] を選択したことになります。 この記事では、[いいえ] を選択しました。 ただし、[はい] を選択した場合は、アプリケーションのデプロイを含むappDeploymentYaml
の値を保存しておきます。appDeploymentTemplateYaml
またはappDeploymentYaml
の値を Bash シェルに貼り付け、コマンドを実行します。このコマンドの出力は、アプリケーション デプロイ YAML です。 キーワード
secretName
を使用してイングレス TLS シークレットを探します (例:- secretName: secret785e2c
)。secretName
値を保存します。
以下のコマンドを実行して、これまでの手順でメモした環境変数を設定します。 これらの環境変数は、この記事の後の方で使用します。
export RESOURCE_GROUP_NAME=<your-resource-group-name>
export REGISTRY_NAME=<your-registry-nam-of-container-registry>
export LOGIN_SERVER=<your-login-server-of-container-registry>
export INGRESS_TLS_SECRET=<your-ingress-tls-secret-name>
Azure SQL Database インスタンスを作成する
このセクションでは、アプリで使用する Azure SQL Database の Single Database を作成します。
まず、データベース関連の環境変数を設定します。 <your-unique-sql-server-name>
を Azure SQL Database サーバーの一意の名前に置き換えます。
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
ターミナルで次のコマンドを実行して、Azure SQL Database に単一データベースを作成し、現在サインインしているユーザーを Microsoft Entra 管理者として設定します。詳細については、「クイックスタート: 単一データベースを作成する - Azure SQL Database」を参照してください。
export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
次に、ローカル IP アドレスを Azure SQL Database サーバーのファイアウォール規則に追加して、ローカル コンピューターが後のローカル テストのためにデータベースに接続できるようにします。
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Note
この記事では、セキュリティのベスト プラクティスを示すために SQL 認証を無効にします。 Microsoft Entra ID は、サーバーへの接続を認証するために使用されます。 SQL 認証を有効にする必要がある場合は、az sql server create
を参照してください。
Service Connector を使用して AKS でサービス接続を作成する
このセクションでは、Microsoft Entra ワークロード ID と Service Connector を使用して、AKS クラスターと Azure SQL Database の間にサービス接続を作成します。 この接続により、AKS クラスターは SQL 認証を使用せずに Azure SQL Database にアクセスできます。
まず、Azure Service Connector Resource Provider アプリに先ほどデプロイした Application Gateway へのアクセス許可を付与します。 この手順は、AKS クラスターと Azure SQL Database の間にサービス接続を正常に作成するために必要です。
- Azure portal に移動し、先ほど作成したリソース グループに移動します。
- リソース グループ内のリソースの一覧で、[種類] の値が [アプリケーション ゲートウェイ] のリソースを選択します。
- [アクセス制御 (IAM)] を選択します。 次に、[追加] を展開し、[ロールの割り当ての追加] を選択します。
- [ロール] タブで、[特権管理者ロール] を選択します。 次に、[共同作成者] を選択します。 [次へ] を選択します。
- [メンバー] タブで、[メンバーの選択] を選択します。 次に、Azure Service Connector Resource Provider アプリを検索します。 アプリを選択し、[選択] を選択します。 [次へ] を選択します。
- [レビューと割り当て] を選択します。 ロールの割り当てが完了するまで数秒待ちます。
次に、以下のコマンドを実行して、Microsoft Entra ワークロード ID と Service Connector を使用して、AKS クラスターと SQL データベースの間の接続を作成します。 詳細については、「Service Connector を使用した AKS でのサービス接続の作成 (プレビュー)」を参照してください。
# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true
# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--query id \
--output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
--resource-group $RESOURCE_GROUP_NAME \
--name $SQL_SERVER_NAME \
--query id \
--output tsv)
# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME}
# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME} \
--query id \
--output tsv)
# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
--connection akssqlconn \
--client-type java \
--source-id $AKS_CLUSTER_RESOURCE_ID \
--target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
--workload-identity $UAMI_RESOURCE_ID
Note
Microsoft Entra ワークロード ID を使用して、SQL 認証を使用しない Azure SQL Database への安全なアクセスを実現することをお勧めします。 SQL 認証を使用する必要がある場合は、このセクションのこれまでの手順を無視し、ユーザー名とパスワードを使用して Azure SQL Database に接続します。
Service Connector によって作成されたサービス アカウントとシークレットを取得する
Azure SQL Database に対して認証を行うには、Service Connector によって作成されたサービス アカウントとシークレットを取得する必要があります。 「チュートリアル: AKS アプリを Azure SQL Database に接続する」の「コンテナーの更新」セクションの手順に従ってください。 提供されている YAML サンプル コード スニペットを使用してデプロイを直接作成するという選択肢を採用して、以下の手順を使用します。
次の例に示すように、サンプルの Kubernetes デプロイ YAML のピックアップされたセクションから、
serviceAccountName
とsecretRef.name
の値をコピーします。serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
以下のコマンドを使用して、環境変数を定義します。
<service-account-name>
と<secret-name>
を、前の手順でコピーした値に置き換えます。export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
これらの値は、次のセクションで、Liberty アプリケーションを AKS クラスターにデプロイするために使用します。
Note
Service Connector によって作成されたシークレットには AZURE_SQL_CONNECTIONSTRING
が含まれています。これは Azure SQL Database へのパスワードなし接続文字列です。 詳細については、「Azure SQL Database の Service Connector との統合」の「ユーザー割り当てマネージド ID 認証」セクションのサンプル値を参照してください。
データベースと AKS クラスターの設定が完了したので、Open Liberty アプリケーションをホストするための AKS の準備に進むことができるようになりました。
サンプル アプリケーションを構成してデプロイする
このセクションの手順に従って、Liberty ランタイムにサンプル アプリケーションをデプロイします。 これらの手順では、Maven を使用します。
アプリケーションをチェックアウトする
この記事のサンプル コードをクローンします。 サンプルは GitHub にあります。
リポジトリにはいくつかのサンプルがあります。 この記事ではJava-app を使用します。 次のコマンドを実行して、これらのサンプルを取得します。
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107
HEAD がデタッチされた状態であることを示すメッセージが表示された場合、このメッセージは無視しても問題ありません。 このメッセージは、タグをチェックアウトしたことを意味します。
重要なファイルとディレクトリを含むアプリケーションのファイル構造を以下に示します。
java-app
├─ src/main/
│ ├─ aks/
│ │ ├─ openlibertyapplication-agic-passwordless-db.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-wlp
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml
java、resources、および webapp ディレクトリには、サンプル アプリケーションのソース コードが含まれています。 このコードでは、jdbc/JavaEECafeDB
という名前のデータ ソースを宣言して使用します。
aks ディレクトリ内のファイル openlibertyapplication-agic-passwordless-db.yaml は、AGIC と Azure SQL Database へのパスワードレス接続によってアプリケーション イメージをデプロイするために使用されます。 この記事では、このファイルを使用することを前提としています。
docker ディレクトリには、Open Liberty または WebSphere Liberty を使用してアプリケーション イメージを作成するための 2 つのファイルがあります。
liberty/config ディレクトリ内の server.xml ファイルは、Open Liberty および WebSphere Liberty クラスターのデータベース接続を構成するために使用されます。 これは、Azure SQL Database への接続に使用される変数 azure.sql.connectionstring
を定義します。
pom.xml ファイルは、プロジェクトの構成情報を含む Maven プロジェクト オブジェクト モデル (POM) ファイルです。 pom-azure-identity.xml ファイルは、azure-identity
への依存関係を宣言します。 このファイルは、Microsoft Entra ID を使用して Azure サービスに認証するために使用されます。
Note
このサンプルでは、azure-identity
ライブラリを使用して、Microsoft Entra 認証によって Azure SQL Database に対する認証を行います。 Liberty アプリケーションで SQL 認証を使用する必要がある場合は、「JDBC を使用したリレーショナル データベース接続」を参照してください。
プロジェクトのビルド
これで必要なプロパティが集まったので、アプリケーションをビルドできるようになりました。 プロジェクトの POM ファイルにより、環境から多くの変数が読み取られます。 Maven ビルドの一部として、これらの変数は src/main/aks にある YAML ファイルの値を設定するために使用されます。 必要に応じて、Maven の外部でアプリケーションに対して同様の操作を行うことができます。
cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
export INGRESS_TLS_SECRET=${INGRESS_TLS_SECRET}
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
プロジェクトをローカルでテストする
Azure にデプロイする前にプロジェクトをローカルで実行してテストします。 便宜上、この記事では liberty-maven-plugin
を使用します。 liberty-maven-plugin
の詳細については、Open Liberty の記事「Maven を使用した Web アプリケーションの構築」を参照してください。
Note
"サーバーレス" データベースのデプロイを選んだ場合、SQL データベースが一時停止モードになっていないことを確認します。 これを行う方法の 1 つは、「クイックスタート: Azure portal クエリ エディター (プレビュー) を使用して Azure SQL Database のクエリを実行する」で説明されているように、データベース クエリ エディターにログインすることです。
liberty:run
を使用してアプリケーションを起動します。cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:run
アプリケーションが想定どおりに動作することを確認します。 コマンドの出力に
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds.
のようなメッセージが表示されるはずです。 ブラウザーでhttp://localhost:9080/
にアクセスし、アプリケーションがアクセス可能で、すべての機能が動作していることを確認します。Ctrl+C キーを押して停止します。 バッチ ジョブを終了するように求められた場合は Y キーを押します。
完了したら、次のコマンドを使用して、ローカル IP アドレスが Azure SQL Database にアクセスすることを許可するファイアウォール規則を削除します。
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
AKS デプロイのイメージをビルドする
次の例に示すように、az acr build
コマンドを実行して、イメージをビルドできるようになりました。
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
az acr build
コマンドは、Dockerfile 内で指定された成果物を Container Registry インスタンスにアップロードし、イメージをビルドして、それを Container Registry インスタンス内に保存します。
アプリケーションを AKS クラスターにデプロイする
次の手順を使用して、AKS クラスターに Liberty アプリケーションをデプロイします。
AKS クラスターに接続します。
シェルに
cmdToConnectToCluster
の値を貼り付けて、コマンドを実行します。以下のコマンドを実行して、デプロイ ファイルを適用します。
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
次のコマンドを使用して、すべてのポッドが正常に再起動されるまで待ちます。
kubectl get pods --watch
次の例のような出力は、すべてのポッドが実行されていることを示しています。
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-67cdc95bc-2j2gr 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-fgtt8 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-h47qm 1/1 Running 0 29s
アプリケーションをテストする
ポッドが実行されている場合は、Application Gateway インスタンスのパブリック IP アドレスを使用することで、アプリケーションをテストできます。
次のコマンドを実行して、AGIC によって作成されたイングレス リソースによって公開される Application Gateway インスタンスのパブリック IP アドレスを取得して表示します。
export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL
URL をコピーしてブラウザーで開くと、アプリケーションのホーム ページが表示されます。 Web ページが正しくレンダリングされない場合、または 502 Bad Gateway
エラーが返された場合は、アプリがまだバックグラウンドで開始されています。 数分待ってから操作をやり直してください。
リソースをクリーンアップする
Azure の課金を回避するには、不要なリソースをクリーンアップする必要があります。 クラスターが不要になったら、以下のように az group delete
コマンドを使用して、リソース グループ、コンテナー サービス、コンテナー レジストリ、データベース、およびすべての関連リソースを削除します。
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
次のステップ
次のリファレンスで詳細を確認できます。
- Azure Kubernetes Service
- チュートリアル: AKS アプリを Azure SQL Database に接続する (プレビュー)
- Azure SQL Database を Service Connector と統合する
- Microsoft Entra 認証を使用して接続する
- Open Liberty
- Open Liberty オペレーター
- Open Liberty サーバーの構成
- Liberty Maven プラグイン
- Open Liberty コンテナー イメージ
- WebSphere Liberty コンテナー イメージ
Azure に IBM WebSphere ファミリをデプロイする方法の詳細については、「Azure で WebSphere ファミリを実行するための解決策は?」を参照してください。
Azure Kubernetes Service