機械翻訳について

2 前提条件

重要:

このドキュメントで説明されているソフトウェアは、Extended SupportまたはSustaining Supportにあります。 詳細は、「Oracleオープン・ソース・サポート・ポリシー」を参照してください。

このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお勧めします。

この章では、Oracle Cloud Native Environmentのインストールで使用されるシステムの前提条件について説明します。 この章では、リポジトリがOracle Cloud Native Environmentパッケージをインストールできるようにする方法についても説明します。

ソフトウェア・パッケージへのアクセスの有効化

この項では、Oracle Cloud Native Environmentソフトウェア・パッケージをインストールするOSのロケーションの設定について説明します。

Oracle Linux 9

Oracle Linux 9のOracle Cloud Native Environmentパッケージは、ol9_olcne17リポジトリのOracle Linux yumサーバー、またはol9_x86_64_olcne17チャネルのUnbreakable Linux Network (ULN)で使用できます。 ただし、他のリポジトリおよびチャネルには依存関係が存在し、Oracle Cloud Native Environmentがインストールされている各システムでも依存関係を有効にする必要があります。

注意:

ol9_developerおよびol9_developer_EPEL yumリポジトリまたはULNチャネルが有効になっていないこと、およびこれらのリポジトリまたはチャネルのソフトウェアが、Kubernetesが実行されているシステムにインストールされていないことを確認します。 このドキュメントの手順に従っていても、これらのリポジトリまたはチャネルが有効になっている場合、またはこれらのチャネルまたはリポジトリのソフトウェアがシステムにインストールされている場合、プラットフォームが不安定になることがあります。

 Oracle Linux Yum Serverによるリポジトリの有効化

システム更新にOracle Linux yumサーバーを使用している場合は、必要なyumリポジトリを有効にします。

yumリポジトリを有効にするには:

  1. oracle-olcne-release-el9リリース・パッケージをインストールして、Oracle Cloud Native Environment yumリポジトリ構成をインストールします。

    sudo dnf install oracle-olcne-release-el9
  2. インストールするリリースのリポジトリを設定します。

    次のyumリポジトリを有効にします。

    • ol9_olcne17

    • ol9_addons

    • ol9_baseos_latest

    • ol9_appstream

    • ol9_UEKR7 (ホストでUEK R7を実行している場合)

    dnf config-managerツールを使用して、yumリポジトリを有効にします。 UEK R7を実行しているホストの場合:

    sudo dnf config-manager --enable ol9_olcne17 ol9_addons ol9_baseos_latest ol9_appstream ol9_UEKR7

    RHCKを実行しているホストの場合:

    sudo dnf config-manager --enable ol9_olcne17 ol9_addons ol9_baseos_latest ol9_appstream
  3. 開発者yumリポジトリを無効にします。 無効にする必要がある開発者リポジトリをリストするには、dnf repolistコマンドを使用します:

    sudo dnf repolist --enabled | grep developer

    dnf config-managerツールを使用して返されたリポジトリを無効にします。 たとえば:

    sudo dnf config-manager --disable ol9_developer
 ULNによるチャネルの有効化

ULNを使用するように登録されている場合は、ULN webインタフェースを使用して、システムを適切なチャネルにサブスクライブします。

ULNチャネルにサブスクライブするには:

  1. https://linux.oracle.comにサインインします。

  2. 「Systems」タブで、登録されたマシンのリストからシステムの名前に対応するリンクをクリックします。

  3. 「System Details」ページで、「Manage Subscriptions」をクリックします。

  4. 「システム・サマリー」ページで、使用可能なチャネルのリストから必要な各チャネルを選択し、矢印をクリックしてチャネルをサブスクライブ済チャネルのリストに移動します。

    次に示すチャネルにシステムをサブスクライブします。

    • ol9_x86_64_olcne17

    • ol9_x86_64_addons

    • ol9_x86_64_baseos_latest

    • ol9_x86_64_appstream

    • ol9_x86_64_UEKR7 (ホストでUEK R7を実行している場合)

    システムがol9_x86_64_developerチャネルにサブスクライブされていないことを確認します。

