ASM Cloud Native Delivery Experience

前提条件

◉ ASM インスタンスが作成済みであり、ASM インスタンスの Istio バージョンが 1.9.7.93 以降であること。詳細については、「ASM インスタンスの作成」を参照してください。
◉ ACK クラスターが作成済みであること。詳細については、「マネージド Kubernetes クラスターの作成」を参照してください。
◉ クラスターを ASM インスタンスに追加していること。詳細については、「ASM インスタンスへのクラスターの追加」を参照してください。
ステップ 1: データプレーンクラスター KubeAPI の Istio リソースアクセスを有効化

ASM コンソールにログインします。

左側のナビゲーションバーで、Service Mesh > メッシュ管理を選択します。
メッシュ管理ページで、設定対象のインスタンスを見つけ、インスタンスの名前をクリックするか、操作列の「管理」をクリックします。
メッシュ情報ページで、右上の隅にある「機能設定」をクリックします。
「機能設定の更新」パネルで、「データプレーンクラスター KubeAPI の Istio リソースアクセスを有効化」を選択し、「OK」をクリックします。

ステップ 2: asm-cr-aggregation 設定情報の取得

ASM インスタンス ID を確認します。
a. ASM コンソールにログインします。
b. 左側のナビゲーションバーで、Service Mesh > メッシュ管理を選択します。
c. メッシュ管理ページで、設定対象のインスタンスを見つけ、インスタンスの名前をクリックするか、操作列の「管理」をクリックします。メッシュ情報ページで ASM インスタンス ID を確認します。
クラスターリージョン ID を確認します。
a. Container Service 管理コンソールにログインします。
b. コンソールの左側のナビゲーションウィンドウで「クラスター」をクリックします。クラスターページで対象クラスターのリージョンを確認します。たとえば、クラスターリージョンが中国北 2 (北京) の場合、クラスターリージョン ID は cn-beijing です。
AccessKey ID と AccessKey Secret を確認します。詳細については、「AccessKey の取得」を参照してください。

ステップ 3: asm-cr-aggregation のインストール

CloudShell を介してクラスターに接続します。
asm-cr-aggregation をローカルにダウンロードして解凍します。
curl -O -L https://alibabacloudservicemesh.oss-cn-beijing.aliyuncs.com/asm-helmcharts/asm-cr-aggregation.tgz
tar xvf asm-cr-aggregation.tgz

asm-cr-aggregation フォルダに入り、values.yaml ファイルを見つけます。values.yaml ファイルに ASM ID、クラスターリージョン ID、AccessKey ID、AccessKey Secret を追加し、repository を registry-vpc.cn-shenzhen.aliyuncs.com/ali-workshop/asm-craggregation-apiservice に変更して、values.yaml ファイルを保存します。

asm-cr-aggregation が正常にインストールされたことを確認します。
a. Container Service 管理コンソールにログインします。
b. コンソールの左側のナビゲーションバーで「クラスター」をクリックします。
c. クラスターリストページで、対象クラスターの名前をクリックするか、対象クラスターの右側にある操作列の「詳細」をクリックします。
d. クラスター管理ページの左側のナビゲーションバーで「アプリケーション」>「Helm」を選択します。Helm ページに asm-cr-aggregation が表示されれば、asm-cr-aggregation が正常にインストールされています。
ステップ 4: RAM ユーザー権限の付与

データプレーンクラスター Kubernetes API を使用して Istio リソースにアクセスする前に、アカウントにデータプレーンクラスターの Istio リソースへのアクセス権限と ASM のカスタムリソース権限が必要です。

RAM ユーザーに Istio リソースへの読み取りおよび書き込み権限を付与します。

Alibaba Cloud アカウントで Container Service 管理コンソールにログインします。
コンソールの左側のナビゲーションバーで「権限管理」をクリックします。
サブアカウントタブで、対象 RAM ユーザーの右側にある「権限管理」をクリックします。
クラスター RBAC 設定ページで「+」アイコンをクリックし、権限を付与するクラスターと名前空間を選択し、アクセス権限を「カスタム」に設定し、テキストボックスで「asm-istio-admin」を選択して「次へ」をクリックします。
RAM ユーザーに Istio リソースへの読み取りおよび書き込み権限があることを確認します。
a. 次のコマンドを実行して、VirtualService を確認します。
kubectl get VirtualService
想定される出力:
NAME CREATED AT
reviews-route 2021-11-15T07:09:10Z
b. 次のコマンドを実行して、VirtualService を編集します。
kubectl edit VirtualService reviews-route
想定される出力:
virtualservice.networking.istio.io/reviews-route edited
ステップ 5: KubeVela のインストール

