すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ACK CloudBoxノード上のワークロードをASMを使用して管理する

最終更新日:Jan 13, 2025

CloudBoxはフルマネージドのクラウドサービスです。コンピューティング、ストレージ、ネットワークリソースなど、Alibaba Cloudのハードウェアとソフトウェアをオンプレミスデータセンターに統合し、データセキュリティ、オンプレミスデータ処理、低レイテンシなどの特定のビジネス要件に対応します。ACKクラスターにCloudBoxノードプールを作成し、アプリケーションポッドをCloudBoxノードにスケジュールしてCloudBoxリソースを使用できます。ACKクラスターをASMに追加すると、ASMはパブリッククラウドとCloudBoxノードプールの両方を管理し、アプリケーション間のトラフィックに対して豊富で統合されたルーティング、セキュリティ、および可観測性機能を提供します。このトピックでは、ASMを使用してCloudBoxノードプールを持つACKクラスターを管理する方法について説明します。

前提条件

ステップ 1:イングレスゲートウェイをデプロイする

CloudBoxノードプールには、サービスに関する特別な制限があります。

  • CloudBoxのLoadBalancerタイプのサービスはCloudBox ECSインスタンスのマウントのみをサポートし、パブリッククラウドのLoadBalancerタイプのサービスはパブリッククラウド ECSインスタンスのマウントのみをサポートします。

  • CloudBoxのCLBはEIPのマウントをサポートしていません。つまり、パブリックCLBをCloudBoxに作成することはできません。

そのため、LoadBalancerタイプのASMイングレスゲートウェイをデプロイする場合は、ゲートウェイCLBとゲートウェイポッドの両方がパブリッククラウドゾーンまたはCloudBoxゾーンにあることを確認する必要があります。

説明

ASMゲートウェイは、serviceAnnotationsフィールドを使用してCLBゾーンを設定し、nodeSelectorフィールドとaffinityフィールドを使用してゲートウェイポッドのスケジューリングポリシーを設定することをサポートしています。

この例では、CloudBoxゾーンにASMゲートウェイを作成し、serviceAnnotationsを使用してゲートウェイCLBゾーンを指定し、nodeSelectorを使用してゲートウェイポッドゾーンを指定します。具体的なYAMLは次のとおりです。

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:   
  name: ingressgateway
  namespace: "istio-system"
spec:  
  clusterIds:
    - ${ACK Cluster ID} // ACKクラスター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: ${CloudBox resource virtual switch ID} // CloudBoxリソース仮想スイッチID
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: ${CloudBox resource zone ID} // CloudBoxリソースゾーンID
  nodeSelector:
    topology.kubernetes.io/zone: ${CloudBox resource zone ID} // CloudBoxリソースゾーンID
  rollingMaxSurge: "100%"
  rollingMaxUnavailable: "25%"

上記のYAMLをローカルファイルに保存し、ASMのkubeconfigを使用してゲートウェイリソースを作成するか、ASMコンソールを使用してYAMLからASMゲートウェイを作成できます。詳細については、「例 1:KubeAPIを使用してイングレスゲートウェイを管理する」をご参照ください。

ステップ 2:アプリケーションをデプロイし、ゲートウェイルールを設定する

ステップ 1で作成したゲートウェイはプライベートゲートウェイであるため、パブリックネットワークから直接アクセスすることはできません。テストコマンドを実行する前に、現在の環境がVPCネットワークにアクセスできることを確認してください。

手順に従って、CloudBoxノードを使用してACKクラスターにhttpbinアプリケーションとゲートウェイルールをデプロイし、テスト検証を実行します。