Oracle Linux 8

Oracle Linux 8のOracle Cloud Native Environmentパッケージは、ol8_olcne17リポジトリのOracle Linux yumサーバー、またはol8_x86_64_olcne17チャネルのUnbreakable Linux Network (ULN)で使用できます。 ただし、他のリポジトリおよびチャネルには依存関係が存在し、Oracle Cloud Native Environmentがインストールされている各システムでも依存関係を有効にする必要があります。

注意:

ol8_developerまたはol8_developer_EPEL yumリポジトリまたはULNチャネルが有効になっていないこと、およびこれらのリポジトリまたはチャネルのソフトウェアが、Kubernetesが実行されているシステムにインストールされていないことを確認します。 このドキュメントの手順に従っていても、これらのリポジトリまたはチャネルが有効になっている場合、またはこれらのチャネルまたはリポジトリのソフトウェアがシステムにインストールされている場合、プラットフォームが不安定になることがあります。

 Oracle Linux Yum Serverによるリポジトリの有効化

システム更新にOracle Linux yumサーバーを使用している場合は、必要なyumリポジトリを有効にします。

yumリポジトリを有効にするには:

  1. oracle-olcne-release-el8リリース・パッケージをインストールして、Oracle Cloud Native Environment yumリポジトリ構成をインストールします。

    sudo dnf install oracle-olcne-release-el8
  2. インストールするリリースのリポジトリを設定します。

    次のyumリポジトリを有効にします。

    • ol8_olcne17

    • ol8_addons

    • ol8_baseos_latest

    • ol8_appstream

    • ol8_kvm_appstream

    • ol8_UEKR7 (ホストでUEK R7を実行している場合)

    • ol8_UEKR6 (ホストでUEK R6を実行している場合)

    dnf config-managerツールを使用して、yumリポジトリを有効にします。 UEK R7を実行しているホストの場合:

    sudo dnf config-manager --enable ol8_olcne17 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR7

    UEK R6を実行しているホストの場合:

    sudo dnf config-manager --enable ol8_olcne17 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR6

    RHCKを実行しているホストの場合:

    sudo dnf config-manager --enable ol8_olcne17 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream
  3. 以前のOracle Cloud Native Environmentリリースのyumリポジトリを無効にします。

    sudo dnf config-manager --disable ol8_olcne16 ol8_olcne15 ol8_olcne14 ol8_olcne13 ol8_olcne12
  4. 開発者yumリポジトリを無効にします。 無効にする必要がある開発者リポジトリをリストするには、dnf repolistコマンドを使用します:

    sudo dnf repolist --enabled | grep developer

    dnf config-managerツールを使用して返されたリポジトリを無効にします。 たとえば:

    sudo dnf config-manager --disable ol8_developer
 ULNによるチャネルの有効化

ULNの使用を登録している場合は、ULN Webインタフェースを使用して、システムを適切なチャネルにサブスクライブします。

ULNチャネルにサブスクライブするには:

  1. https://linux.oracle.comにサインインします。

  2. 「Systems」タブで、登録されたマシンのリストからシステムの名前に対応するリンクをクリックします。

  3. 「System Details」ページで、「Manage Subscriptions」をクリックします。

  4. 「システム・サマリー」ページで、使用可能なチャネルのリストから必要な各チャネルを選択し、矢印をクリックしてチャネルをサブスクライブ済チャネルのリストに移動します。

    次に示すチャネルにシステムをサブスクライブします。

    • ol8_x86_64_olcne17

    • ol8_x86_64_addons

    • ol8_x86_64_baseos_latest

    • ol8_x86_64_appstream

    • ol8_x86_64_kvm_appstream

    • ol8_x86_64_UEKR7 (ホストでUEK R7を実行している場合)

    • ol8_x86_64_UEKR6 (ホストでUEK R6を実行している場合)

    システムが次のチャネルにサブスクライブされていないことを確認します:

    • ol8_x86_64_developer

    • ol8_x86_64_olcne16
    • ol8_x86_64_olcne15
    • ol8_x86_64_olcne14
    • ol8_x86_64_olcne13

    • ol8_x86_64_olcne12

 Oracle Container Registryへのアクセス

