2 前提条件
この章では、Oracle Cloud Native Environmentのインストールで使用されるシステムの前提条件について説明します。 この章では、リポジトリがOracle Cloud Native Environmentパッケージをインストールできるようにする方法についても説明します。
ソフトウェア・パッケージへのアクセスの有効化
この項では、Oracle Cloud Native Environmentソフトウェア・パッケージをインストールするオペレーティング・システムのロケーションの設定について説明します。
Oracle Linux 8
Oracle Linux 8のOracle Cloud Native Environmentパッケージは、ol8_olcne16
リポジトリのOracle Linux yumサーバー、またはol8_x86_64_olcne16
チャネルのUnbreakable Linux Network (ULN)で使用できます。 ただし、他のリポジトリおよびチャネル間の依存関係もあり、Oracle Cloud Native Environmentがインストールされている各システムでも有効にする必要があります。
注意:
Oracleは、ol8_developer
またはol8_developer_EPEL
yumリポジトリまたはULNチャネルが有効化されているシステム、またはそれらのリポジトリやチャネルからのソフトウェアがKubernetesを実行しているシステムに現在インストールされているシステムでは、Kubernetesをサポートしていません。 このドキュメントの手順に従っていたとしても、該当するリポジトリまたはチャネルを有効化している場合や、該当するチャネルまたはリポジトリからのソフトウェアをシステムにインストールしている場合は、そのプラットフォームがサポートされない状態になります。
ULNによるチャネルの有効化
ULNの使用を登録している場合は、ULN Webインタフェースを使用して、システムを適切なチャネルにサブスクライブします。
ULNチャネルにサブスクライブするには:
-
自分のULNユーザー名とパスワードを使用して、https://linux.oracle.comにログインします。
-
「Systems」タブで、登録されたマシンのリストからシステムの名前に対応するリンクをクリックします。
-
「System Details」ページで、「Manage Subscriptions」をクリックします。
-
「System Summary」ページで、使用可能なチャネルのリストから必要なチャネルを1つずつ選択して右矢印をクリックし、そのチャネルをサブスクライブ済チャネルのリストに移動します。
次に示すチャネルにシステムをサブスクライブします。
-
ol8_x86_64_olcne16
-
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_olcne15
-
ol8_x86_64_olcne14
-
ol8_x86_64_olcne13
-
ol8_x86_64_olcne12
-
Oracle Linux Yum Serverによるリポジトリの有効化
システムの更新にOracle Linux yumサーバーを使用する場合は、必要なyumリポジトリを有効にします。
yumリポジトリを有効にするには:
-
oracle-olcne-release-el8
リリース・パッケージをインストールして、Oracle Cloud Native Environment yumリポジトリ構成をインストールします。sudo dnf install oracle-olcne-release-el8
-
インストールするリリースのリポジトリを設定します。
次のyumリポジトリを有効にします。
-
ol8_olcne16
-
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_olcne16 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR7
UEK R6を実行しているホストの場合:
sudo dnf config-manager --enable ol8_olcne16 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream ol8_UEKR6
RHCKを実行しているホストの場合:
sudo dnf config-manager --enable ol8_olcne16 ol8_addons ol8_baseos_latest ol8_appstream ol8_kvm_appstream
次のyumリポジトリを無効にします:
-
ol8_olcne15
-
ol8_olcne14
-
ol8_olcne13
-
ol8_olcne12
-
ol8_developer
dnf config-manager
ツールを使用して、yumリポジトリを無効にします:sudo dnf config-manager --disable ol8_olcne15 ol8_olcne14 ol8_olcne13 ol8_olcne12 ol8_developer
-
Oracle Linux 7
Oracle Linux 7のOracle Cloud Native Environmentパッケージは、ol7_olcne16
リポジトリのOracle Linux yumサーバー、またはol7_x86_64_olcne16
チャネルのUnbreakable Linux Network (ULN)で使用できます。 ただし、他のリポジトリおよびチャネル間の依存関係もあり、Oracle Cloud Native Environmentがインストールされている各システムでも有効にする必要があります。
注意:
Oracleは、yumリポジトリ(ol7_preview
、ol7_developer
またはol7_developer_EPEL
)が有効化されているシステムやULNチャネルが有効化されているシステム、または、それらのリポジトリやチャネルからのソフトウェアがKubernetesを実行するシステムに現時点でインストールされているシステムではKubernetesをサポートしていません。 このドキュメントの手順に従っていたとしても、該当するリポジトリまたはチャネルを有効化している場合や、該当するチャネルまたはリポジトリからのソフトウェアをシステムにインストールしている場合は、そのプラットフォームがサポートされない状態になります。
ULNによるチャネルの有効化
ULNの使用を登録している場合は、ULN Webインタフェースを使用して、システムを適切なチャネルにサブスクライブします。
ULNチャネルにサブスクライブするには:
-
自分のULNユーザー名とパスワードを使用して、https://linux.oracle.comにログインします。
-
「Systems」タブで、登録されたマシンのリストからシステムの名前に対応するリンクをクリックします。
-
「System Details」ページで、「Manage Subscriptions」をクリックします。
-
「System Summary」ページで、使用可能なチャネルのリストから必要なチャネルを1つずつ選択して右矢印をクリックし、そのチャネルをサブスクライブ済チャネルのリストに移動します。
次に示すチャネルにシステムをサブスクライブします。
-
ol7_x86_64_olcne16
-
ol7_x86_64_kvm_utils
-
ol7_x86_64_addons
-
ol7_x86_64_latest
-
ol7_x86_64_UEKR6
次のチャネルをサブスクライブしていないことを確認します。
-
ol7_x86_64_developer
-
ol7_x86_64_olcne15
-
ol7_x86_64_olcne14
-
ol7_x86_64_olcne13
-
ol7_x86_64_olcne12
-
ol7_x86_64_olcne11
-
ol7_x86_64_olcne
-
Oracle Linux Yum Serverによるリポジトリの有効化
システムの更新にOracle Linux yumサーバーを使用する場合は、必要なyumリポジトリを有効にします。
yumリポジトリを有効にするには:
-
oracle-olcne-release-el7
リリース・パッケージをインストールして、Oracle Cloud Native Environment yumリポジトリ構成をインストールします。sudo yum install oracle-olcne-release-el7
-
インストールするリリースのリポジトリを設定します。
次のyumリポジトリを有効にします。
-
ol7_olcne16
-
ol7_kvm_utils
-
ol7_addons
-
ol7_latest
-
ol7_UEKR6
yum-config-manager
ツールを使用して、yumリポジトリを有効にします:sudo yum-config-manager --enable ol7_olcne16 ol7_kvm_utils ol7_addons ol7_latest ol7_UEKR6
次のyumリポジトリを無効にします:
-
ol7_olcne15
-
ol7_olcne14
-
ol7_olcne13
-
ol7_olcne12
-
ol7_olcne11
-
ol7_olcne
-
ol7_developer
dnf config-manager
ツールを使用して、yumリポジトリを無効にします:sudo yum-config-manager --disable ol7_olcne15 ol7_olcne14 ol7_olcne13 ol7_olcne12 ol7_olcne11 ol7_olcne ol7_developer
-
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ドキュメントを参照してください。
https://docs.cloud.oracle.com/iaas/Content/General/Concepts/regions.htm
プライベート・レジストリの使用
場合によっては、環境内のノードがインターネットに直接アクセスできるようにプロビジョニングされていないことがあります。 このような場合、Oracle Container RegistryでOracle Cloud Native Environmentコンテナ・イメージをミラー化するプライベート・レジストリを使用できます。 このシナリオでは、それぞれのノードがミラー・レジストリ・ホストに直接アクセスできる必要があります。
ネットワークで既存のコンテナ・レジストリを使用するか、Oracle Linux 8ホストのPodmanを使用してプライベート・レジストリを作成できます。 既存のプライベート・コンテナ・レジストリを使用する場合は、レジストリを作成する次の手順の最初のステップをスキップしてください。
プライベート・レジストリを作成するには:
-
Oracle Container Registryミラー・サービスに使用するOracle Linux 8ホストを選択します。 ミラー・ホストは、インターネットにアクセスできる必要があり、Oracle Container Registryからイメージを直接取り出せるようにする必要があります。または、ローカルに保存された適切なイメージ・ファイルにアクセスできる必要があります。 理想的には、ホストはOracle Cloud Native Environment内のノードであるべきではありませんが、環境の一部であるすべてのノードからアクセスできる必要があります。
ミラー・ホストで、Podmanをインストールし、「Oracle® Linux: Podmanユーザー・ガイド」の「ローカル・コンテナ・レジストリ」の設定の手順に従ってプライベート・レジストリを設定します。
-
ミラー・ホストで、Oracle Cloud Native Environmentソフトウェア・パッケージへのアクセスを有効にします。 パッケージへのアクセスの有効化の詳細は、「ソフトウェア・パッケージへのアクセスの有効化」を参照してください。
-
olcne-utils
パッケージをインストールして、レジストリ・ミラー化ユーティリティにアクセスできるようにします。sudo dnf install olcne-utils
Oracle Linux 7で実行されているネットワークで既存のコンテナ・レジストリを使用している場合は、
dnf
のかわりにyum
を使用してolcne-utils
をインストールします。 -
必要なオプションを指定して
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のバージョンを指定する場合に使用できます。 指定しない場合は、最新のリリースが使用されます。 取得可能なバージョンは、リリース・ノートにリストされているバージョンです。 -
オペレーティング・システムの設定
次の項では、Oracle Linux 8およびOracle Linux 7システムにOracle Cloud Native Environmentをインストールおよび構成するために満たす必要がある要件について説明します。
ネットワーク・タイム・サービスの設定
クラスタリング環境として、Oracle Cloud Native Environmentでは、クラスタ内の各Kubernetesコントロール・プレーンおよびワーカー・ノード間でシステム時間が同期されている必要があります。 一般に、これを実現するために、各ノードにネットワーク・タイム・プロトコル(NTP)デーモンをインストールして構成します。 この場合の用途には、chronydデーモンをインストールして設定することをお薦めします。
Oracle Linux 8システムでは、chronyd
サービスがデフォルトで有効になり、起動されます。
Oracle Cloud Infrastructureで実行されるシステムは、デフォルトでchronyd
時間サービスを使用するように構成されるため、Oracle Cloud Infrastructure環境にインストールする場合は、NTPを追加または構成する必要はありません。
Oracle Linux 7でchronydを設定するには:
-
各Kubernetesコントロール・プレーン・ノードおよびワーカー・ノードで、
chrony
パッケージをインストールします(インストールされていない場合)。sudo yum install chrony
-
/etc/chrony.conf
のNTP構成を編集します。 それぞれの要件は異なることがあります。 各ノードのネットワークを構成するためにDHCPを使用している場合は、NTPサーバーを自動的に構成することが可能です。 システムの同期に使用できるNTPサービスがローカルに構成されていない場合は、そのシステムがインターネットにアクセスできれば、パブリックのpool.ntp.org
サービスを使用するように構成できます。 https://www.ntppool.org/を参照してください。 -
Oracle Cloud Native Environmentのインストールを続行する前に、ブート時にNTPが再起動可能であり、起動されていることを確認してください。 たとえば:
sudo systemctl enable --now chronyd.service
ネットワーク・タイム・サービスの構成の詳細は、「Oracle® Linux 7: 管理者ガイド」を参照してください。
スワップの無効化
Kubernetesコントロール・プレーン・ノードおよびワーカー・ノードで、スワップを無効にする必要があります。 スワップを無効にするには、次を入力します。
sudo swapoff -a
この設定が再起動しても永続されるよう、/etc/fstab
ファイルを編集してスワップ・ディスクを削除するかコメント・アウトします。 たとえば、次のステップのようなコマンドの使用を検討できます:
-
変更する前に
/etc/fstab
ファイルの内容を確認します:sudo cat /etc/fstab
-
/etc/fstab
のバックアップを作成します。sudo cp /etc/fstab /etc/fstab_copy
-
/etc/fstab
ファイルからスワップ・ディスクをコメント・アウトします:sudo sed -i '/\bswap\b/s/^/#/' /etc/fstab
-
変更後に
/etc/fstab
の内容を確認します:sudo cat /etc/fstab
ネットワークの設定
この項では、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
Kubernetes
Kubernetes
認証なしの読取り専用アクセス用Kubernetes |
コントロール・プレーン |
コントロール・プレーン |
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
認証なしの読取り専用アクセス用Kubernetes |
次の各項では、各ノードでネットワークを設定して、環境内のノード間の通信を有効にする方法について説明します。
ファイアウォール・ルールの設定
Oracle Linux により、デフォルトでfirewalldがインストールされて有効化されます。 firewalldを有効にした状態でOracle Cloud Native Environmentをインストールするか、無効にして独自のファイアウォール・ソリューションを使用できます。 この項では、firewalldを有効にする場合のファイアウォール・ルールの設定方法を示します。
重要:
Calicoでは、firewalldサービスを無効にする必要があります。 ポッドのKubernetes CNIとしてCalicoをインストールする場合、この項に示すようにネットワーク・ポートを構成する必要はありません。 firewalldの無効化および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をインストールする予定のシステムは、インターネットに直接アクセスするか、プロキシを使用するように構成する必要があります。
Flannelネットワーク
Platform CLIによって、Kubernetesポッド間の通信に使用するネットワーク・ファブリックとしてのflannelネットワークを構成します。 このオーバーレイ・ネットワークでは、ネットワーク接続を容易にするためにVxLANを使用します。 flannelの詳細は、次の場所にあるドキュメントを参照してください。
https://github.com/flannel-io/flannel
デフォルトでは、Platform CLIによって、このネットワークをホストするために、10.244.0.0/16
の範囲にネットワークを作成します。 Platform CLIには、インストール時に必要に応じてネットワーク範囲を別の範囲に設定するオプションがあります。 Oracle Cloud Native Environmentデプロイメント内のシステムには、この予約済IP範囲用に構成されたネットワーク・デバイスがない必要があります。
br_netfilterモジュール
Platform CLIは、br_netfilter
モジュールがロードされているかどうかを確認し、そのモジュールが使用できない場合は終了します。 このモジュールは、クラスタ全体のKubernetesポッド間の通信のために、Virtual Extensible LAN (VxLAN)トラフィックの透過的マスカレードを有効にして、このトラフィックを円滑に進めるために必要です。 このモジュールがロードされているかどうかは、次のコマンドを実行して確認します。
sudo lsmod|grep br_netfilter br_netfilter 24576 0 bridge 155648 2 br_netfilter,ebtable_broute
これと同様の出力が示された場合は、br_netfilter
モジュールがロードされています。 通常、カーネル・モジュールは必要に応じてロードされます。ほとんどの場合、このモジュールを手動でロードする必要はありません。 次のコマンドを実行することで、モジュールを必要に応じて手動でロードして、永続モジュールとして追加できます。
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 Cloud Native Environmentオペレータ、コントロール・プレーンおよびワーカー・ホストを構成して、Federal Information Processing Standards (FIPS)モードで実行できます(「Oracle® Linux 8: システム・セキュリティの強化」を参照)。 Oracle Cloud Native Environmentは、ホストがFIPSモードで実行されている場合、Oracle Linux 8のOpenSSLの暗号化バイナリを使用します。
ノート:
FIPSモードで実行されているOracle Linux 7ホストでは、Oracle Cloud Native Environmentを使用できません。
SSHキー・ベース認証の設定
olcnectl
)インストール・コマンドを実行してオペレータ・ノードから次のノードへのログインを有効にするユーザーのSSHキー・ベース認証を設定します:
- 各Kubernetesノード。
- Platform API Serverノード
SSHキー・ベース認証の設定の詳細は、「クイック・インストール」の「SSHキー・ベース認証の設定」を参照してください。 詳細は、「Oracle® Linux: OpenSSHを使用したリモート・システムへの接続」を参照してください。