機械翻訳について

2 MetalLBモジュールのインストール

この章では、MetalLBモジュールをインストールして、ベア・メタルOracle Cloud Native EnvironmentインスタンスでMetalLBを使用してKubernetesアプリケーションのアプリケーション・ロード・バランサを設定する方法について説明します。

前提条件

この項では、MetalLBモジュールを設定するために必要な前提条件について説明します。

ヘルス・チェック・エンドポイント・ネットワーク・ポートの設定

ServiceInternalTrafficPolicyCluster (デフォルト)に設定してKubernetes LoadBalancerサービスを使用する場合、ヘルス・チェック・エンドポイントはTCPポート10256で使用可能であることが予想されます。kube-proxyは、このポートにリスナーを作成します。これにより、ノード上でkube-proxyが正常であることを確認するためのLoadBalancerサービスへのアクセスが提供されます。 LoadBalancerサービスは、このポリシーを使用してトラフィックをルーティングできるノードを決定します。 このポートでトラフィックを許可するには、すべてのKubernetesノードでTCPポート10256をオープンする必要があります。 各Kubernetesノードで、次を実行します:

sudo firewall-cmd --zone=public --add-port=10256/tcp
sudo firewall-cmd --zone=public --add-port=10256/tcp --permanent
sudo systemctl restart firewalld.service

ServiceInternalTrafficPolicyの詳細については、アップストリーム「Kubernetesドキュメント」を参照してください。

ネットワーク・セキュリティ・リストのTCPポート10256でトラフィックが許可されていることを確認します。

ネットワーク・ポートの設定

Kubernetesワーカー・ノードで次のポートを開く必要があります。 各ワーカー・ノードで次を実行します:

sudo firewall-cmd --zone=public --add-port=7946/tcp --permanent
sudo firewall-cmd --zone=public --add-port=7946/udp --permanent
sudo systemctl restart firewalld.service

MetalLB構成ファイルの作成

MetalLBインスタンスを構成するには、operatorノードにMetalLB構成ファイルを指定する必要があります。 構成ファイル(YAMLカスタム・リソース定義(CRD)ファイル形式である必要があります)では、IPAddressPools, BGPPeer, BGPAdvertisementL2Advertisementなどのオプションを使用してMetalLBを構成できます。

Platform APIサーバーは、MetalLBモジュールの作成時に構成ファイルに含まれている情報を使用します。

構成ファイルで使用できるオプションの詳細は、アップストリームの「MetalLBのドキュメント」を参照してください。

次の例では、MetalLBレイヤー2構成を使用し、192.168.1.240から192.168.1.250のIPアドレス範囲を指定して、Kubernetesアプリケーションのロード・バランサIPを作成します。 このサンプル・ファイルはmetallb-config.yamlという名前で、次のものが含まれます:

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  creationTimestamp: null
  name: default
  namespace: metallb
spec:
  addresses:
  - 192.168.1.240-192.168.1.250
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  creationTimestamp: null
  name: l2advertisement1
  namespace: metallb
spec:
  ipAddressPools:
  - default 

MetalLBモジュールのデプロイ

単一のolcnectl module createコマンドを使用して、KubernetesクラスタにMetalLBを設定するために必要なすべてのモジュールをデプロイできます。 このメソッドは、Kubernetesクラスタのデプロイと同時にMetalLBモジュールをデプロイする場合に役立ちます。

Kubernetesモジュールの既存のデプロイメントがある場合は、MetalLBモジュールをデプロイするときにそのインスタンスを指定できます。

この項では、MetalLBモジュールのデプロイに必要な各コンポーネントのインストールについて説明します。

モジュールの作成時に使用可能なプラットフォームCLIコマンド・オプションの完全なリストは、「プラットフォーム・コマンドライン・インタフェース」olcnectl module createコマンドを参照してください。

MetalLBモジュールをデプロイするには:

  1. 環境をまだ設定していない場合は、モジュールをデプロイできる環境を作成します。 環境の設定の詳細は、「インストール」を参照してください。 この例の環境の名前は、myenvironmentです。

  2. Kubernetesモジュールをまだ設定またはデプロイしていない場合は、設定します。 Kubernetesモジュールを環境に追加する方法の詳細は、「Kubernetesモジュール」を参照してください。 この例のKubernetesモジュールの名前は、myclusterです。

  3. MetalLBモジュールを作成し、--metallb-kubernetes-moduleオプションを使用して、myclusterという名前のKubernetesモジュールに関連付けます。 この例では、MetalLBモジュールの名前はmymetallbです。

    olcnectl module create \
    --environment-name myenvironment \
    --module metallb \
    --name mymetallb \
    --metallb-kubernetes-module mycluster \
    --metallb-config metallb-config.yaml

    --moduleオプションは、モジュール・タイプを作成(metallb)に設定します。 MetalLBモジュールの名前は、--nameオプションを使用して定義します(この場合はmymetallbです)。

    --metallb-kubernetes-moduleオプションは、Kubernetesモジュールの名前を設定します。

    --metallb-configオプションは、MetalLB構成ファイルのロケーションを設定します。 このファイルは、指定されたパスのオペレータ・ノードで使用可能である必要があります。 この構成ファイルの作成については、「MetalLB構成ファイルの作成」を参照してください。

    モジュールの追加時に必要なオプションをすべて含めない場合は、それらを指定するように求められます。

  4. olcnectl module installコマンドを使用して、MetalLBモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name mymetallb

    オプションで、--log-levelオプションを使用して、コマンド出力に表示されるロギングのレベルを設定できます。 デフォルトでは、エラー・メッセージが表示されます。 たとえば、次を含めると、すべてのメッセージが表示されるようにロギング・レベルを設定できます:

    --log-level debug

    ログ・メッセージは、操作ログとしても保存されます。 操作ログは、コマンドの実行中または完了時に表示できます。 操作ログの使用方法の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。

    MetalLBモジュールは、Kubernetesクラスタにデプロイされます。

MetalLBモジュールのデプロイメントの確認

オペレータ・ノードでolcnectl module instancesコマンドを使用して、MetalLBモジュールがデプロイされていることを確認できます。 たとえば:

olcnectl module instances \
--environment-name myenvironment

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

INSTANCE                  MODULE        STATE  
mymetallb                 metallb       installed 
mycluster                 kubernetes    installed
...

MODULE列のmetallbのエントリは、installed状態であることに注意してください。

また、olcnectl module reportコマンドを使用して、モジュールに関する情報を確認します。 たとえば、次のコマンドを使用して、myenvironmentmymetallbという名前のMetalLBモジュールを確認します:

olcnectl module report \
--environment-name myenvironment \
--name mymetallb \
--children

olcnectl module reportコマンドの構文の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。