マイクロサービスエンジン (MSE) のマイクロサービスガバナンスは、オープンソース Kubernetes クラスタ内の Spring Cloud アプリケーションと Dubbo アプリケーションにマイクロサービスガバナンス機能を提供します。ビジネスコードを変更する必要はありません。マイクロサービスガバナンス機能には、無損失オフライン、外れ値削除、サービスクエリ、サービス認証、サービステスト、カナリアリリースが含まれます。マイクロサービスガバナンス機能は、オンラインマイクロサービスアプリケーションの安定性と開発効率を大幅に向上させるのに役立ちます。このトピックでは、オープンソース Kubernetes クラスタ内のアプリケーションを MSE のマイクロサービスガバナンスに接続する方法について説明します。
前提条件
マイクロサービスガバナンスがアクティブ化されている。詳細については、「マイクロサービスガバナンスをアクティブ化する」をご参照ください。
Kubernetes api-server コンポーネントのバージョンが 1.16 以降である。
アプリケーションがデプロイされているクラスタにインターネット経由でアクセスできる。
MSE Java エージェントをマウントするには、Java 仮想マシン (JVM) ヒープメモリのサイズが 256 MB より大きいことを確認してください。
ステップ 1: ack-onepilot コンポーネントをインストールする
次の
wget
コマンドを実行して、ack-onepilot インストールパッケージをダウンロードします。wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-4.0.1.tgz'
次のコマンドを実行して、インストールパッケージを解凍します。
tar xvf ack-onepilot-4.0.1.tgz
インストールパッケージが解凍されたディレクトリにある
ack-onepilot/values.yaml
ファイル内の次のパラメータをビジネス要件に基づいて変更します。次に、ack-onepilot/values.yaml ファイルを保存します。registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__
registry
: ack-onepilot コンポーネントのイメージアドレスのプレフィックス。__ACK_REGION_ID__ を関連する pilot イメージアドレスに置き換えるだけです。イメージアドレスを別のストレージシステムに転送する場合、転送後にレジストリプレフィックスを変更する必要があります。また、次の 3 つのイメージも転送する必要があります。
registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot:4.0.1
registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot-init:4.0.1
registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ack-onepilot-alpine:3.18
cluster_id
: Kubernetes クラスタの ID。クラスタがセルフマネージドクラスタであり、Container Service for Kubernetes (ACK) に接続されていない場合は、このパラメータを
<uid>-<clusterid>
形式で指定することをお勧めします。uid パラメータは Alibaba Cloud アカウントの ID で、clusterid パラメータはクライアントの一意の ID です。クラスタが ACK クラスタまたは ACK マネージドクラスターの場合、このパラメータの値はクラスタ ID です。
accessKey
およびaccessKeySecret
: Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレット。Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットを取得する方法の詳細については、「AccessKey ペアの作成」をご参照ください。重要RAM ユーザーの AccessKey ID を使用する場合は、RAM ユーザーに AliyunARMSFullAccess ポリシーと AliyunMSEFullAccess ポリシーがアタッチされていることを確認する必要があります。
uid
: Alibaba Cloud アカウントの ID。Alibaba Cloud アカウントの ID を取得するには、Alibaba Cloud 管理コンソールの右上隅にあるプロフィール画像にポインタを移動します。region_id
: アプリケーションに対してマイクロサービスガバナンスを有効にするリージョンの ID。MSE がサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。
次のコマンドを実行して、ack-onepilot コンポーネントをインストールします。
重要コマンドを実行する前に、~/.kube ディレクトリにある構成ファイルの内容が、マイクロサービスガバナンスにアクセスする必要がある Kubernetes クラスタの構成に置き換えられていることを確認してください。
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
ステップ 2: アプリケーションの YAML ファイルを変更する
次のコマンドを実行して、目的のデプロイメント アプリケーションの構成を表示します。
### 指定された Deployment アプリケーションの構成を表示します。 kubectl get deployment {Deployment アプリケーションの名前} -o yaml
説明Deployment アプリケーションの名前
がわからない場合は、次のコマンドを実行してすべての Deployment アプリケーションに関する情報を表示します。次に、コマンド出力で構成を表示する Deployment アプリケーションを見つけ、Deployment アプリケーションの構成を表示します。### すべての Deployment アプリケーションの構成を表示します。 kubectl get deployments --all-namespace
デプロイメント アプリケーションの YAML ファイルを編集するには、次のコマンドを実行します。
kubectl edit deployment {Deployment アプリケーションの名前} -o yaml
YAML ファイルで、spec > template > metadata > labels ディレクトリに移動し、次のコンテンツを追加します。
msePilotAutoEnable: "on" # MSE のマイクロサービスガバナンスを有効にします。 msePilotCreateAppName: xxx # アプリケーションの名前。 mseNamespace: default # アプリケーションが存在する MSE 名前空間。このパラメータを指定しない場合、デフォルトの名前空間が使用されます。
上記の構成を保存すると、アプリケーションが自動的に再起動し、構成が有効になります。
2 ~ 5 分後に、アプリケーションが MSE コンソールの
ページに表示され、アプリケーションのデータが報告されている場合、アプリケーションは MSE のマイクロサービスガバナンスに正常に接続されています。
次のステップ
オープンソース Kubernetes クラスタにデプロイされているアプリケーションに対して上記の手順を実行すると、アプリケーションに対して MSE のマイクロサービスガバナンスが有効になります。MSE コンソール にログインし、MSE のマイクロサービスガバナンスを使用して Spring Cloud アプリケーションと Dubbo アプリケーションのサービスガバナンスを実行できます。
ack-onepilot コンポーネントをアンインストールする
MSE のマイクロサービスガバナンスを使用してオープンソース Kubernetes クラスタ内のアプリケーションとサービスを管理する必要がなくなった場合は、ack-onepilot コンポーネントをアンインストールできます。
ack-onepilot コンポーネントは、MSE と Application Real-Time Monitoring Service (ARMS) で共有されます。 ack-onepilot コンポーネントをアンインストールする前に、プロダクトが ARMS に接続されていないことを確認してください。そうでない場合、ack-onepilot コンポーネントがアンインストールされた後に ARMS を使用できなくなります。
次のコマンドを実行して、ack-onepilot コンポーネントをアンインストールします。
helm3 uninstall --namespace ack-onepilot ack-onepilot
アプリケーションのポッドを再起動します。