パブリック インターネットから Tanzu Kubernetes Grid クラスタで実行されている Kubernetes サービスへのアクセスを有効にするには、サービスを内部で公開し、パブリック IP アドレスを付与して、Ingress CIDR の特定の IP アドレス上にそのサービスを公開する DNAT ルールを作成します。

クラスタ サービスへのインターネット アクセスは、Tanzu Kubernetes Grid を有効にしたときに指定した Ingress CIDR ブロックで DNAT 処理されたパブリック IP アドレスを介してロード バランサによって管理されます。VMware Cloud on AWS では、ロード バランサ サービスは NSX Container Plug-in によって実装されます。このプラグインは、Tanzu Kubernetes Grid を有効にした SDDC クラスタごとに自動的に構成されます。詳細については、「NSX Container Plug-in の概要」を参照してください。

次の手順は、パブリック インターネットから Kubernetes サービスへのアクセスを可能にする際に使用可能な、一般的なワークフローの概要を示しています。VMware Cloud Tech Zone の記事Set Up Public Access to Tanzu Kubernetes Clusters in VMware Cloud on AWSでは、このワークフローについて詳細に説明しています。

手順

  1. https://vmc.vmware.comVMware Cloud Services にログインします。
  2. VMware Cloud on AWS API を使用して、サービスを内部で公開します。
    以下のように、名前空間とノード ポートを指定し、LoadBalancer タイプのサービスとして展開します。
    apiversion: v1
    kind: service
    metadata:
        name: example-svc
        namespace: ns1
        labels:
            app: hardtop-example
    spec:
        ports:
            port:80
            targetPort: 8080
        type: LoadBalancer
        selector:
            app: example-app
    type: LoadBalancer の Kubernetes サービスを展開すると、そのサービスが公開され、クラスタ内の指定されたポート(この例では port: 80)にアクセスできるようになり、サービスのノード ポートが 30,000 を超えるランダムなポートにマッピングされます。
  3. 外部 IP アドレス上の仮想マシンと、マッピングされたノード ポート(この例では 31552 を使用)へのアクセスを許可する VMware Cloud on AWS コンピューティング ゲートウェイのファイアウォール ルールを作成します。
    次のような kubectl コマンドを使用することで、ファイアウォール ルールに必要なサービス プロパティを返します。
    kubectl get service  example-svc -n ns1
    NAME            TYPE             CLUSTER-IP       EXTERNAL-IP    PORT(S)
    example-svc     LoadBalancer     10.96.249.36     10.130.1.9     80:31552/TCP
    VMware Cloud on AWS Networking and Security』ガイドの 管理ゲートウェイファイアウォール ルールの追加または変更の手順に従って、次のようなパラメータを持つルールを作成します。
    オプション 説明
    送信元 任意
    宛先 サービスの外部 IP アドレス(この例では 10.130.1.9)
    サービス [HTTP]
    操作 [許可]
  4. サービスを提供する仮想マシン用のパブリック IP アドレスを要求します。
    VMware Cloud on AWS Networking and Security』ガイドの パブリック IP アドレスの要求または解放の手順を実行します。
  5. このパブリック IP アドレスの DNAT ルールを作成します。
    VMware Cloud on AWS Networking and Security』ガイドの NAT ルールの作成または変更の手順に従って、パブリック IP アドレスと内部 IP アドレスを照合する DNAT ルールを作成します。ルールで [内部アドレスと一致] が指定されている場合、インターネット インターフェイスで [パブリック IP] アドレスへのアクセスを許可するファイアウォール ルールも作成する必要があります。