Platform CLIでデプロイしたコンテナ・イメージは、次の場所にあるOracle Container Registryでホストされます。 Oracle Container Registryの詳細は、「Oracle® Linux: Oracle Container Runtime for Dockerユーザー・ガイド」を参照してください。

Oracle Container Registryを使用するデプロイメントの場合は、環境内の各ノードがインターネットに直接アクセスできるようにプロビジョニングされている必要があります。

オプションで、Oracle Container Registryミラーを使用するか、ネットワーク内にプライベート・レジストリ・ミラーを作成できます。

Kubernetesモジュールを作成する場合は、コンテナ・イメージを取得するレジストリを指定する必要があります。 これは、olcnectl module createコマンドの--container-registryオプションを使用して設定します。 Oracle Container Registryを使用する場合は、コンテナ・レジストリを次のように設定する必要があります。

container-registry.oracle.com/olcne

Oracle Container RegistryのOracle Cloud Native Environmentコンテナ・イメージをミラー化するプライベート・レジストリを使用する場合は、次のように、コンテナ・レジストリをプライベート・レジストリのドメイン名およびポートに設定します:

myregistry.example.com:5000/olcne

コンテナ・レジストリをインストール時に使用するように設定すると、Kubernetesモジュールの更新およびアップグレード時にイメージを取得するデフォルト・レジストリになります。 --container-registryオプションを使用して、更新またはアップグレード中に新しいデフォルト値を設定できます。

 Oracle Container Registryミラーの使用

Oracle Container Registryには、世界中の多数のミラー・サーバーがあります。 グローバル・リージョンでレジストリ・ミラーを使用すると、コンテナ・イメージのダウンロード・パフォーマンスを改善できます。 Oracle Container RegistryミラーはOracle Cloud Infrastructureでホストされますが、Oracle Cloud Infrastructureの外部からもアクセスできます。 地理的なロケーションに最も近いミラーを使用すると、ダウンロード速度が速くなります。

Oracle Container Registryミラーを使用してイメージを取得するには、次の形式を使用します。

container-registry-region-key.oracle.com/olcne

たとえば、IADのリージョン・キーを持つ米国東部(アッシュバーン)リージョンでOracle Container Registryミラーを使用するには、レジストリが(--container-registryオプションを使用して)次のように設定されます:

container-registry-iad.oracle.com/olcne

Oracle Container Registryミラーの詳細と、あるロケーションにあるミラーのリージョン・キーの検索は、Oracle Cloud Infrastructureのドキュメント」を参照してください。

 プライベート・レジストリの使用

場合によっては、環境内のノードにインターネットへの直接アクセスがプロビジョニングされないことがあります。 このような場合、Oracle Container RegistryでOracle Cloud Native Environmentコンテナ・イメージをミラー化するプライベート・レジストリを使用できます。 このシナリオでは、それぞれのノードがミラー・レジストリ・ホストに直接アクセスできる必要があります。

ネットワーク内の既存のコンテナ・レジストリを使用するか、Oracle Linux 8ホストでPodmanを使用してプライベート・レジストリを作成できます。 既存のプライベート・コンテナ・レジストリを使用する場合は、レジストリを作成する次の手順の最初のステップをスキップしてください。

