このシリーズは、OpenShift SERVICメッシュチュートリアルは、「Red Hatの公式公募に基づいていますMicoservicesためIstioサービスメッシュの紹介出版物」、私はすべての操作がOpenShift 4.2.xでは環境の中で行われ検証されます。読み取りまたは小さなパートナーは、上記のゆっくり読んで本をダウンロードすることができ、より英語を学び、関連するシーンの知識の必要性が好きです。
トラフィックミラーリングとトラフィックのロードバランシング:グレーのリリースでは、我々はトラフィック管理を実装する方法を理解して、このセクションでは、我々は他の二つのフロー制御機能Istioをご紹介します。
トラフィックミラーリング
- 最初のコマンド・ウィンドウで実行勧告-v1とポッドの勧告-V2のインスタンス名を取得します。
$ oc get pod -n tutorial| grep recommendation
recommendation-v1-549bf5fcb9-zdxhd 2/2 Running 0 154m
recommendation-v2-599867df6c-5t2b7 2/2 Running 0 87m
- コンテナのログを表示するために実行して最初のコマンドウィンドウでのマイクロ勧告-V2サービスを実行します。
$ oc logs -f recommendation-v2-599867df6c-5t2b7 -c recommendation -n tutorial
- 本変形コマンドウィンドウを実行しVirtualServiceポリシーでは、要求は、勧告-V1に送られ、勧告-V2に画像を転送します。
ファイルistiofiles /仮想サービスrecommendation- V1-ミラーv2.ymlが転送ポリシーのミラーイメージを規定します。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: recommendation
spec:
hosts:
- recommendation
http:
- route:
- destination:
host: recommendation
subset: version-v1
mirror:
host: recommendation
subset: version-v2
のVirtualService戦略勧告を修正するためのコマンドを実行します。
$ oc apply -f istiofiles/virtual-service-recommendation-v1-mirror-v2.yml -n tutorial
- 第2のマイクロコマンドウィンドウにカスタマーサービス要求。このとき、窓を見ることができる「推奨V1」への要求
$ curl $INGRESS_GATEWAY/customer
customer => preference => recommendation v1 from '549bf5fcb9-zdxhd': 1924
- 最初のコマンドウィンドウでは、リクエストにもお勧め-V2ミラーリングマイクロサービスに転送されていることを示す、推奨-v2日志有一行新纪录が表示されます。
- イメージ戦略に基づいて削除VirutalServiceオブジェクト。
$ oc delete -f istiofiles/virtual-service-recommendation-v1-mirror-v2.yml -n tutorial
ポッドのバランスを取るトラフィック負荷のためのサービス
場合マイクロサービスインスタンスまたは複数バージョンの、いかなるSerivceはDestinationRule、ポッドのその対応する複数の順序(ラウンドロビン)方式要求に応じてSerivceホイールを定義されていない場合。私たちは、ポッドへのサービスからの負荷分散戦略を実現するために、DestinationRuleオブジェクトSerivceを定義することができます。
- VirutalServiceオブジェクト削除ステップは、ミラーベースの戦略を作成することができます。注:この時点での勧告にはVirutalServiceを持っていません。
$ oc delete -f istiofiles/virtual-service-recommendation-v1-mirror-v2.yml -n tutorial
$ oc get istio-io
NAME HOST AGE
destinationrule.networking.istio.io/recommendation recommendation 79m
NAME AGE
gateway.networking.istio.io/customer-gw 21h
NAME GATEWAYS HOSTS AGE
virtualservice.networking.istio.io/customer-vs [customer-gw] [*] 21h
- マイクロオペレーションサービス推薦-V2ポッド(実施例3)が増加しました。
$ oc scale deployment recommendation-v2 --replicas=3 -n tutorial
- コマンドを実行し、要求がマイクロケース推薦サービスに転送され表示します。このとき、シーケンス番号は、回転ポッドインスタンスの下で配布されている要求から見ることができます。
./scripts/run.sh $INGRESS_GATEWAY/customer
customer => preference => recommendation v1 from '67976848-4l4s7': 1332
customer => preference => recommendation v2 from '3cbba7a9cde5': 82
customer => preference => recommendation v2 from '3cbba7a9cde5': 1
customer => preference => recommendation v2 from '3cbba7a9cde5': 1
customer => preference => recommendation v1 from '67976848-4l4s7': 1333
customer => preference => recommendation v2 from '3cbba7a9cde5': 83
customer => preference => recommendation v2 from '3cbba7a9cde5': 2
customer => preference => recommendation v2 from '3cbba7a9cde5': 2
...
- 戦略DestinationRuleオブジェクトをロードバランシングを変更するための実行]コマンドをランダムに送信されます。
ファイルistiofiles /宛先ルールrecommendation_lb_policy_app.ymlそれはポッドインスタンスであるかどうか、勧告-v1または勧告-V2であるかどうか、全てランダムな勧告を送信するように設定。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: recommendation
spec:
host: recommendation
trafficPolicy:
loadBalancer:
simple: RANDOM
DestinationRuleオブジェクトを変更するためのコマンドを実行します。
$ oc apply -f istiofiles/destination-rule-recommendation_lb_policy_app.yml -n tutorial
- コマンドを実行し、要求がマイクロケース推薦サービスに転送され表示します。シーケンスの数は、ランダムに異なる背景の要求推奨実施例を参照するために分散されてもよいです。
./scripts/run.sh $INGRESS_GATEWAY/customer
customer => preference => recommendation v2 from '3cbba7a9cde5': 4
customer => preference => recommendation v1 from '67976848-4l4s7': 1420
customer => preference => recommendation v2 from '3cbba7a9cde5': 26
customer => preference => recommendation v1 from '67976848-4l4s7': 1421
customer => preference => recommendation v2 from '3cbba7a9cde5': 5
customer => preference => recommendation v2 from '3cbba7a9cde5': 6
customer => preference => recommendation v2 from '3cbba7a9cde5': 227
customer => preference => recommendation v1 from '67976848-4l4s7': 1422
customer => preference => recommendation v2 from '3cbba7a9cde5': 7
customer => preference => recommendation v2 from '3cbba7a9cde5': 228
customer => preference => recommendation v2 from '3cbba7a9cde5': 229
customer => preference => recommendation v2 from '3cbba7a9cde5': 8
customer => preference => recommendation v1 from '67976848-4l4s7': 1423
customer => preference => recommendation v1 from '67976848-4l4s7': 1424
customer => preference => recommendation v2 from '3cbba7a9cde5': 5
customer => preference => recommendation v2 from '3cbba7a9cde5': 230
customer => preference => recommendation v2 from '3cbba7a9cde5': 9
customer => preference => recommendation v1 from '67976848-4l4s7': 1425
customer => preference => recommendation v2 from '3cbba7a9cde5': 6
customer => preference => recommendation v2 from '3cbba7a9cde5': 10
customer => preference => recommendation v1 from '67976848-4l4s7': 1426
customer => preference => recommendation v1 from '67976848-4l4s7': 1427
customer => preference => recommendation v1 from '67976848-4l4s7': 1428
customer => preference => recommendation v1 from '67976848-4l4s7': 1429
customer => preference => recommendation v2 from '3cbba7a9cde5': 7
customer => preference => recommendation v2 from '3cbba7a9cde5': 231
customer => preference => recommendation v1 from '67976848-4l4s7': 1430
customer => preference => recommendation v2 from '3cbba7a9cde5': 232
...
関係VirtualServiceとDestinationRule
上記の動作から、我々はVirtualService DestinationRuleは、オブジェクトとオブジェクトは、単独または組み合わせて使用することができる見ることができます。VirtualServiceつの機能は、後端部に異なるポッドを選択するための異なるサービス、サービス後端と転送要求に対して、要求を転送する機能を選択することです。VirtualServiceとDestinationRuleは、サブネットによって一緒に連結されています。
「ポッドをバランシングトラフィック負荷のためのサービス」は、本明細書で第2のシナリオは、独立DestinationRuleであり、そしてVirtualServiceもreviews.com dev.reviews.comにおける毛の部分の要求に従って、例えば、独立して使用します。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews-route-two-domains
spec:
hosts:
- reviews.com
http:
- route:
- destination:
host: dev.reviews.com
weight: 25
- destination:
host: reviews.com
weight: 75