2.3.4 ファイアウォール・ルールの設定

Oracle Linux 7により、デフォルトでfirewalldがインストールされて有効化されます。Platform CLIにより、Kubernetesモジュールのデプロイメント時に追加が必要になるルールが通知されます。また、Platform CLIには、要件を満たすようにファイアウォールの構成を変更する場合に実行するコマンドも用意されています。

すべての必要なポートが開かれていることを確認してください。Kubernetesデプロイメントに必要なポートは次のとおりです。

  • 2379/tcp: Kubernetes etcd サーバー・クライアントAPI (マルチ・マスター・デプロイメントのマスター・ノード)

  • 2380/tcp: Kubernetes etcdサーバー・クライアントAPI (マルチ・マスター・デプロイメントのマスター・ノード)

  • 6443/tcp: Kubernetes APIサーバー(マスター・ノード)

  • 8090/tcp: Platform Agent (マスター・ノードとワーカー・ノード)

  • 8091/tcp: Platform API Server (オペレータ・ノード)

  • 8472/udp: Flannelオーバーレイ・ネットワーク、VxLANバックエンド(マスター・ノードとワーカー・ノード)

  • 10250/tcp: Kubernetes kubelet APIサーバー(マスター・ノードとワーカー・ノード)

  • 10251/tcp: Kubernetes kube-scheduler (マルチ・マスター・デプロイメントのマスター・ノード)

  • 10252/tcp: Kubernetes kube-controller-manager (マルチ・マスター・デプロイメントのマスター・ノード)

  • 10255/tcp: Kubernetes kubelet APIサーバー: 認証なしの読取り専用アクセス用(マスター・ノードとワーカー・ノード)

次に、ポートを開くコマンドとファイアウォール・ルールを設定するコマンドを示します。

2.3.4.1 単一マスターのファイアウォール・ルール

単一マスター・デプロイメントの場合は、ファイアウォールで次に示すポートを開く必要があります。

オペレータ・ノード

オペレータ・ノードで次を実行します。

$ sudo firewall-cmd --add-port=8091/tcp --permanent

該当するルールが有効になるようにファイアウォールを再起動します。

$ sudo systemctl restart firewalld
ワーカー・ノード

Kubernetesワーカー・ノードで次を実行します。

$ sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent
$ sudo firewall-cmd --add-port=8090/tcp --permanent
$ sudo firewall-cmd --add-port=10250/tcp --permanent
$ sudo firewall-cmd --add-port=10255/tcp --permanent
$ sudo firewall-cmd --add-port=8472/udp --permanent

該当するルールが有効になるようにファイアウォールを再起動します。

$ sudo systemctl restart firewalld
マスター・ノード

Kubernetesマスター・ノードで次のように実行します。

$ sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent
$ sudo firewall-cmd --add-port=8090/tcp --permanent
$ sudo firewall-cmd --add-port=10250/tcp --permanent
$ sudo firewall-cmd --add-port=10255/tcp --permanent
$ sudo firewall-cmd --add-port=8472/udp --permanent
$ sudo firewall-cmd --add-port=6443/tcp --permanent

該当するルールが有効になるようにファイアウォールを再起動します。

$ sudo systemctl restart firewalld