プライベート・レジストリを作成するには:

  1. Oracle Container Registryミラー・サービスに使用するOracle Linux 8ホストを選択します。 ミラー・ホストは、インターネットにアクセスでき、Oracle Container Registryから直接イメージをプルできるか、またはローカルに格納されている正しいイメージ・ファイルにアクセスできる必要があります。 理想的には、ホストはOracle Cloud Native Environment内のノードではなく、環境の一部であるすべてのノードからアクセスできます。

    ミラー・ホストで、「Oracle® Linux: Podmanユーザーズ・ガイド」の「ローカル・コンテナ・レジストリ」の設定に関する項の手順に従って、Podmanをインストールし、プライベート・レジストリを設定します。

  2. ミラー・ホストで、Oracle Cloud Native Environmentソフトウェア・パッケージへのアクセスを有効にします。 パッケージへのアクセスの有効化の詳細は、「ソフトウェア・パッケージへのアクセスの有効化」を参照してください。

  3. olcne-utilsパッケージをインストールして、レジストリ・ミラー化ユーティリティにアクセスできるようにします。

    sudo dnf install olcne-utils

    Oracle Linux 7で実行されているネットワークで既存のコンテナ・レジストリを使用している場合は、dnfのかわりにyumを使用してolcne-utilsをインストールします。

  4. 必要なオプションを指定してregistry-image-helper.shスクリプトを使用して、必要なコンテナ・イメージをOracle Container Registryからプライベート・レジストリにコピーします:

    registry-image-helper.sh --to host.example.com:5000/olcne

    ここで、host.example.com:5000は、プライベート・レジストリが使用可能な解決可能なドメイン名およびポートです。

    オプションで、--fromオプションを使用して、イメージをプルする別のレジストリを指定できます。 たとえば、Oracle Container Registryミラーからイメージを取得するには、次のようにします。

    registry-image-helper.sh \
    --from container-registry-iad.oracle.com/olcne \
    --to host.example.com:5000/olcne

    スクリプトを実行しているホストがインターネットにアクセスできない場合は、--fromオプションを--localオプションに置き換えて、コンテナ・イメージをローカル・ディレクトリから直接ロードできます。 イメージを含むローカル・ディレクトリは、次のいずれかです:

    • /usr/local/share/kubeadm/

    • /usr/local/share/olcne/

    イメージ・ファイルは、TAR形式でアーカイブされている必要があります。 --localオプションを指定してスクリプトを実行すると、ディレクトリ内のすべてのTARファイルがプライベート・レジストリにロードされます。

    --versionオプションは、ミラーするKubernetesのバージョンを指定する場合に使用できます。 指定しない場合は、最新のリリースが使用されます。 プルできるバージョンについては、「リリース・ノート」を参照してください。

OSの設定

次の項では、Oracle LinuxシステムにOracle Cloud Native Environmentをインストールおよび構成するために満たす必要がある要件について説明します。

 ネットワーク・タイム・サービスの設定

クラスタリング環境として、Oracle Cloud Native Environmentでは、クラスタ内の各Kubernetesコントロール・プレーンおよびワーカー・ノード間でシステム時間が同期されている必要があります。 一般に、これを実現するために、各ノードにネットワーク・タイム・プロトコル(NTP)デーモンをインストールして構成します。 この目的のために、chronydデーモンをインストールして設定することをお薦めします。

Oracle Linux システムでは、chronydサービスがデフォルトで有効になり、起動されます。

Oracle Cloud Infrastructureで実行されているシステムは、デフォルトでchronydタイム・サービスを使用するように構成されているため、Oracle Cloud Infrastructure環境にインストールする場合は、NTPを追加または構成する必要はありません。

 スワップの無効化

Kubernetesコントロール・プレーン・ノードおよびワーカー・ノードで、スワップを無効にする必要があります。 スワップを無効にするには、次を入力します。

sudo swapoff -a

