Service Mesh(ASM)インスタンスとデータ プレーン上の Container Service for Kubernetes(ACK)クラスタが同じリージョン内の異なる仮想プライベート クラウド(VPC)にある場合、PrivateLink を使用して ASM インスタンスをデータ プレーン上の ACK クラスタに接続できます。ASM では、CustomResourceDefinitions(CRD)を使用してネットワーク接続を簡素化できます。
前提条件
ASM インスタンスが作成されていること。詳細については、「ASM インスタンスの作成」をご参照ください。
ASM インスタンスと同じリージョン内の異なる VPC に ACK クラスタが作成されていること。詳細については、「クラスタの作成」をご参照ください。
PrivateLink サービスがアクティブ化されていること。詳細については、「PrivateLink とは」をご参照ください。
手順
ASM インスタンスに ACK クラスタを追加します。詳細については、「ASM インスタンスへのクラスタの追加」をご参照ください。
ACK クラスタを ASM インスタンスに追加すると、クラスタは「接続済み」状態になります。接続を確保するには、次の手順を実行する必要があります。
以下の内容を使用して、asmpvlconfig.yaml という名前のファイルを作成します。
apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMPvlConfig metadata: name: default spec: ackVpcEndpoint: - clusterId: cab9ace222210457a83f09fcd42e9**** vSwitches: - vSwitchId: vsw-bp1jsgsanpvxpj32yai50 zoneId: cn-hangzhou-j asmVpcEndpoint: vSwitches: - vSwitchId: vsw-bp1l5hini55sstnwd2skf zoneId: cn-hangzhou-i
次の表に、このファイルの一部のフィールドを示します。
フィールド
説明
metadata
name
リソースオブジェクトの
name
フィールドは、default
に設定する必要があります。他の名前は無効です。spec
ackVpcEndpoint
以下の設定を含む配列。
clusterId
:ASM インスタンスに追加される ACK クラスタの ID。たとえば、値cab9ace222210457a83f09fcd42e9****
は、特定の ACK クラスタの ID を示します。vSwitches
:ACK クラスタの VPC で使用可能な vSwitch のリストを含む配列。vSwitchId
:特定の vSwitch の ID。たとえば、vsw-bp1jsgsanpvxpj32yai50
は vSwitch の ID を示します。zoneId:
vSwitchId
フィールドで指定された vSwitch が存在するゾーンの ID。たとえば、cn-hangzhou-j
は、中国 (杭州) リージョンのゾーンを示します。説明PrivateLink を使用してクロス VPC 接続を実装するには、このフィールドを ASM インスタンスの vSwitch が存在するゾーンの ID に設定する必要があります。
asmVpcEndpoint
vSwitches
:vSwitch の設定を指定する配列のリスト。以下の内容が含まれます。vSwitchId
:ASM インスタンスの VPC 内の特定の vSwitch の ID。zoneId
:vSwitchId
フィールドで指定された vSwitch が存在するゾーンの ID。vSwitch は ASM インスタンスに関連付けられています。説明PrivateLink を使用してクロス VPC 接続を実装するには、このフィールドを ACK クラスタの vSwitch が存在するゾーンの ID に設定する必要があります。
kubectl を使用して、kubeconfig ファイルの情報に基づいて ASM インスタンスに接続し、次のコマンドを実行して ASMPvlConfig リソースをデプロイします。
kubectl apply -f asmpvlconfig.yaml
数分待ってから、次のコマンドを実行して ASMPvlConfig リソースオブジェクトの実行ステータスを確認します。
kubectl get asmpvlconfig default -o yaml
期待される出力:
apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMPvlConfig metadata: name: default spec: ackVpcEndpoint: - clusterId: cab9ace222210457a83f09fcd42**** vSwitches: - vSwitchId: vsw-bp1jsgsanpvxpj32yai50 zoneId: cn-hangzhou-j asmVpcEndpoint: vSwitches: - vSwitchId: vsw-bp1l5hini55sstnwd2skf zoneId: cn-hangzhou-i status: clusters: - clusterId: cab9ace222210457a83f09fcd42**** pvlEndpoint: connectionStatus: Connected domainName: ep-bp1i06bad79eb60c60cc.epsrv-bp1gqb8g1b8d7uactd.cn-hangzhou.privatelink.aliyuncs.com id: ep-bp1i06bad79eb60c60 status: Active pvlEndpointService: id: epsrv-bp1gqb8g1b8d7uactd name: com.aliyuncs.privatelink.cn-hangzhou.epsrv-bp1gqb8g1b8d7uactd status: Active pilot: clusters: - clusterId: cab9ace222210457a83f09fcd42**** pvlEndpoint: connectionStatus: Connected domainName: ep-bp1i52311b91a5a25e.epsrv-bp1cl4qwzkf747ug6tmy.cn-hangzhou.privatelink.aliyuncs.com id: ep-bp1i52311b91a5a25e status: Active pvlEndpointService: id: epsrv-bp1cl4qwzkf747ug6t name: com.aliyuncs.privatelink.cn-hangzhou.epsrv-bp1cl4qwzkf747ug6tmy status: Active status: Available
出力は、
status
フィールドが追加されたことを示しています。次の表に、status フィールド以下のフィールドを示します。フィールド
説明
clusters
clusters
:ACK クラスタに関するステータス情報を含むリスト。clusterId
:ACK クラスタの ID。pvlEndpoint
:特定の PrivateLink エンドポイントに関する詳細。connectionStatus
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink 接続の状態。domainName
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントのドメイン名。id
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントの ID。status
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントの状態。
pvlEndpointService
:PrivateLink エンドポイントサービスリソースに関する情報。id
:ACK クラスタの API サーバーを公開するために使用される Server Load Balancer(SLB)インスタンスの PrivateLink エンドポイントサービスの ID。name
:ACK クラスタの API サーバーを公開するために使用される SLB インスタンスの PrivateLink エンドポイントサービスの名前。status
:ACK クラスタの API サーバーを公開するために使用される SLB インスタンスの PrivateLink エンドポイントサービスの状態。
pilot
pilot
:ASM のコントロール プレーンによって管理されるサービスのステータス情報のリスト。clusters
:ACK クラスタに関するステータス情報のリスト。clusterId
:ACK クラスタの ID。pvlEndpoint
:特定の PrivateLink エンドポイントに関する詳細。connectionStatus
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink 接続の状態。domainName
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントのドメイン名。id
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントの ID。status
:ASM インスタンスと ACK クラスタを相互接続する PrivateLink エンドポイントの状態。
pvlEndpointService:エンドポイントサービスリソースに関する情報を提供します。
id
:ASM インスタンスの Istio Pilot を公開するために使用される SLB インスタンスの PrivateLink エンドポイントサービスの ID。name
:ASM インスタンスの Istio Pilot を公開するために使用される SLB インスタンスの PrivateLink エンドポイントサービスの名前。status
:ASM インスタンスの Istio Pilot を公開するために使用される SLB インスタンスの PrivateLink エンドポイントサービスの状態。
status
全体的な可用性ステータスを示します。
Available
は、接続が正常に設定されたことを示します。他の状態は、接続設定が失敗したことを示します。VPC コンソールにログインして、目的のエンドポイントサービスとエンドポイントのステータスを表示します。
VPC コンソール にログインします。左側のナビゲーション ペインで、[エンドポイント サービス] をクリックします。
上部のナビゲーション バーで、目的のエンドポイントサービスが存在するリージョンを選択します。
[エンドポイント サービス] ページで、目的のエンドポイントサービスのインスタンス ID をクリックして、エンドポイントサービスの詳細を表示します。
左側のナビゲーション ペインで、[エンドポイント] をクリックします。[エンドポイント] ページで、目的のエンドポイントのインスタンス ID をクリックして、エンドポイントの詳細を表示します。
手順 4 で説明されている
clusters
フィールドのclusterId
で指定された ACK クラスタのpvlEndpoint.domainName
を、ACK クラスタの API サーバー証明書のSAN
カスタムフィールドに追加します。この例では、ドメイン名ep-bp1i06bad79eb60c60cc.epsrv-bp1gqb8g1b8d7uactdab.cn-hangzhou.privatelink.aliyuncs.com
が使用されています。詳細については、「ACK クラスタの作成時に API サーバー証明書の SAN をカスタマイズする」をご参照ください。ACK クラスタのステータスを確認します。
ACK クラスタが「実行中」状態の場合、クロス VPC 接続は PrivateLink を使用して実装されます。