TKG 2.0 クラスタで実行されているポッドに外部トラフィックをルーティングするには、LoadBalancer タイプのサービスを作成します。ロード バランサ サービスはパブリック IP アドレスを公開し、そのアドレスからの受信トラフィックがポッドにルーティングされます。

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

前提条件

  • Kubernetes のドキュメントで LoadBalancer サービス タイプについて確認します。
  • TKG クラスタをプロビジョニングします。
  • TKG クラスタに接続します。

手順

  1. 次の 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"
    
  2. YAML を適用します。
    kubectl apply -f nginx-lbsvc.yaml
  3. 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
    
  4. ブラウザを使用して、NGINX LoadBalancer サービスの外部 IP アドレスを入力します。
    NGINX のメッセージ バナーとロード バランサの詳細が表示されます。