1.7. Control Plane Migration Assistant (CPMA) でのコントロールプレーン設定の移行

1.7.1. Control Plane Migration Assistant について

Control Plane Migration Assistant (CPMA) は、OpenShift Container Platform 3.7 (以降) から OpenShift Container Platform 4.2 へのコントロールプレーンの移行に役立つ CLI ベースのツールです。CPMA は OpenShift Container Platform 3 設定ファイルを処理し、OpenShift Container Platform 4.2 Operator によって使用されるカスタムリソース (CR) マニフェストファイルを生成します。

OpenShift Container Platform 3 および 4 には設定上の大きな違いがあるため、すべてのパラメーターが処理される訳ではありません。CPMA は、機能が完全にサポートされるか、部分的にサポートされるか、または全くサポートされないかについて記述するレポートを生成できます。

設定ファイル

CPMA は Kubernetes および OpenShift Container Platform API を使用して、OpenShift Container Platform 3 クラスターの以下の設定ファイルにアクセスします。

  • マスター設定ファイル (デフォルト: /etc/origin/master/master-config.yaml)
  • CRI-O 設定ファイル (デフォルト: /etc/crio/crio.conf)
  • etcd 設定ファイル (デフォルト: /etc/etcd/etcd.conf)
  • イメージレジストリーファイル (デフォルト: /etc/containers/registries.conf)
  • 依存する設定ファイル:

    • パスワードファイル (HTPasswd など)
    • ConfigMap
    • シークレット

CR マニフェスト

CPMA は、以下の設定の CR マニフェストを生成します。

  • API サーバー CA 証明書: 100_CPMA-cluster-config-APISecret.yaml

    注記

    署名なしの API サーバー CA 証明書を使用している場合は、証明書をターゲットクラスターに手動で追加する必要があります。

  • CRI-O: 100_CPMA-crio-config.yaml
  • クラスターリソースクォータ: 100_CPMA-cluster-quota-resource-x.yaml
  • プロジェクトリソースクォータ: 100_CPMA-resource-quota-x.yaml
  • 移植可能なイメージレジストリー (/etc/registries/registries.conf) および移植可能なイメージポリシー (etc/origin/master/master-config.yam): 100_CPMA-cluster-config-image.yaml
  • OAuth プロバイダー: 100_CPMA-cluster-config-oauth.yaml
  • プロジェクト設定: 100_CPMA-cluster-config-project.yaml
  • スケジューラー: 100_CPMA-cluster-config-scheduler.yaml
  • SDN: 100_CPMA-cluster-config-sdn.yaml

1.7.2. Control Plane Migration Assistant のインストール

Red Hat カスタマーポータルから Control Plane Migration Assistant (CPMA) バイナリーファイルをダウンロードし、Linux、MacOSX、Windows オペレーティングシステムにインストールできます。

手順

  1. Red Hat カスタマーポータルDownloadsRed Hat OpenShift Container Platformに移動します。
  2. Download Red Hat OpenShift Container Platform ページで、Product Variant 一覧から Red Hat OpenShift Container Platform を選択します。
  3. Version 一覧から CPMA 1.0 for RHEL 7 を選択します。このバイナリーは、RHEL 7 および RHEL 8 で機能します。
  4. Download Now をクリックして Linux または MacOSX の場合は cpma をダウンロードし、Windows の場合は cpma.exe をダウンロードします。
  5. Linux または MacOSX の場合は $PATH と定義されたディレクトリーに、Windows の場合は %PATH% と定義されたディレクトリーにファイルを保存します。
  6. Linux の場合は、ファイルを実行可能にします。

    $ sudo chmod +x cpma

1.7.3. Control Plane Migration Assistant の使用

Control Plane Migration Assistant (CPMA) は、OpenShift Container Platform 4.2 Operator によって使用される CR マニフェストを生成し、どの OpenShift Container Platform 3 機能が完全に、または部分的にサポートされるか、または全くサポートされないかを示すレポートを生成します。

CPMA はリモートモードで実行でき、SSH を使用するか、またはローカルモードで、ソースクラスターの設定ファイルのローカルコピーを使用して、ソースクラスターの設定ファイルを取得します。

前提条件

  • ソースクラスターは OpenShift Container Platform 3.7 以降であること。
  • ソースクラスターは、最新の同期リリースに対して更新される必要があります。
  • 診断エラーや警告がないことを確認するために、環境ヘルスチェックをソースクラスターで実行する必要があります。
  • CPMA バイナリーは実行可能である必要があります。
  • ソースクラスターの cluster-admin 権限がなければなりません。

