Application Delivery Management
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

StyleBookによる基本的な負荷分散構成の作成

前の例では、負荷分散仮想サーバーを作成するための基本的なStyleBookを作成しました。このStyleBookを別名で保存した後、基本的な負荷分散を構成するためのパラメーターとコンポーネントを追加して、StyleBookを更新します。このStyleBookファイルをbasic-lb-config.yamlという名前で保存します。

このセクションでは、負荷分散仮想サーバー、サービスグループ、およびサービス一覧からなる負荷分散の構成を作成する新しいStyleBookを設計します。また、サービスをサービスグループにバインドし、サービスグループを仮想サーバーにバインドできます。

このStyleBookを作成するには、最初にHeaderセクションを更新する必要があります。このセクションは、負荷分散仮想サーバーのStyleBook用に作成したセクションと似ています。Headerセクションで、nameの値をbasic-lb-configに変更します。また、このStyleBookの適切な説明を記述して、descriptiondisplay-nameを更新します。namespaceversionの値は、変更する必要はありません。nameを変更したため、name、namespace、およびversionの組み合わせにより、このStyleBookの一意の識別子がシステム内に作成されます。

name: basic-lb-config description: This StyleBook defines a simple load balancing configuration. display-name: Load Balancing Configuration namespace: com.example.stylebooks schema-version: "1.0" version: "0.1"

StyleBookのインポート

import-stylebooksセクションは、同じままです。このセクションでは、Nitro構成オブジェクトを使用するために、netscaler.nitro.config名前空間が指定されています。

import-stylebooks: - namespace: netscaler.nitro.config prefix: ns version: "10.5"

パラメーター

Parametersセクションを更新して、サービスまたはサーバーの一覧を定義するパラメーターと、サービスをリッスンするポートを定義するパラメーターを追加する必要があります。先頭の3つのパラメーター(name、ip、lb-alg)は、同じままです。

parameters: - name: name type: string label: Application Name description: Name of the application configuration required: true - name: ip type: ipaddress label: Application Virtual IP (VIP) description: Application VIP that the clients access required: true - name: lb-alg type: string label: LoadBalancing Algorithm description: Choose the load balancing algorithm used for load balancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true - name: svc-port type: tcp-port label: Server Port description: The TCP port open on the application servers to receive requests. default: 80

この例では、アプリケーションのバックエンドサーバーを表すサービスの IP アドレスのリストを受け入れるように svc-servers パラメーターが追加されています。これは、required: trueからわかるように、必須パラメーターです。2番目のパラメーター、svc-portは、サーバーがリッスンするポート番号を示しています。ユーザーの指定がなければ、svc-portパラメーターのデフォルトのポート番号は80です。

コンポーネント

また、Componentsセクションを更新して、新しい2つのパラメーターを使用して完全な負荷分散構成を作成する追加コンポーネントを定義する必要があります。

この例の場合、Componentsセクションは、次のように記述する必要があります。

components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg components: - name: svcg-comp type: ns::servicegroup properties: name: $parameters.name + "-svcgrp" servicetype: HTTP components: - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $parent.parent.properties.name servicegroupname: $parent.properties.name - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: str($parameters.svc-port) servicegroupname: $parent.properties.name

この例では、元のコンポーネント lbvserver-comp (前の例の) に svcg-compという子コンポーネントが追加されました。また、 svcg-comp コンポーネントには 2 つの子コンポーネントがあります。コンポーネントを別のコンポーネント内にネストした場合、ネストされたコンポーネントは、親コンポーネントの属性を参照して構成オブジェクトを作成できます。ネストされたコンポーネントは、親コンポーネントでオブジェクトが作成されるたびに、1つまたは複数のオブジェクトを作成できます。

svcg-comp コンポーネントは、リソース「servicegroup」の属性に指定された値を使用して、NetScaler インスタンスにサービスグループを作成するために使用されます。この例では、servicetypeには静的な値が指定されていますが、nameは、入力パラメーターから値を取得します。 パラメーターセクションで定義されているパラメーター名は、$parameters.name+「-svcgrp」という表記を使用して参照します。ここで、ユーザー定義名に-svcgrpを追加 (連結) します。

コンポーネント svcg-comp には、 lbvserver-svg-binding-compmembers-svcg-compという 2 つの子コンポーネントがあります。

最初の子コンポーネントである lbvserver-svg-binding-compは、親コンポーネントによって作成されたサービスグループと、親の親コンポーネントによって作成された負荷分散仮想サーバー (lbvserver) との間で構成オブジェクトをバインドするために使用されます。$parent表記(親参照とも呼ばれる)は、親コンポーネントのエンティティを参照するために使用されます。 たとえば、サービスグループ名:$parent.properties.name は親コンポーネント svcg-comp によって作成されたサービスグループを指し、名前**:$parent.parent.properties.name は親コンポーネントの親コンポーネント lbvserver-compによって作成された仮想サーバーを指します。**