この設定が再起動しても永続されるよう、/etc/fstabファイルを編集してスワップ・ディスクを削除するかコメント・アウトします。 たとえば、次のステップのようなコマンドの使用を検討できます:

  1. 変更する前に/etc/fstabファイルの内容を確認します:

    sudo cat /etc/fstab
  2. /etc/fstabのバックアップを作成します。

    sudo cp /etc/fstab /etc/fstab_copy
  3. /etc/fstabファイルからスワップ・ディスクをコメント・アウトします:

    sudo sed -i '/\bswap\b/s/^/#/' /etc/fstab
  4. 変更後に/etc/fstabの内容を確認します:

    sudo cat /etc/fstab

Platform Agentのアクセスの構成

必要なパッケージのインストール中に、各Kubernetesノードのプラットフォーム・エージェントに対してolcneユーザーが作成されます。

olcneユーザーが各Kubernetesノードで次のことを実行できることを確認する必要があります:

  • 実際の端末セッション( tty)にログインしなくても、sudoを使用します。

  • sudoを使用して、認証用のパスワードを指定せずに/etc/olcne/scriptsでスクリプトを実行します。

 ネットワークの設定

この項では、Oracle Cloud Native Environmentノードのネットワーク要件について説明します。

次の表に、環境内のKubernetesのデプロイメントでサービスによって使用されるネットワーク・ポートを示します。

通信元ノード・タイプ 通信先ノード・タイプ ポート プロトコル 事由

ワーカー

オペレータ

8091

TCP(6)

Platform API Server

コントロール・プレーン

オペレータ

8091

TCP(6)

Platform API Server

コントロール・プレーン

コントロール・プレーン

2379-2380

TCP(6)

Kubernetes etcd (高可用性クラスタ)

オペレータ

コントロール・プレーン

6443

TCP(6)

Kubernetes APIサーバー

ワーカー

コントロール・プレーン

6443

TCP(6)

Kubernetes APIサーバー

コントロール・プレーン

コントロール・プレーン

6443

TCP(6)

Kubernetes APIサーバー

コントロール・プレーン

コントロール・プレーン

6444

TCP(6)

代替Kubernetes APIサーバー(高可用性クラスタ)

オペレータ

コントロール・プレーン

8090

TCP(6)

Platform Agent

コントロール・プレーン

コントロール・プレーン

10250

10251

10252

10255

TCP(6)

TCP(6)

TCP(6)

TCP(6)

Kubernetes kubelet APIサーバー

Kubernetes kube-scheduler (高可用性クラスタ)

Kubernetes kube-controller-manager (高可用性クラスタ)

認証なしの読取り専用アクセス用Kubernetes kubelet APIサーバー

コントロール・プレーン

コントロール・プレーン

8472

UDP(11)

Flannel

コントロール・プレーン

ワーカー

8472

UDP(11)

Flannel

ワーカー

コントロール・プレーン

8472

UDP(11)

Flannel

ワーカー

ワーカー

8472

UDP(11)

Flannel

コントロール・プレーン

コントロール・プレーン

該当なし

VRRP(112)

Kubernetes APIサーバー(高可用性クラスタ)のKeepalived

オペレータ

ワーカー

8090

TCP(6)

Platform Agent

コントロール・プレーン

ワーカー

10250

10255

TCP(6)

TCP(6)

Kubernetes kubelet APIサーバー

認証なしの読取り専用アクセス用Kubernetes kubelet APIサーバー

次の各項では、各ノードでネットワークを設定して、環境内のノード間の通信を有効にする方法について説明します。

重要:

オペレータおよびKubernetesノードでネットワーク・ポートを開くことに加えて、外部ファイアウォール(ハードウェアまたはソフトウェア・ベース)を使用している場合は、インストールを実行する前に、前の表のポートが外部ファイアウォールで開いていることを確認します。

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

Oracle Linuxは、デフォルトでfirewalldをインストールおよび有効化します。 Oracle Cloud Native Environmentは、firewalldを有効にしてインストールすることも、無効にして別のファイアウォール・ソリューションを使用することもできます。 この項では、firewalldを有効にするようにファイアウォール・ルールを設定する方法について説明します。

