全部產品
Search
文件中心

Alibaba Cloud Service Mesh:通過ASM管理ACK雲盒節點上的工作負載

更新時間:Oct 30, 2024

雲盒(CloudBox)是將阿里雲公用雲的計算、儲存、網路等基礎設施以軟硬一體方式,延伸部署到您的本地機房,滿足資料安全、資料本地處理、低延時等業務需求的全託管雲端服務。您可以在ACK叢集中建立雲盒節點池,將業務Pod調度至雲盒節點上來使用雲盒資源。將ACK叢集添加至ASM後,ASM將同時管理公用雲和雲盒節點池中的Pod,為應用之間的流量提供豐富、統一的路由、安全以及可觀測能力。本文介紹如何使用ASM管理帶有雲盒節點池的ACK叢集。

前提條件

步驟一:部署入口網關

雲盒節點池對於Service有特殊限制:

  • 雲盒內LoadBalancer類型的Service只支援掛載雲盒ECS執行個體,公用雲LoadBalancer類型的Service只支援掛載公用雲ECS執行個體。

  • 位於雲盒內的CLB不支援掛載EIP,即無法在雲盒內建立一個公網CLB。

所以當您部署LoadBalancer類型的ASM入口網關時,需要確保網關CLB和網關Pod同時處於公用雲可用性區域或雲盒可用性區域。

說明

ASM網關支援使用serviceAnnotations欄位配置CLB可用性區域,支援使用nodeSelectoraffinity欄位配置網關Pod調度策略。

本樣本中,我們在雲盒可用性區域內建立一個ASM網關,通過serviceAnnotations指定網關CLB的可用性區域,通過nodeSelector指定網關Pod的可用性區域,具體YAML如下所示。

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:   
  name: ingressgateway
  namespace: "istio-system"
spec:  
  clusterIds:
    - ${ACK Cluster ID}
  externalTrafficPolicy: Local
  gatewayType: ingress
  ports:  
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 443
  replicaCount: 2
  resources:
    limits:
      cpu: '2'
      memory: 2G
    requests:
      cpu: 200m
      memory: 256Mi
  serviceType: LoadBalancer  
  serviceAnnotations:    
    service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: ${雲盒資源所在虛擬機器交換器ID}
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: ${雲盒資源所在可用性區域ID}
  nodeSelector:
    topology.kubernetes.io/zone: ${雲盒資源所在可用性區域ID}
  rollingMaxSurge: "100%"
  rollingMaxUnavailable: "25%"

您可以將上述YAML儲存在本地檔案中,使用ASM的kubeconfig建立該網關資源,也可以使用ASM控制台通過YAML建立ASM網關。具體操作,請參見樣本一:使用KubeAPI管理入口網關

步驟二:部署應用並配置網關規則

由於步驟一中建立的是一個私人網關,無法直接通過公網訪問。請確保您當前環境可以訪問VPC網路之後,再執行測試命令。

執行操作步驟,在使用雲盒節點的ACK叢集中部署httpbin應用和網關規則,並進行測實驗證。