全部產品
Search
文件中心

Alibaba Cloud Service Mesh:通過PrivateLink實現跨VPC的控制面與資料面叢集的連通管理

更新時間:Jun 30, 2024

當ASM執行個體所在的VPC與資料面ACK叢集的VPC不相同、且在同一個地區時,可以通過PrivateLink實現跨VPC的控制面與資料面叢集的連通管理。ASM提供了一種使用CRD的方式,簡化網路連通的能力。

前提條件

操作步驟

  1. 將ACK叢集添加到ASM執行個體。具體操作,請參見添加叢集到ASM執行個體

    添加之後,ACK叢集將處於串連中的狀態,您需要進行以下配置以確保連通。

  2. 使用如下內容,建立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叢集的標識符。例如值為cab9ace222210457a83f09fcd42e9****表示一個特定的ACK叢集ID。

    • vSwitches:是一個數組,包括了該ACK叢集VPC下的可用虛擬交換器配置列表。

      • vSwitchId:特定虛擬交換器的標識符。例如vsw-bp1jsgsanpvxpj32yai50表示交換器的ID。

      • zoneId:對應vSwitchId虛擬交換器所在的可用性區域標識符。例如cn-hangzhou-j表示杭州地區的一個特定可用性區域。

        說明

        為了使用PrivateLink實現跨VPC的連通,必須提供與ASM執行個體交換器相同的可用性區域標識符。

    asmVpcEndpoint

    vSwitches對應虛擬交換器配置的數組列表,包括如下內容:

    • vSwitchId:ASM執行個體VPC中特定虛擬交換器的標識符。

    • zoneId:ASM執行個體對應vSwitchId虛擬交換器所在的可用性區域標識符。

      說明

      為了使用PrivateLink實現跨VPC的連通,必須提供與對應ACK叢集交換器相同的可用性區域標識符。

  3. 在ASM執行個體對應的KubeConfig環境下,執行以下命令,部署ASMPvlConfig資源。

    kubectl apply -f asmpvlconfig.yaml
  4. 等待幾分鐘後,執行以下命令,查看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欄位下的內容,具體描述如下:

    欄位

    說明

    clusters

    clusters包含了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的私人連結端點服務的活動狀態。

    pilot

    pilot包含了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表示連通配置成功完成,其他狀態為失敗。

  5. 登入PrivateLink控制台,查看終端節點服務和終端節點對應的狀態。

    1. 登入PrivateLink控制台,在左側導覽列,單擊終端節點服務

    2. 在頂部功能表列,選擇終端節點服務所在的地區。

    3. 終端節點服務頁面,單擊目標終端節點服務的執行個體ID,查看終端節點服務的詳細資料。

    4. 在左側導覽列,單擊終端節點,然後單擊目標終端節點的執行個體ID,查看終端節點的詳細資料。

  6. 步驟4對應的clusters下ACK叢集clusterIdpvlEndpoint.domainName(例如值ep-bp1i06bad79eb60c60cc.epsrv-bp1gqb8g1b8d7uactdab.cn-hangzhou.privatelink.aliyuncs.com),添加到該ACK叢集的自訂叢集API Server認證的SAN欄位中。具體操作,請參見自訂叢集API Server認證SAN

  7. 查看ACK叢集的狀態。

    若叢集處於運行中的狀態,表明已經通過PrivateLink實現跨VPC的連通。