members-svcg コンポーネントは、親コンポーネントによって作成されたサービスグループにサービスのリスト間の設定オブジェクトをバインドするために使用されます。複数のバインディング設定オブジェクトを作成するには、StyleBookの re peat構造を使用して、パラメータ svc-serversで指定されたサーバーのリストを反復処理します。 繰り返し処理中、このStyleBookコンポーネントは、サービスグループ内の各サービス(繰り返し項目構造ではsrv と呼ばれます)に対してservicegroup_servicegroupmember_bindingタイプのNitro構成オブジェクトを作成し、各Nitro構成オブジェクトのip属性を対応するサーバーのIPアドレスに設定します。

一般に、コンポーネントで repeat および repeat-item 構造を使用して、そのコンポーネントに同じタイプの複数の構成オブジェクトを構築させることができます。repeat-item コンストラクトに変数名 (srv など) を割り当てて、イテレーションの現在の値を指定できます。この変数名は、同じコンポーネントまたは子コンポーネントのプロパティで $\として参照されます (<varname\ > 例:$srv)。

上記の例では、お互いの内部でコンポーネントのネスティングを使って、簡単に構成を組み立てています。この場合、コンポーネントのネスティングが構成を組み立てる唯一の方法ではありません。次に示すように、ネストしなくても同じ結果が得られる可能性があります。

components: - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: str($parameters.svc-port) servicegroupname: $components.svcg-comp.properties.name - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.name - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: name: $parameters.name + "-svcgrp" servicetype: HTTP

ここで、すべてのコンポーネントは同じレベル(つまりネストされていません)ですが、得られる結果(生成されたNetScaler構成)は、前に使われたネストされたコンポーネントの場合と同じです。また、StyleBookのコンポーネントを宣言する順序が、構成オブジェクトの作成順序に影響を与えることはありません。この例では、 svcg-comp と lbvserver-compコンポーネントは、最後に宣言されたものであっても、2 番目のコンポーネント lbvserver-svg-binding-compをビルドする前にビルドする必要があります。2 番目のコンポーネントにはこれらのコンポーネントへのフォワードリファレンスがあるためです

慣例によって、StyleBooks、パラメーター、置換、コンポーネント、出力の名前は小文字です。複数の単語を含む場合は「-」文字で区分されます。たとえば、「lb-bindings」、「app-name」、「rewrite-config」などがあります。別の慣例としては、コンポーネント名には文字列「-comp」を末尾に付け加えます。

結果

新しいStyleBookに最後に追加するセクションはOutputsセクションです。Outputsセクションでは、このStyleBookを使用して構成を作成した後にユーザーに(または他のStyleBookで)公開する情報を指定します。たとえば、Outputsセクションでは、このStyleBookで作成されるlbvserverおよびservicegroup構成オブジェクトを公開することを指定できます。

outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

StyleBookのOutputsセクションは、必要に応じて記述します。StyleBookで必ずしも出力を返す必要はありません。ただし、内部コンポーネントを出力として返すと、このStyleBookをインポートするすべてのStyleBookの柔軟性が向上します。このことは、複合StyleBookの作成時にわかります。

outputsセクションで、コンポーネントの単一のプロパティだけでなく、StyleBookのコンポーネントの全体を公開することが推奨されます(たとえば、$components.lbvserver-comp.properties.nameという名前だけでなく、$components.lbvserver-comp全体を公開します)。また出力には、特定の出力が何を表すかを説明する記述が追加されます。

StyleBookを構築する

StyleBookの必須セクションをすべて定義したので、それらをまとめて2番目のStyleBookを作成します。このStyleBookファイルは、basic-lb-config.yamlという名前で既に保存されています。Citrix では、StyleBooksページの組み込みYAML検証ツールを使用してYAMLコンテンツを検証およびインポートすることをお勧めします。

basic-lb-config.yamlのすべての内容を次に示します。

name: basic-lb-config namespace: com.example.stylebooks version: "0.1" display-name: Load Balancing Configuration description: This StyleBook defines a simple load balancing configuration. schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config version: "10.5" prefix: ns parameters: - name: name type: string label: Application Name description: Give a name to the application configuration. required: true - name: ip type: ipaddress label: Application Virtual IP (VIP) description: The Application VIP that clients access required: true - name: lb-alg type: string label: LoadBalancing Algorithm description: Choose the loadbalancing algorithm (method) used for loadbalancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: servicegroupname: $parameters.name + "-svcgrp" servicetype: HTTP - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.servicegroupname - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: 80 servicegroupname: $components.svcg-comp.properties.servicegroupname outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

StyleBookを使用して構成を作成するには、NetScaler ADM にインポートしてから使用する必要があります。詳しくは、「ユーザー定義のStyleBookを使用する方法」を参照してください。

このStyleBookを他のStyleBookにインポートして、そのプロパティを使用することもできます。詳しくは、次のセクションで説明します。

このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
StyleBookによる基本的な負荷分散構成の作成