重要:

Calicoでは、firewalldサービスを無効にする必要があります。 ポッドのKubernetes CNIとしてCalicoをインストールする場合、この項に示すようにネットワーク・ポートを構成する必要はありません。 firewalldの無効化およびCalicoのインストール方法の詳細は、「Calicoモジュール」を参照してください。

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サーバー: 認証なしの読取り専用アクセス用(コントロール・プレーン・ノードおよびワーカー・ノード)

ポートを開き、ファイアウォール・ルールを設定するコマンドが用意されています。

 非高可用性クラスタ・ファイアウォール・ルール

単一のコントロール・プレーン・ノードを備えたクラスタでは、ファイアウォールで次のポートを開く必要があります。

オペレータ・ノード

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

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

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

sudo systemctl restart firewalld.service

ワーカー・ノード

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.service

コントロール・プレーン・ノード

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.service
 高可用性クラスタ・ファイアウォール・ルール

高可用性クラスタの場合は、「非HAクラスタ・ファイアウォール・ルール」の説明に従ってすべてのファイアウォール・ポートを、コントロール・プレーン・ノード上の次の「特別」ポートとともに開きます。

Kubernetesコントロール・プレーン・ノードで、次のコマンドを実行します。

sudo firewall-cmd --add-port=10251/tcp --permanent
sudo firewall-cmd --add-port=10252/tcp --permanent
sudo firewall-cmd --add-port=2379/tcp --permanent
sudo firewall-cmd --add-port=2380/tcp --permanent

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

sudo systemctl restart firewalld.service

 その他のネットワーク・オプションの設定

この項では、Oracle Cloud Native Environmentデプロイメントに影響する他のネットワーク関連の構成について説明します。 この項による変更は不要な場合がありますが、ネットワークの構成に関連する問題が発生した場合の理解を助けるために示しています。

 インターネット・アクセス

Platform CLIでは、コンテナ・レジストリにアクセスできるかどうかをチェックし、必要なコンテナ・イメージを取り出します。 コンテナ・イメージのローカル・レジストリ・ミラーを設定する予定がないかぎり、Oracle Cloud Native Environmentをインストールする予定のシステムは、インターネットに直接アクセスするか、プロキシを使用するように構成する必要があります。

Oracle Linux 9のnftablesルール

Oracle Linux 9ホストを使用しており、firewalldが有効になっている場合は、Kubernetesノードにnftablesルールを追加する必要があります。

リブート時にルールを永続化する必要がない場合は、次を使用して各Kubernetesノードでルールを設定します:

sudo nft add rule inet firewalld filter_FORWARD_POLICIES_post accept

ホストのリブートでルールを永続化する必要がある場合(推奨)、ルール・ファイルを設定し、有効になっているsystemdサービスを作成します。 各Kubernetesノードで、次を実行します。

  1. 次のように入力して、ルールを含む/etc/nftables/forward-policies.nftという名前のファイルを作成します:

    sudo sh -c "cat > /etc/nftables/forward-policies.nft << EOF
    flush chain inet firewalld filter_FORWARD_POLICIES_post
    
    table inet firewalld {
            chain filter_FORWARD_POLICIES_post {
                    accept
            }
    }
    EOF"
  2. 次のように入力して、systemdサービスを含む/etc/systemd/system/forward-policies.serviceという名前のファイルを作成します:

    sudo sh -c "cat > /etc/systemd/system/forward-policies.service << EOF
    [Unit]
    Description=Idempotent nftables rules for forward-policies
    PartOf=firewalld.service
    
    [Service]
    ExecStart=/sbin/nft -f /etc/nftables/forward-policies.nft
    ExecReload=/sbin/nft -f /etc/nftables/forward-policies.nft
    Restart=always
    StartLimitInterval=0
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    EOF"
  3. ルール・サービスを有効にして再起動します:

    sudo systemctl enable forward-policies.service
    sudo systemctl restart forward-policies.service
 Flannelネットワーク

