エンタープライズ分散アプリケーションサービス (EDAS) は、クラウドネイティブKubernetesベースのContainer Service for Kubernetes (ACK) と完全に統合されます。 EDASを使用すると、Kubernetesコンテナ化アプリケーションのライフサイクル全体を管理できます。 ACKクラスターには、Alibaba Cloudの機能が仮想マシン、ストレージ、ネットワーク、セキュリティに組み込まれており、Kubernetesコンテナ化アプリケーションに優れたランタイム環境を提供します。 このトピックでは、イメージを使用してKubernetesクラスターにJavaマイクロサービスアプリケーションをデプロイする方法について説明します。
背景情報
Container Service for Kubernetes (ACK) クラスターにアプリケーションをデプロイするには、ACKコンソールでクラスターを作成し、そのクラスターをEnterprise Distributed Application Service (EDAS) コンソールにインポートする必要があります。 配置パッケージまたはイメージを使用して、クラスターにアプリケーションを配置できます。
前提条件
Alibaba Cloudアカウントに対してEDASとACKが有効化されています。 詳細については、以下のトピックをご参照ください。
ACKのデフォルトの役割がアカウントに付与されます。 詳細については、「ACKロール」をご参照ください。
ステップ1: ACKクラスターの作成
ACKコンソールにログインし、ACKクラスターを作成します。 詳細については、「ACKを使用してマジックキューブゲームアプリケーションをすばやくデプロイする」をご参照ください。
ACK Serverlessクラスターを作成する場合は、VPCパラメーターを [VPCの作成] に設定し、Service Discoveryパラメーターを [PrivateZone] に設定します。 これにより、クラスターがEDASにインポートされた後、ACK ServerlessクラスターはAlibaba Cloud Service Mesh (ASM) を使用できます。 VPCパラメーターを [既存のVPCを選択] に設定した場合、クラスターの作成後にクラスターに仮想プライベートクラウド (VPC) とvSwitchリソースが含まれているかどうかを確認します。 詳細については、「ACKサーバーレスクラスターの作成」をご参照ください。
手順2: EDASコンソールへのACKクラスターのインポート
デフォルトでは、ackクラスターをEDASコンソールでEDASにインポートするときに、ack-ahas-sentinel-pilot、ack-arms-pilot、およびACK-arms-prometheusコンポーネントがインストールされます。 ack-ahas-sentinel-pilotコンポーネントは、スロットリングと劣化のためのアプリケーション保護コンポーネントです。 ack-arms-pilotコンポーネントは、アプリケーションリアルタイム監視サービス (ARMS) コンポーネントです。 ack-arms-prometheusコンポーネントは、Prometheusモニタリングコンポーネントです。
にログインします。 EDASコンソールを使用します。 左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、ACKクラスターが存在するリージョンを選択し、[Container Service Kubernetesクラスターの同期] をクリックします。
EDASに同期しているACKクラスターを見つけ、[操作] 列の [インポート] をクリックします。
[インポートの事前確認] ダイアログボックスで、[続行] をクリックします。
[Kubernetesクラスターのインポート] ダイアログボックスで、[マイクロサービス名前空間] ドロップダウンリストからACKクラスターをインポートするマイクロサービス名前空間を選択し、ビジネス要件に基づいて [サービスメッシュ] をオンまたはオフにして、[インポート] をクリックします。
ACKクラスターの [クラスターステータス] 列の値が [実行中] で、[インポートステータス] 列の値が [インポート] の場合、クラスターはEDASにインポートされます。
手順3: KubernetesクラスターへのJavaアプリケーションのデプロイ
EDASコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 上部のナビゲーションバーで、リージョンを選択します。 ページの上部で、マイクロサービス名前空間を選択します。 [アプリケーション] ページの左上隅にある [アプリケーションの作成] をクリックします。
[基本情報] ステップで、[クラスタータイプ] セクションと [アプリケーションランタイム環境] セクションでパラメーターを設定し、[次へ] をクリックします。
[設定] ステップで、アプリケーションの環境情報、基本情報、デプロイ方法、およびリソースパラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
マイクロサービス名前空間
アプリケーションをデプロイするマイクロサービスの名前空間。 作成したマイクロサービス名前空間を選択します。 マイクロサービス名前空間がない、または選択した場合、このパラメーターはデフォルトに設定されます。
を作成していない場合は、マイクロサービス名前空間または別のものを作成したいマイクロサービス名前空間をクリックします。マイクロサービス名前空間の作成を作成します。マイクロサービス名前空間. 詳細については、「マイクロサービス名前空間の管理」トピックの「名前空間の作成」セクションをご参照ください。
クラスター
アプリケーションをデプロイするクラスター。 [クラスター] ドロップダウンリストからKubernetesクラスターを選択します。
選択したKubernetesクラスターがEDASにインポートされていない場合は、[このクラスターはEDASで初めて使用されます] を選択します。 このチェックボックスをオンにすると、アプリケーションの作成時にクラスターがEDASにインポートされます。 これは、ある程度の時間を消費する。 次に、Alibaba Cloud Service Meshが有効化されているかどうかを確認します。
説明アプリケーションと同じマイクロサービス名前空間に属していないクラスターを選択できます。
K8s名前空間
アプリケーションのKubernetes名前空間。 内部システムオブジェクトは、異なるKubernetes名前空間に割り当てられ、論理的に分離されたプロジェクト、チーム、またはユーザーグループを形成します。 このようにして、異なるグループを個別に管理し、クラスター全体のリソースを共有できます。 有効な値:
default: デフォルトのKubernetes名前空間。 オブジェクトにKubernetes名前空間を指定しない場合、デフォルトのKubernetes名前空間が使用されます。
kube-system: システムによって作成されるオブジェクトのKubernetes名前空間。
kube-public: システムによって自動的に作成されるKubernetes名前空間。 このKubernetes名前空間は、認証されていないユーザーを含むすべてのユーザーが読み取ることができます。
この例では、[default] を選択します。
カスタムKubernetes名前空間を作成する場合は、[Kubernetes名前空間の作成] をクリックします。 表示されるダイアログボックスで、K8s名前空間フィールドにKubernetes名前空間の名前を入力します。 名前には、数字、小文字、およびハイフン (-) を使用でき、長さは1〜63文字です。 文字または数字で開始および終了する必要があります。
アプリケーション名
アプリケーションの名前。 名前は文字で始まる必要があり、数字、文字、およびハイフン (-) を使用できます。 名前の長さは最大36文字です。
アプリケーションの説明
アプリケーションの説明。 説明の長さは最大128文字です。
画像タイプ
アプリケーションのデプロイに使用されるイメージのタイプ。 有効な値: イメージの設定
Alibaba Cloud Container Registryパラメーターを現在のアカウントに設定した場合、次の操作を実行します。
[リージョン] 、[コンテナレジストリ] 、[イメージリポジトリ名] 、および [イメージリポジトリ名] パラメーターを設定し、イメージのバージョンを選択します。
Alibaba Cloud Container Registryパラメーターを [その他のAlibaba Cloudアカウント] に設定した場合、次のいずれかの操作を実行します。
イメージがパブリックリポジトリに保存されている場合は、[フルイメージアドレス] パラメーターを指定します。
イメージがプライベートリポジトリに保存されている場合は、aliyun-acr-credential-helperコンポーネントを使用してコンテナイメージを取得します。 詳細については、「aliyun-acr-credential-helperコンポーネントを使用してシークレットなしでイメージをプルする」をご参照ください。
デモ画像
このオプションを選択する場合は、EDASが提供するデモ画像を使用し、画像バージョンを選択する必要があります。
説明デモ画像はApsara Stackには提供されません。
説明Container Registry Enterprise Editionのリポジトリ内のイメージを使用してアプリケーションをRAMユーザーとしてデプロイする前に、RAMユーザーは関連するAlibaba Cloudアカウントから必要な権限を取得する必要があります。 詳細については、「RAM認証ルール」をご参照ください。
合計ポッド
アプリケーションをデプロイするポッドの数。 ポッドの最大数は、クラスターパフォーマンスの影響を受けます。
単一ポッドのリソースのクォータ
ポッド用に予約するCPU、メモリ、および一時的なストレージ。 制限を指定する場合は、数値を入力します。 デフォルト値0は、制限が課されないことを指定する。 CPU、メモリ、およびエフェメラルストレージの最大クォータは、クラスターパフォーマンスの影響を受けます。
(オプション) [詳細設定] ステップで、詳細設定を構成します。
- 重要
JDK 11を使用する場合は、
one-agent.jdk.version: OpenJDK11
アノテーションを設定します。JDK 17を使用する場合は、
one-agent.jdk.version: OpenJDK17
アノテーションを設定します。
詳細設定後、[アプリケーションの作成] をクリックします。 [作成完了] ステップで、[アプリケーションの作成] をクリックします。
[アプリケーション変更の事前チェックの確認] ダイアログボックスで、[事前チェックの開始] をクリックします。
ダイアログボックスのデータが更新されたら、事前チェック項目と結果を確認し、[続行] をクリックします。
(オプション) 上記の事前チェック項目を変更した場合は、[もう一度確認] をクリックします。
アプリケーションのデプロイには数分かかります。 プロセス中に、変更レコードを表示して、[変更リスト] ページでアプリケーションのデプロイの進行状況を追跡できます。 アプリケーションのデプロイ後、[アプリケーションの概要] ページに移動し、ポッドの実行ステータスを表示します。 ポッドが実行中の状態の場合、アプリケーションはデプロイされます。 ポッドの実行ステータスをクリックすると、アプリケーションインスタンスの [デプロイメント] 、[ポッド] 、および詳細設定を表示できます。
次のステップ
アプリケーションをデプロイした後、インターネットに接続するServer Load Balancer (SLB) インスタンスを追加して、インターネット経由でアプリケーションにアクセスできるようにします。 内部対応SLBインスタンスを追加して、同じVPC内のすべてのノードがこの内部対応SLBインスタンスを使用してアプリケーションにアクセスできるようにすることもできます。 詳細については、「CLBインスタンスのバインド」または「CLBインスタンスの再利用」をご参照ください。
お問い合わせ
EDASでACKクラスターとACKサーバーレスクラスターを使用する際に質問や提案がある場合は、DingTalkグループ (グループID: 23197114) に参加してテクニカルサポートに連絡してください。