Container Service 管理コンソールにログインします。
コンソールの左側のナビゲーションで、マーケットプレイス > アプリカタログを選択します。
アプリカタログページで「ack-kubevela」を検索し、「ack-kubevela」をクリックします。
2 つのイメージを深圳のイントラネットリポジトリに向けるように変更します。
a. registry-vpc.cn-shenzhen.aliyuncs.com/ali-workshop/vela-core
b. registry-vpc.cn-shenzhen.aliyuncs.com/ali-workshop/kube-webhook-certgen
ack-kubevela 詳細ページの作成パネルでクラスターを選択し、「作成」をクリックします。
ステップ 6: KubeVela 設定ファイルのデプロイ

asm_kubevela フォルダに入り、次のコマンドを 1 つずつ実行して KubeVela 設定ファイルをデプロイします。
kubectl apply -f rollback-wf-def.yaml
kubectl apply -f canary-rollout-wf-def.yaml
kubectl apply -f traffic-trait-def.yaml
ステップ 7: アプリケーションとゲートウェイのデプロイ

asm_kubevela フォルダに入り、次のコマンドを実行して Bookinfo アプリケーションをデプロイします。application.yaml ファイルで、review サービスの traits フィールドの type を canary-traffic に設定します。これは、段階的トラフィックリリースの運用機能が設定されていることを示します。

EOF

ASM コンソールでゲートウェイルールと VirtualService をデプロイします。
a. ASM コンソールにログインします。
b. 左側のナビゲーションバーで、Service Mesh > メッシュ管理を選択します。
c. メッシュ管理ページで、設定対象のインスタンスを見つけ、インスタンスの名前をクリックするか、操作列の「管理」をクリックします。
d. ゲートウェイルールをデプロイします。
◉ メッシュ詳細ページの左側のナビゲーションバーで「トラフィック管理」>「ゲートウェイルール」を選択し、ページの右側にある「YAML で作成」をクリックします。
◉ 作成ページで名前空間をデフォルトに設定し、次の内容をテキストボックスにコピーして「作成」をクリックします。

ブラウザのアドレスバーにエントリゲートウェイのアドレス/productpage をポート 80 で入力し、Bookinfo アプリケーションにアクセスします。ページを数回リフレッシュすると、10% の確率で赤い星が、90% の確率で黒い星が表示されます。
次のコマンドを実行してワークフローを継続し、すべての review サービスを v3 にアップグレードします。

ブラウザのアドレスバーにエントリゲートウェイのアドレス/productpage をポート 80 で入力し、Bookinfo アプリケーションにアクセスします。ページを数回リフレッシュすると、赤い星のみが表示されます。これは、すべての review サービスが v3 にアップグレードされたことを示します。

(オプション) ステップ 9: アプリケーションのロールバック

期待されていない新しいバージョンのアプリケーションが公開された場合、公開ワークフローを終了し、アプリケーションを以前のバージョンにロールバックできます。

次のコマンドを実行して、アプリケーションをロールバックします。

EOF

rollback.yaml ファイルで type を canary-rollback に設定すると、次の操作が自動的に実行されます。
a. Rollout オブジェクトの targetRevisionName を古いバージョンに更新し、新しいバージョンのすべてのリリース済みインスタンスを自動的に古いバージョンにロールバックし、アップグレードされていない古いバージョンのインスタンスを保持します。

b. VirtualService オブジェクトのルートフィールドを更新し、すべてのトラフィックを古いバージョンに向けます。
c. DestinationRule オブジェクトのサブセットフィールドを更新し、古いバージョンのみを受け入れるようにします。

ブラウザのアドレスバーにエントリゲートウェイのアドレス/productpage をポート 80 で入力し、Bookinfo アプリケーションにアクセスします。ページを数回リフレッシュすると、黒い星のみが表示されます。これは、review サービスが v2 にロールバックされたことを示します。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.