Platform CLIは、FlannelネットワークをKubernetesポッド間の通信に使用されるネットワーク・ファブリックとして構成します。 このオーバーレイ・ネットワークは、ネットワーク接続にVxLANsを使用します。 Flannelの詳細は、「アップストリームのドキュメント」を参照してください。

デフォルトでは、Platform CLIによって、このネットワークをホストするために、10.244.0.0/16の範囲にネットワークを作成します。 Platform CLIには、インストール中に必要に応じてネットワーク範囲を別の範囲に設定するオプションがあります。 Oracle Cloud Native Environmentデプロイメント内のシステムには、この予約済IP範囲用に構成されたネットワーク・デバイスがない必要があります。

br_netfilterモジュール

Platform CLIは、br_netfilterモジュールがロードされているかどうかを確認し、使用できない場合は終了します。 このモジュールは、クラスタ全体のKubernetesポッド間の通信に対して、透過的なマスカレードおよび仮想拡張可能LAN (VxLAN)トラフィックを有効にするために必要です。 このモジュールがロードされているかどうかは、次のコマンドを実行して確認します:

sudo lsmod|grep br_netfilter

次のような出力が表示される場合は、br_netfilterモジュールがロードされます。

br_netfilter           24576  0 
bridge                155648  2 br_netfilter,ebtable_broute

カーネル・モジュールは必要に応じてロードされるため、このモジュールを手動でロードする必要はほとんどありません。 モジュールは、次を実行して手動でロードし、永続モジュールとして追加できます:

sudo modprobe br_netfilter
sudo sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'
 ブリッジの調整可能なパラメータ

Kubernetesでは、ネットワーク・ブリッジを通過するパケットが、フィルタリングおよびポート転送のために処理されている必要があります。 そうするために、kubeadmパッケージのインストール時にカーネル・ブリッジ・モジュールの調整可能なパラメータが自動的に設定され、次の行が含まれているsysctlファイルが/etc/sysctl.d/k8s.confに作成されます。

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

このファイルを変更するか、自分と同じようなものを作成する場合は、次のコマンドを実行してブリッジのチューニング可能パラメータをロードします:

sudo /sbin/sysctl -p /etc/sysctl.d/k8s.conf
 ネットワーク・アドレス変換

クラスタ内の1つ以上のKubernetesワーカー・ノードがNATゲートウェイの背後にある場合、ネットワーク・アドレス変換(NAT)が必要になることがあります。 たとえば、セキュアな会社ネットワークにコントロール・プレーン・ノードを配置し、公的にアクセス可能な非武装地帯(安全性が低い)に他のワーカー・ノードを配置できます。 コントロール・プレーン・ノードは、ワーカー・ノードのNATゲートウェイを介してワーカー・ノードにアクセスします。 または、主に新しいネットワーク上のクラスタで使用するレガシー・ネットワークにワーカー・ノードがある場合があります。 これらの場合、NATゲートウェイは、Kubernetesクラスタにアクセス可能なIPアドレスのリクエストをNATゲートウェイの背後にあるサブネット上のIPアドレスに変換します。

ノート:

NATの背後に配置できるのはワーカー・ノードのみです。 コントロール・プレーン・ノードをNATの背後に置くことはできません。

NATゲートウェイの設定に使用するスイッチまたはネットワーク機器に関係なく、NATゲートウェイの背後にあるノードに対して次のことを構成する必要があります:

  • NATゲートウェイの背後にあるノードのインタフェースには、Kubernetesクラスタからアクセス可能な/32サブネット・マスクを使用するパブリックIPアドレスが必要です。 /32サブネットは、KubernetesクラスタからのすべてのトラフィックがこのパブリックIPアドレスを通過するように、サブネットを1つのIPアドレスに制限します。

  • また、ノードのインタフェースには、NATゲートウェイの背後にプライベートIPアドレスを含める必要があります。NATゲートウェイでは、スイッチはNAT表を使用してパブリックIPアドレスを照合します。

