ソフトウェアの前提条件

Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) のパフォーマンスと安定性を保証するためには、Anypoint Platform PCE 環境のすべてのノードがこのトピックで説明するソフトウェアの前提条件を満足していることが必要です。

  • オペレーティングシステム (OS) の前提条件

  • サードパーティソフトウェアの前提条件

  • MuleSoft ソフトウェアの前提条件

Anypoint Platform PCE をインストールする前に、インフラストラクチャチームは、以下の各セクションをレビューし、記述されているソフトウェアの要件を環境が満足していることを確認する必要があります。必要に応じて、MuleSoft の担当者に連絡してサポートを要求してください。

オペレーティングシステムの前提条件

Linux ディストリビューションの確認以下の

Linux ディストリビューションがサポートされています。

  • Red Hat Enterprise Linux (RHEL) 7.8、7.9、8.1、8.2、8.3、8.4、8.5、8.6、8.7、および 8.8

  • CentOS 7.8 および 7.9

サービス終了​になったため、Anypoint Platform PCE では CentOS 8 はサポートされなくなりました。

SELinux カスタムプロファイルの確認

SELinux は必須ではありませんが、Anypoint Platform PCE は、strict モードで動作するデフォルトの SELinux プロファイルをサポートします。ユーザー環境でカスタムプロファイルを使用している場合は、そのプロファイルがインストーラーの実行時に非制約ユーザーコンテキストを提供する必要があります。MuleSoft の担当者と共にカスタムプロファイルを確認してください。

カーネルモジュールの有効化と読み込み

各ノードで、以下のカーネルモジュールを有効にする必要があります。

  • br_netfilter

  • ebtable_filter

  • ip_tables

  • iptable_filter

  • iptable_nat

  • overlay

各カーネルモジュールに対して次の例のようなコマンドを実行して、各モジュールが読み込まれていることを確認します。​br_netfilter​ には、確認するカーネルモジュールの名前を指定します。

root$ lsmod | grep br_netfilter
  • コマンドから何も返されない場合、そのモジュールは読み込まれていません。その場合は、​modprobe​ を使用してモジュールを読み込みます。

    root$ modprobe br_netfilter

次のコマンドを使用して、再起動後にモジュールが読み込まれることを確認します。

root$ echo 'br_netfilter' > /etc/modules-load.d/br_netfilter.conf

カーネル設定の確認

以下のフラグが有効である必要があります。

  • net.bridge.bridge-nf-call-iptables=1

  • net.ipv4.ip_forward=1

  • fs.may_detach_mounts=1

  • fs.inotify.max_user_watches=524288

kubelet では次の設定が必要ですが、これらの設定によってカーネル設定は自動的には更新されません。

  • vm.overcommit_memory=1

  • kernel.panic=10

  • kernel.panic_on_oops=1

このフラグを上書きするプロセスがシステムに存在しないことを確認してください。パラメーターを設定するには、次の例のように ​sysctl -w​ を使用します。

root$ sysctl -w net.ipv4.ip_forward=1

再起動後も変更内容を維持するには、​/etc/sysctl.d​ のファイルに変更内容を書き込みます。次の例のコンテンツは、実際の設定内容に置き換えてください。

echo net.ipv4.ip_forward=1 >> /etc/sysctl.d/10-ipv4-forwarding.conf

Kubelet で必要な設定を永続的に定義します。

cat > /etc/sysctl.d/90-kubelet.conf << EOF
vm.overcommit_memory=1
kernel.panic=10
kernel.panic_on_oops=1
EOF

これらの設定と競合するプロセスやファイルが存在しないことを確認してください。

サードパーティソフトウェアの前提条件

firewalld が有効な場合の要件

firewalld は、永続的なネットワークトラフィックルールを定義する iptables コントローラーです。 Red Hat Enterprise Linux (RHEL) 7.3 で firewalld を使用している場合は、​docker0​ デバイスで転送を有効化する必要があります。 また、10.0.0.0/8 サブネットとの間でやり取りしているすべてのパケットを転送する必要もあります。

firewalld を使用しているかどうかの確認

システムで firewalld を使用しているかどうかを確認するには、すべてのノードで次のコマンドを実行します。

systemctl status firewalld.service

firewalld がインストールされている場合は次の出力が表示されます。

$ sudo systemctl status firewalld.service
* firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

firewalld がインストールされていない場合はエラーメッセージが表示されます。

Docker デバイス上での転送の有効化

docker0 デバイスで転送を有効化するには、次のコマンドを実行します。

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 1 -o docker0 -j ACCEPT -m comment --comment "docker subnet"

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 1 -s 10.0.0.0/8 -j ACCEPT -m comment --comment "docker subnet"

10.0.0.0/8 サブネットで転送を有効化するには、次のコマンドを実行します。

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s 10.0.0.0/8 -j ACCEPT -m comment --comment "docker subnet"

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -d 10.0.0.0/8 -j ACCEPT -m comment --comment "docker subnet"

ローカル DNS サーバーの削除

ポート 53 でリスンしているローカルキャッシュ DNS サーバーを削除します (例: named​、​dnsmasq​、​bind​)。

必須ツールのインストール

サーバー設定管理ソフトウェアの削除

Puppet、Chef、Ansible、SaltStack など、すべてのサーバー設定管理ソフトウェアを削除する必要があります。 通常、このようなソフトウェアは、カーネルモジュールや必要な設定を変更する上、正しいシャットダウン手順に従わずにサーバーを再起動するため、システムが障害状態となってしまいます。

MuleSoft ソフトウェアの前提条件

インストールアーカイブとライセンスキーの取得

MuleSoft アカウント担当者からインストーラーアーカイブ (​anypoint-3.2.x-installer.tar.gz​) とライセンスキーを取得します。

IP 転送とブリッジの確認

クラスターの負荷分散とルーティングを適切に行うためには、以下を有効化し、正しく設定して、次の項目を確認する必要があります。

  • カーネル IP の転送

    内部 Kubernetes 負荷分散を有効化するには、すべてのサーバーで IPv4 転送を有効化する必要があります。

  • bridge-netfilter

    Linux カーネルがホストされているコンテナとの間でパケットを双方向に変換できるようにします。

    • ブリッジネットフィルターの IP アドレスは、Kubernetes が作成するオーバーレイネットワークによって管理されます。そのネットワークで使用する CIDR ブロックが非公開 IP アドレス範囲に含まれていることを確認します。

SSL 証明書の要件の確認

Anypoint Platform PCE を使用するには、SSL 証明書を提供する必要があります。証明書は Anypoint Platform PCE UI からアップロードできます。この証明書は、プラットフォームに接続されているすべてのマシンによって信頼されていなければなりません。

また、ユーザーの環境で管理されている Mule Runtime Engine が動作するすべてのサーバーに同じ SSL 証明書を登録する必要があります。

サポートされないソフトウェアのアンインストール

一部のソフトウェアでは、Anypoint Platform PCE との間で競合が発生します。このようなソフトウェアは、Anypoint Platform PCE のインストールを実行する前にアンインストールする必要があります。

Docker

Anypoint Platform PCE が動作するすべてのサーバーから Docker をアンインストールします。Anypoint Platform PCE のインストールパッケージには、Kubernetes が公式にサポートする Docker パッケージが含まれています。