Tanzu Kubernetes クラスタで外部ロード バランサをプロビジョニングするには、LoadBalancer タイプのサービスを作成します。ロード バランサ サービスは、パブリック IP アドレスを公開します。外部ロード バランサからのトラフィックは、クラスタ ポッドで転送できます。

サービスとして公開される Kubernetes ポッドに外部ロード バランサをプロビジョニングできます。たとえば、Nginx コンテナをデプロイして、LoadBalancer タイプの Kubernetes サービスとして公開できます。

前提条件

手順

  1. デフォルトの特権 PSP に適したロール バインドを作成します。ポッド セキュリティ ポリシーのロール バインドの例を参照してください。
  2. 次の nginx-lbsvc.yaml YAML ファイルを作成します。
    この YAML ファイルは、LoadBalancer タイプの Kubernetes サービスを定義し、このサービスの外部ロード バランサとして Nginx コンテナをデプロイします。
    kind: Service
    apiVersion: v1
    metadata:
      name: srvclb-ngnx
    spec:
      selector:
        app: hello
        tier: frontend
      ports:
      - protocol: "TCP"
        port: 80
        targetPort: 80
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: loadbalancer
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
            tier: frontend
        spec:
          containers:
          - name: nginx
            image: "nginxdemos/hello"
    
  3. YAML を適用します。
    kubectl apply -f nginx-lbsvc.yaml
  4. Nginx サービスが展開されていることを確認します。
    kubectl get services
    srvclb-ngnx は、外部および内部 IP アドレスで稼動しています。
    NAME          TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    srvclb-ngnx   LoadBalancer   10.11.12.19      10.19.15.89     80:30818/TCP   18m
    
  5. ブラウザを使用して、Nginx LoadBalancer サービスの外部 IP アドレスを入力します。
    NGINX のメッセージ バナーとロード バランサの詳細が表示されます。