當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的連通。