當ASM執行個體所在的VPC與資料面ACK叢集的VPC不相同、且在同一個地區時,可以通過PrivateLink實現跨VPC的控制面與資料面叢集的連通管理。ASM提供了一種使用CRD的方式,簡化網路連通的能力。
前提條件
-
已建立一個ASM執行個體。具體操作,請參見建立ASM執行個體。
-
已建立一個與ASM執行個體同地區但不同VPC下的ACK叢集。具體操作,請參見建立叢集。
-
已開通PrivateLink服務。具體操作,請參見PrivateLink入門概述。
操作步驟
-
將ACK叢集添加到ASM執行個體。具體操作,請參見添加叢集到ASM執行個體。
添加之後,ACK叢集將處於串連中的狀態,您需要進行以下配置以確保連通。
-
使用如下內容,建立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部分欄位說明如下:
欄位
說明
metadataname該資來源物件的名稱
name必須為default,其他名稱無效。specackVpcEndpoint一個數組,包括如下配置內容:
-
clusterId:對應添加到ASM執行個體中的ACK叢集的標識符。例如值為cab9ace222210457a83f09fcd42e9****表示一個特定的ACK叢集ID。 -
vSwitches:是一個數組,包括了該ACK叢集VPC下的可用虛擬交換器配置列表。-
vSwitchId:特定虛擬交換器的標識符。例如vsw-bp1jsgsanpvxpj32yai50表示交換器的ID。 -
zoneId:對應vSwitchId虛擬交換器所在的可用性區域標識符。例如cn-hangzhou-j表示杭州地區的一個特定可用性區域。說明為了使用PrivateLink實現跨VPC的連通,必須提供與ASM執行個體交換器相同的可用性區域標識符。
-
asmVpcEndpointvSwitches對應虛擬交換器配置的數組列表,包括如下內容:-
vSwitchId:ASM執行個體VPC中特定虛擬交換器的標識符。 -
zoneId:ASM執行個體對應vSwitchId虛擬交換器所在的可用性區域標識符。說明為了使用PrivateLink實現跨VPC的連通,必須提供與對應ACK叢集交換器相同的可用性區域標識符。
-
-
在ASM執行個體對應的KubeConfig環境下,執行以下命令,部署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欄位下的內容,具體描述如下:欄位
說明
clustersclusters包含了ACK叢集狀態資訊的列表。-
clusterId:ACK叢集的唯一識別碼。 -
pvlEndpoint:提供關於特定私人連結端點的詳細資料。-
connectionStatus:用於該ASM執行個體串連的私人串連狀態。 -
domainName:用於該ASM執行個體串連的私人連結端點的網域名稱。 -
id:用於該ASM執行個體串連的私人連結端點的唯一識別碼。 -
status:用於該ASM執行個體串連的私人連結端點的活動狀態。
-
-
pvlEndpointService:提供關於私人連結端點服務資源的資訊。-
id:對應ACK叢集ApiServer SLB的私人連結端點服務的唯一識別碼。 -
name:對應ACK叢集ApiServer SLB的私人連結端點服務的名稱。 -
status:對應ACK叢集ApiServer SLB的私人連結端點服務的活動狀態。
-
pilotpilot包含了ASM控制面託管服務的狀態資訊的列表。-
clusters: ACK叢集狀態的列表。-
clusterId: ACK叢集的唯一識別碼。 -
pvlEndpoint: 提供關於特定私人連結端點的詳細資料。-
connectionStatus: 用於該ACK叢集串連的私人串連狀態。 -
domainName: 用於該ACK叢集串連的私人連結端點的網域名稱。 -
id: 用於該ACK叢集串連的私人連結端點的唯一識別碼。 -
status: 用於該ACK叢集串連的私人連結端點的活動狀態。
-
-
-
pvlEndpointService: 提供關於端點服務資源的資訊。
-
id: 對應ASM執行個體Pilot SLB的私人連結端點服務的唯一識別碼。 -
name: 對應ASM執行個體Pilot SLB的私人連結端點服務的名稱。 -
status: 對應ASM執行個體Pilot SLB的私人連結端點服務的活動狀態。
-
status表明整體可用狀態。
Available表示連通配置成功完成,其他狀態為失敗。 -
-
登入PrivateLink控制台,查看終端節點服務和終端節點對應的狀態。
-
登入PrivateLink控制台,在左側導覽列,單擊終端節點服務。
-
在頂部功能表列,選擇終端節點服務所在的地區。
-
在終端節點服務頁面,單擊目標終端節點服務的執行個體ID,查看終端節點服務的詳細資料。
-
在左側導覽列,單擊終端節點,然後單擊目標終端節點的執行個體ID,查看終端節點的詳細資料。
-
-
將步驟4對應的
clusters下ACK叢集clusterId的pvlEndpoint.domainName(例如值ep-bp1i06bad79eb60c60cc.epsrv-bp1gqb8g1b8d7uactdab.cn-hangzhou.privatelink.aliyuncs.com),添加到該ACK叢集的自訂叢集API Server認證的SAN欄位中。具體操作,請參見自訂叢集API Server認證SAN。 -
查看ACK叢集的狀態。
若叢集處於運行中的狀態,表明已經通過PrivateLink實現跨VPC的連通。