たとえば、次のコマンドを使用して、ens5インタフェースに到達可能なIPアドレスを追加できます。

sudo ip addr add 192.168.64.6/32 dev ens5 

その後、次のコマンドを使用して、プライベートIPアドレスを同じインタフェースに追加できます。

sudo ip addr add 192.168.192.2/18 dev ens5

 FIPSモードの設定

オプションで、「Oracle Linux 9: FIPSモードのインストールと構成」または「Oracle Linux 8: システム・セキュリティの強化」の説明に従って、Oracle Cloud Native Environmentオペレータ、コントロール・プレーンおよびワーカー・ホストを連邦情報処理標準(FIPS)モードで実行するように構成できます。

Oracle Cloud Native Environmentは、ホストがFIPSモードで実行されている場合、Oracle LinuxのOpenSSLの暗号化バイナリを使用します。

SSHキー・ベース認証の設定

Platform CLI (olcnectl)インストール・コマンドを実行して、オペレータ・ノードから各KubernetesノードおよびPlatform API Server・ノードへのログインを有効にするユーザーのSSHキー・ベース認証を設定します。

次のステップは、SSHキー・ベースの認証を設定するメソッドの1つを示しています。

  1. 秘密キーと公開キーのペアを生成します。 オペレータ・ノードで、olcnectlコマンドの実行に使用するユーザーとしてssh-keygenを実行します。 キーのパスフレーズを作成しないでください(パスフレーズの入力を求められたら、<Enter>を押します)。 たとえば:

    ssh-keygen

    次のような出力が表示されます:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa):<Enter>
    Enter passphrase (empty for no passphrase): <Enter>
    Enter same passphrase again: <Enter>
    Your identification has been saved in /home/user/.ssh/id_rsa.
    Your public key has been saved in /home/user/.ssh/id_rsa.pub.
    ...
  2. 秘密キーと公開キー・ペアのロケーションを確認します。 ssh-keygenコマンド出力で報告されたロケーションに秘密キーと公開キーのペアが作成されていることを確認します:

    ls -l /home/user/.ssh/

    次のような出力が表示されます:

    ...
    -rw-------. 1 user user 2643 Jan 10 14:55 id_rsa
    -rw-r--r--. 1 user user  600 Jan 10 14:55 id_rsa.pub
    ...

    公開キーは、「.pub」拡張子の付いたファイルによって示されます。

  3. ターゲット・ノードで公開キーを設定します。 公開キーの内容を、キー・ベースのSSHが設定されているユーザーの各ターゲット・ノードの$HOME/.ssh/authorized_keysファイルに追加します。

    オペレータ・ノードで、ssh-copy-idコマンドを実行します。 構文は次のとおりです。

    ssh-copy-id user@host

    プロンプトが表示されたら、ホストのユーザーのパスワードを入力します。 コマンドが正常に完了すると、公開キーの内容がリモート・ホスト上のユーザーの$HOME/.ssh/authorized_keysファイルのコピーに追加されます。

    次の例は、コマンドssh-copy-idを使用して、ホスト192.0.2.255上のユーザーのauthorized_keysファイルに公開キーを追加する方法を示しています :

    ssh-copy-id user@192.0.2.255
  4. ユーザーがオペレータ・ノードからSSHキー・ベースのアクセス権を持っていることを確認します。 オペレータ・ノードで、sshを使用して他の各ノードに接続し、パスワードの入力を求められることなくログインが成功することを確認します。

    たとえば、次のようにオペレータ・ノードでsshコマンドを実行して、キー・ベースのSSHアクセスを確認します:

    ssh user@192.0.2.255

SSHキー・ベース認証の設定の詳細は、「Oracle Linux: OpenSSHを使用したリモート・システムへの接続」を参照してください。