4.5.2. GitOps ZTP および SiteConfig リソースを使用したシングルノード OpenShift クラスターの IPsec 暗号化の設定
GitOps ZTP と Red Hat Advanced Cluster Management (RHACM) を使用してインストールするシングルノード OpenShift マネージドクラスターで IPsec 暗号化を有効にできます。マネージドクラスターと、マネージドクラスター外の IPsec エンドポイント間のトラフィックを暗号化できます。OVN-Kubernetes クラスターネットワーク上のノード間のすべてのネットワークトラフィックが、Transport モードの IPsec で暗号化されます。
次の手順に従って、追加のワーカーノードを備えたシングルノード OpenShift クラスターの IPsec 暗号化を設定することもできます。シングルノード OpenShift クラスターおよび追加のワーカーノードを備えたシングルノード OpenShift クラスターの IPsec 暗号化を設定する際には、リソースの可用性が低いため、MachineConfig カスタムリソース (CR) を使用することを推奨します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてハブクラスターにログインしている。 - マネージドクラスターに必要なインストールおよびポリシーカスタムリソース (CR) を生成するために、RHACM とハブクラスターを設定している。
- カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD アプリケーションのソースリポジトリーとして定義されている必要があります。
-
butaneユーティリティーバージョン 0.20.0 以降がインストールされている。 - IPsec エンドポイント用の PKCS#12 証明書と PEM 形式の CA 証明書がある。
手順
-
ztp-site-generateコンテナーソースの最新バージョンを抽出し、カスタムサイト設定データを管理するリポジトリーとマージします。 クラスター内の IPsec を設定するために必要な値を使用して、
optional-extra-manifest/ipsec/ipsec-endpoint-config.yamlを設定します。以下に例を示します。interfaces: - name: hosta_conn type: ipsec libreswan: left: '%defaultroute' leftid: '%fromcert' leftmodecfgclient: false leftcert: left_server1 leftrsasigkey: '%cert' right: <external_host>2 rightid: '%fromcert' rightrsasigkey: '%cert' rightsubnet: <external_address>3 ikev2: insist4 type: tunnel次の証明書を
optional-extra-manifest/ipsecフォルダーに追加します。-
left_server.p12: IPsec エンドポイントの証明書バンドル ca.pem: 証明書に署名した認証局証明書ファイルは、各ホストのネットワークセキュリティーサービス (NSS) データベースで必要です。これらのファイルは、後の手順で Butane 設定の一部としてインポートされます。
-
-
カスタムサイト設定データを保持する Git リポジトリーの
optional-extra-manifest/ipsecフォルダーでシェルプロンプトを開きます。 必要な Butane および
MachineConfigCR ファイルを生成するには、optional-extra-manifest/ipsec/build.shスクリプトを実行します。PKCS#12 証明書がパスワードで保護されている場合は、
-W引数を設定します。出力例
out └── argocd └── example └── optional-extra-manifest └── ipsec ├── 99-ipsec-master-endpoint-config.bu1 ├── 99-ipsec-master-endpoint-config.yaml2 ├── 99-ipsec-worker-endpoint-config.bu3 ├── 99-ipsec-worker-endpoint-config.yaml4 ├── build.sh ├── ca.pem5 ├── left_server.p126 ├── enable-ipsec.yaml ├── ipsec-endpoint-config.yml └── README.mdカスタムサイト設定データを管理するリポジトリーに
custom-manifest/フォルダーを作成します。enable-ipsec.yamlおよび99-ipsec-*YAML ファイルをディレクトリーに追加します。以下に例を示します。siteconfig ├── site1-sno-du.yaml ├── extra-manifest/ └── custom-manifest ├── enable-ipsec.yaml ├── 99-ipsec-worker-endpoint-config.yaml └── 99-ipsec-master-endpoint-config.yamlSiteConfigCR で、extraManifests.searchPathsフィールドにcustom-manifest/ディレクトリーを追加します。以下に例を示します。clusters: - clusterName: "site1-sno-du" networkType: "OVNKubernetes" extraManifests: searchPaths: - extra-manifest/ - custom-manifest/SiteConfigCR の変更と更新されたファイルを Git リポジトリーにコミットし、変更をプッシュしてマネージドクラスターをプロビジョニングし、IPsec 暗号化を設定します。Argo CD パイプラインが変更を検出し、マネージドクラスターのデプロイを開始します。
クラスターのプロビジョニング中に、GitOps ZTP パイプラインが、
custom-manifest/ディレクトリー内の CR を、extra-manifest/ディレクトリーに保存されているデフォルトの追加マニフェストのセットに追加します。
検証
IPsec 暗号化の検証は、「IPsec 暗号化の検証」を参照してください。