手順

  1. OpenShift Container Platform 3 クラスターにログインします。

    $ oc login https://<master1.example.com> 1
    1
    OpenShift Container Platform 3 マスターノード。Kubernetes および OpenShift Container Platform API のトークンを受信するには、クラスターにログインしている必要があります。
  2. CPMA を実行します。以下の例にあるように、各プロンプトで入力が求められます。

    $ cpma --manifests=false 1
    ? Do you wish to save configuration for future use? true
    ? What will be the source for OCP3 config files? Remote host 2
    ? Path to crio config file /etc/crio/crio.conf
    ? Path to etcd config file /etc/etcd/etcd.conf
    ? Path to master config file /etc/origin/master/master-config.yaml
    ? Path to node config file /etc/origin/node/node-config.yaml
    ? Path to registries config file /etc/containers/registries.conf
    ? Do wish to find source cluster using KUBECONFIG or prompt it? KUBECONFIG
    ? Select cluster obtained from KUBECONFIG contexts master1-example-com:443
    ? Select master node master1.example.com
    ? SSH login root 3
    ? SSH Port 22
    ? Path to private SSH key /home/user/.ssh/openshift_key
    ? Path to application data, skip to use current directory .
    INFO[29 Aug 19 00:07 UTC] Starting manifest and report generation
    INFO[29 Aug 19 00:07 UTC] Transform:Starting for - API
    INFO[29 Aug 19 00:07 UTC] APITransform::Extract
    INFO[29 Aug 19 00:07 UTC] APITransform::Transform:Reports
    INFO[29 Aug 19 00:07 UTC] Transform:Starting for - Cluster
    INFO[29 Aug 19 00:08 UTC] ClusterTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportQuotas
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportPVs
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNamespaces
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportNodes
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportRBAC
    INFO[29 Aug 19 00:08 UTC] ClusterReport::ReportStorageClasses
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Crio
    INFO[29 Aug 19 00:08 UTC] CrioTransform::Extract
    WARN[29 Aug 19 00:08 UTC] Skipping Crio: No configuration file available
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Docker
    INFO[29 Aug 19 00:08 UTC] DockerTransform::Extract
    INFO[29 Aug 19 00:08 UTC] DockerTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - ETCD
    INFO[29 Aug 19 00:08 UTC] ETCDTransform::Extract
    INFO[29 Aug 19 00:08 UTC] ETCDTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - OAuth
    INFO[29 Aug 19 00:08 UTC] OAuthTransform::Extract
    INFO[29 Aug 19 00:08 UTC] OAuthTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - SDN
    INFO[29 Aug 19 00:08 UTC] SDNTransform::Extract
    INFO[29 Aug 19 00:08 UTC] SDNTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Image
    INFO[29 Aug 19 00:08 UTC] ImageTransform::Extract
    INFO[29 Aug 19 00:08 UTC] ImageTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Transform:Starting for - Project
    INFO[29 Aug 19 00:08 UTC] ProjectTransform::Extract
    INFO[29 Aug 19 00:08 UTC] ProjectTransform::Transform:Reports
    INFO[29 Aug 19 00:08 UTC] Flushing reports to disk
    INFO[29 Aug 19 00:08 UTC] Report:Added: report.json
    INFO[29 Aug 19 00:08 UTC] Report:Added: report.html
    INFO[29 Aug 19 00:08 UTC] Successfully finished transformations
    1
    --manifests=false: CR マニフェストを生成しない
    2
    Remote host: リモートモード
    3
    SSH login: SSH ユーザーには、設定ファイルにアクセスできるように OpenShift Container Platform 3 クラスターで sudo パーミッションが必要です。

    CPMA は、出力ディレクトリーを指定しなかった場合に、現在のディレクトリーに以下のファイルおよびディレクトリーを作成します。

    • cpma.yaml ファイル: CPMA の実行時に指定した設定オプション
    • master1.example.com/: マスターノードからの設定ファイル
    • report.json: JSON でエンコードされたレポート
    • report.html: HTML でエンコードされたレポート
  3. ブラウザーで report.html ファイルを開き、CPMA レポートを表示します。
  4. CR マニフェストを生成する場合は、以下の例のように CR マニフェストを OpenShift Container Platform 4.2 クラスターに適用します。

    $ oc apply -f 100_CPMA-cluster-config-secret-htpasswd-secret.yaml