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