機械翻訳について

3 MetalLBロード・バランサの使用

この章では、ベア・メタル環境でKubernetesアプリケーションのネットワーク・ロード・バランサを設定するために、MetalLBモジュールをカスタム・リソースとしてインストールおよび構成する方法について説明します。

MetalLBを使用したアプリケーションの作成

この項では、MetalLBを使用して外部IPアドレスを提供するKubernetesアプリケーションを作成できることを確認するための基本的なテストについて説明します。

MetalLBを使用するテスト・アプリケーションを作成するには:

  1. LoadBalancerサービスを使用するKubernetesアプリケーションを作成します。 この例のデプロイメントでは、レプリカ数2および関連するLoadBalancerサービスを含むNGINXアプリケーションを作成します。

    コントロール・プレーン・ノードで、nginx-metallb.yamlという名前のファイルを作成し、次のファイルをファイルにコピーします。

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: container-registry.oracle.com/olcne/nginx:1.17.7 
            ports:
            - containerPort: 80
    ---
    kind: Service
    apiVersion: v1
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      type: LoadBalancer
      ports:
      - name: http
        port: 80
        targetPort: 80
  2. NGINXデプロイメントおよびLoadBalancerサービスを起動します:

    kubectl apply -f nginx-metallb.yaml
  3. kubectl get deploymentコマンドを使用して、nginx-deploymentアプリケーションが実行されていることを確認できます:

    kubectl get deployments.apps

    出力は次のようになります:

    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   2/2     2            2           31s
  4. kubectl get svcコマンドを使用して、nginx-deploymentサービスが実行されていることを確認できます:

    kubectl get svc

    出力は次のようになります:

    NAME            TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
    kubernetes      ClusterIP      10.96.0.1      <none>          443/TCP        25h
    nginx-service   LoadBalancer   10.99.253.99   192.168.1.240   80:31875/TCP   70s

    nginx-service LoadBalancerのEXTERNAL-IPには192.168.1.240というIPアドレスがあります。 このIPアドレスはMetalLBによって提供され、アプリケーションへの接続に使用できる外部IPアドレスです。

  5. curlを使用してNGINXアプリケーションのIPアドレスに接続し、アプリケーションのポート(この例では192.168.1.240:80)を追加して、NGINXのデフォルト・ページを表示します。
    curl 192.168.1.240:80

    出力は次のようになります:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
  6. nginx-service LoadBalancerサービスは、次を使用して削除できます:

    kubectl delete svc nginx-service
  7. nginx-deploymentアプリケーションは、次のものを使用して削除できます:

    kubectl delete deployments.apps nginx-deployment