Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第5章 Red Hat CloudForms のデプロイ

5.1. {mgmt-app} の OpenShift Container Platform へのデプロイ

5.1.1. はじめに

OpenShift Container Platform インストーラーには、Red Hat CloudForms 4.6 (CloudForms Management Engine 5.9 または CFME) を OpenShift Container Platform にデプロイするための Ansible ロールの openshift-management と Playbook が含まれています。

警告

現在の実装には、OpenShift Container Platform 3.6 ドキュメントで説明されているように、Red Hat CloudForms 4.5 のテクノロジープレビューのデプロイメントプロセスとの互換性はありません。

Red Hat CloudForms を OpenShift Container Platform にデプロイする際には、以下の 2 つ点について決定する必要があります。

  1. 外部またはコンテナー化された (Pod 化された とも言う) PostgreSQL データベースを使用するかどうか。
  2. 永続ボリューム (PV) をどのストレージクラスでサポートするか。

最初の点については、Red Hat CloudForms で使用する PostgreSQL データベースが置かれている場所によって Red Hat CloudForms を以下のいずれかの方法でデプロイできます。

デプロイのバリアント説明

完全コンテナー化

すべてのアプリケーションサービスと PostgreSQL データベースは、OpenShift Container Platform で Pod として実行されます。

外部データベース

アプリケーションは外部でホストされた PostgreSQL データベースサーバーを使用し、その他すべてのサービスは OpenShift Container Platform で Pod として実行されます。

2 つ目の点については、openshift-management ロールが、多くのデフォルトのデプロイメントパラメーターの上書き用にカスタマイズオプションを提供します。これには、 PV をサポートするための以下のストレージクラスのオプションが含まれています。

ストレージクラス説明

NFS (デフォルト)

ローカル、クラスター上

NFS (外部)

NFS の他の場所 、ストレージアプライアンスなど

クラウドプロバイダー

クラウドプロバイダー (GCE または AWS) の自動ストレージプロビジョニングを使用

事前設定 (詳細)

ユーザーが事前にすべてを作成済みであることを前提とする

本書では、Red Hat CloudForms を OpenShift Container Platform で実行するための要件、利用可能な設定変数の説明、および OpenShift Container Platform の初回インストール時かクラスターのプロビジョニング後のいずれかでインストーラーを実行する方法などについてのトピックを扱います。

5.2. Red Hat CloudForms を OpenShift Container Platform で使用するための要件

 
デフォルトの要件は以下の表に記載されています。これらはテンプレートパラメーターをカスタマイズして上書きできます。

重要

以下の要件を満たしていないと、アプリケーションのパフォーマンスが低下するか、またはデプロイに失敗する可能性があります。

表5.1 デフォルトの要件

項目要件説明カスタマイズパラメーター

アプリケーションメモリー

≥ 4.0 Gi

アプリケーションのメモリー最小要件

APPLICATION_MEM_REQ

アプリケーションストレージ

≥ 5.0 Gi

アプリケーションの PV サイズ最小要件

APPLICATION_VOLUME_CAPACITY

PostgreSQL メモリー

≥ 6.0 Gi

データベースのメモリー最小要件

POSTGRESQL_MEM_REQ

PostgreSQL ストレージ

≥ 15.0 Gi

データベースの PV サイズ最小要件

DATABASE_VOLUME_CAPACITY

クラスターホスト

≥ 3

クラスター内のホスト数

該当なし

以上の要件をまとめると以下のようになります。

  • ユーザーにはいくつかのクラスターノードが必要である。
  • クラスターノードには多くの利用可能なメモリーが必要である。
  • ユーザーは、ローカルまたはクラウドプロバイダーに数 GiB の利用可能なストレージを持っている必要がある。
  • PV サイズはテンプレートパラメーターの値を上書きして変更できる。

5.3. ロール変数の設定

5.3.1. 概要

以下のセクションでは、Ansible インベントリーファイル で使用されるロール変数について説明します。ロール変数は、インストーラーを実行する際に Red Hat CloudForms インストールの動作を制御するために使用されます。

5.3.2. 一般的な変数

変数必須デフォルト説明

openshift_management_install_management

不可

false

ブール値。アプリケーションをインストールするには true に設定します。

openshift_management_install_beta

Yes

false

CFME 4.6 は現在利用可能 (ベータ版は利用不可) ですが、この変数はインストールを開始するために true に設定する必要があります。この要件は、今後のリリースでは取り除かれる予定です (BZ#1557909)。

openshift_management_app_template

Yes

miq-template

インストールする Red Hat CloudForms のデプロイメントバリアント。現時点では、これをデフォルトの miq-template から変更する必要があり、変更しないと、Red Hat CloudForms ではなくアップストリームの ManageIQ アプリケーションがインストールされます。このデフォルトは今後のリリースで cfme-template に変更される予定です (BZ#1557909) 。コンテナー化されたデータベースの場合は cfme-template を設定し、外部データベースの場合は cfme-template-ext-db を設定します。

openshift_management_project

不可

openshift-management

Red Hat CloudForms インストールの namespace (プロジェクト)。

openshift_management_project_description

不可

CloudForms Management Engine

namespace (プロジェクト) の説明。

openshift_management_username

不可

admin

デフォルトの管理ユーザー名。この値を変更してもユーザー名は変更されません。名前をすでに変更しており、統合スクリプト (コンテナープロバイダーを追加するためのスクリプトなど) を実行している場合にのみこの値を変更してください。

openshift_management_password

不可

smartvm

デフォルトの管理パスワード。この値を変更してもパスワードは変更されません。このパスワードをすでに変更しており、統合スクリプト (コンテナープロバイダーを追加するためのスクリプトなど) を実行している場合にのみこの値を変更してください。

5.3.3. テンプレートパラメーターのカスタマイズ

openshift_management_template_parameters Ansible ロール変数は、アプリケーションまたは PV テンプレートで上書きする必要のあるテンプレートを指定するために使用します。

たとえば、PostgreSQL Pod のメモリー要件を減らしたい場合には、以下を設定します。

openshift_management_template_parameters={'POSTGRESQL_MEM_REQ': '1Gi'}

Red Hat CloudForms テンプレートが処理される際に、1GiPOSTGRESQL_MEM_REQ テンプレートパラメーターの値に使用されます。

すべてのテンプレートパラメーターが (コンテナー化されたデータベースと外部データベースの) 両方 のテンプレートバリアントにある訳ではありません。たとえば、Pod 化されたデータベースのテンプレートには POSTGRESQL_MEM_REQ パラメーターがありますが、このパラメーターは外部のデータベーステンプレートにはありません。そこには Pod を必要とするデータベースが存在せず、この情報は必要とされないためです。

したがって、テンプレートパラメーターを上書きする場合には十分注意する必要があります。テンプレートで定義されていないパラメーターを追加するとエラーの原因になります。管理アプリケーションの作成を確認するタスクの実行時にエラーを受信した場合は、インストーラーを再度実行する前にアンインストールのスクリプトを実行してください。

5.3.4. データベース変数

5.3.4.1. コンテナー化された (Pod 化された) データベース

cfme-template.yaml ファイルにある POSTGRES_* または DATABASE_* テンプレートパラメーターは、インベントリーファイルの openshift_management_template_parameters ハッシュを使用してカスタマイズすることができます。

5.3.4.2. 外部データベース

cfme-template-ext-db.yaml ファイルにある POSTGRES_* または DATABASE_* テンプレートパラメーターは、インベントリーファイルの openshift_management_template_parameters ハッシュを使用してカスタマイズすることができます。

外部 PostgreSQL データベースは、ユーザーにデータベース接続パラメーターを指定するように要求します。必要な接続キーはインベントリーの openshift_management_template_parameters パラメーターに設定する必要があります。必要なキー以下の通りです。

  • DATABASE_USER
  • DATABASE_PASSWORD
  • DATABASE_IP
  • DATABASE_PORT (ほとんどの PostgreSQL サーバーはポート 5432 で実行されます)
  • DATABASE_NAME
注記

外部データベースで PostgreSQL 9.5 が実行されていることを確認します。実行されていないと、CloudForms アプリケーションを正常にデプロイできない場合があります。

インベントリーに、以下のような行が含まれているはずです。

[OSEv3:vars]
openshift_management_app_template=cfme-template-ext-db 1
openshift_management_template_parameters={'DATABASE_USER': 'root', 'DATABASE_PASSWORD': 'mypassword', 'DATABASE_IP': '10.10.10.10', 'DATABASE_PORT': '5432', 'DATABASE_NAME': 'cfme'}
1
openshift_management_app_template パラメーターを cfme-template-ext-db に設定します。

5.3.5. ストレージクラス変数

変数必須デフォルト説明

openshift_management_storage_class

不可

nfs

使用されるストレージのタイプ。オプションには nfsnfs_externalpreconfiguredcloudprovider があります。

openshift_management_storage_nfs_external_hostname

不可

false

NetApp アプライアンスなどの外部 NFS サーバーを使用している場合、ここにホスト名を設定する必要があります。外部 NFS を使用していない場合は値を false のままにしておきます。さらに外部 NFS では、ユーザーがアプリケーション PV とオプションでデータベース PV をサポートする NFS エクスポートを作成する必要があります。

openshift_management_storage_nfs_base_dir

不可

/exports/

外部 NFS を使用している場合、ベースパスをこのエクスポートの位置に設定できます。ローカルの NFS の場合、ローカルの NFS エクスポートに使用されているデフォルトのパスを変更する必要がある場合にも、この値を変更します。

openshift_management_storage_nfs_local_hostname

不可

false

[nfs] グループがインベントリーにない場合や、ローカルの NFS ホストをクラスターに手動で定義する必要がある場合は、このパラメーターを必要な NFS サーバーのホスト名に設定します。サーバーは OpenShift Container Platform クラスターの一部である必要があります。

5.3.5.1. NFS (デフォルト)

NFS ストレージクラスは、概念実証およびテストデプロイメントに最も適しています。このクラスは、デプロイメント用のデフォルトのステージクラスにもなります。これを選択した場合、追加の設定は不要です。

このストレージクラスは、必要な PV をサポートするように NFS をクラスターホスト (デフォルトではインベントリーファイルの最初のマスター) に設定します。アプリケーションは PV を必要とし、データベース (外部でホストされている可能性がある) は 2 番目の PV が必要となる場合があります。PV サイズの最小要件は、Red Hat CloudForms アプリケーションは 5GiB、PostgreSQL データベースは 15GiB です (NFS 専用で使用する場合は、ボリュームまたはパーティション上の使用可能な最小領域は 20GiB です)。

カスタマイズは、以下のロール変数を使って行われます。

  • openshift_management_storage_nfs_base_dir
  • openshift_management_storage_nfs_local_hostname

5.3.5.2. NFS (外部)

外部 NFS は、必要な PV にエクスポートを提供するために事前設定された NFS サーバーを使用します。外部 NFS の場合、ユーザーは cfme-app とオプションで cfme-db (コンテナー化されたデータベース用) のエクスポートが必要です。

設定は、以下のロール変数を使って提供されます。

  • openshift_management_storage_nfs_external_hostname
  • openshift_management_storage_nfs_base_dir

openshift_management_storage_nfs_external_hostnameパラメーターは、外部 NFS サーバーのホスト名または IP に設定する必要があります。

/exports がエクスポートの親ディレクトリーではない場合、ベースディレクトリーを openshift_management_storage_nfs_base_dir パラメーターで設定する必要があります。

たとえば、サーバーエクスポートが /exports/hosted/prod/cfme-app の場合は、openshift_management_storage_nfs_base_dir=/exports/hosted/prod を設定する必要があります。

5.3.5.3. クラウドプロバイダー

ストレージクラスに OpenShift Container Platform のクラウドプロバイダー統合を使用している場合、Red Hat CloudForms は必要な PV をサポートするためにこのクラウドプロバイダーを使用することができます。これを正常に実行するには、openshift_cloudprovider_kind 変数 (AWS または GCE 用)と、ユーザーが選択したクラウドプロバイダーに固有のすべての関連パラメーターを設定している必要があります。

アプリケーションがこのストレージクラスを使って作成されている場合、必要な PV は、設定済みのクラウドプロバイダーのストレージ統合を使って自動的にプロビジョニングされます。

このストレージクラスの動作を設定するために使用される追加の変数はありません。

5.3.5.4. 事前設定 (詳細)

preconfigured (事前設定されている) ストレージクラスの場合、ユーザーは各自の操作を正確に把握しており、すべてのストレージ要件が事前に配慮されていることを意味します。この場合、通常は適切なサイズに設定された PV がすでに作成されているので、インストーラーはストレージ設定を変更する必要がありません。

このストレージクラスの動作を設定するために使用される追加の変数はありません。

5.4. インストーラーの実行

5.4.1. OpenShift Container Platform のインストール時またはインストール後の Red Hat CloudForms のデプロイ

Red Hat CloudForms のデプロイを、OpenShift Container Platform の初回インストール時か、またはクラスターのプロビジョニング後のいずれかに実行することを選択できます。

  1. 以下が [OSEv3:vars] セクションの下にあるインベントリーファイルに設定されていることを確認します。

    [OSEv3:vars]
    openshift_management_install_management=true
    openshift_management_install_beta=true 1
    1
    CFME 4.6 は現在利用可能 (ベータ版は利用不可) ですが、この変数はインストールを開始するために true に設定する必要があります。この要件は、今後のリリースでは取り除かれる予定です (BZ#1557909)。
  2. インベントリーファイルにある Red Hat CloudForms のその他のロール変数を、「ロール変数の設定」で説明されているように設定します。「インベントリーファイルの例」には、これを実行するのに役立つリソースがあります。
  3. OpenShift Container Platform がすでにプロビジョニングされているかどうかに応じて、実行する Playbook を選択します。

    1. Red Hat CloudForms を、OpenShift Container Platform クラスターのインストールと同時にインストールする必要がある場合には、「通常インストール (Advanced installation) の実行」で説明されているように標準の config.yml Playbook を呼び出して、OpenShift Container Platform クラスターと Red Hat CloudForms のインストールを開始します。
    2. Red Hat CloudForms を、すでにプロビジョニングされている OpenShift Container Platform クラスターにインストールする必要がある場合には、Red Hat CloudForms Playbook を直接呼び出してインストールを開始します。

      # ansible-playbook -v [-i /path/to/inventory] \
          /usr/share/ansible/openshift-ansible/playbooks/openshift-management/config.yml

5.4.2. インベントリーファイルの例

このセクションでは、インベントリーファイルのスニペットの例について説明し、使い始めに役立つ OpenShift Container Platform での Red Hat CloudForms の各種の設定について説明します。

注記

変数の詳しい説明については、「ロール変数の設定」を参照してください。

5.4.2.1. すべてのデフォルト

以下は、すべてのデフォルト値と選択肢を使用した最も単純な例です。これで、Red Hat CloudForms のインストールが完全にコンテナー化 (Pod 化) されます。すべてのアプリケーションコンポーネントと PostgreSQL データベースが OpenShift Container Platform に Pod として作成されます。

[OSEv3:vars]
openshift_management_app_template=cfme-template

5.4.2.2. 外部 NFS ストレージ

以下は、前述の例と同様に (ただしローカルの NFS サービスをクラスターで使用する代わりに)、既存の外部 NFS サーバー (ストレージアプライアンスなど) を使用しています。

[OSEv3:vars]
openshift_management_app_template=cfme-template
openshift_management_storage_class=nfs_external 1
openshift_management_storage_nfs_external_hostname=nfs.example.com 2
1
nfs_external に設定します。
2
NFS サーバーのホスト名に設定します。

外部 NFS ホストが /exports/hosted/prod などの異なる親ディレクトリーの下でエクスポートディレクトリーをホストしている場合は、以下の変数を追加します。

openshift_management_storage_nfs_base_dir=/exports/hosted/prod

5.4.2.3. PV サイズの上書き

以下の例では、永続ボリューム (PV) のサイズを上書きします。PV サイズは openshift_management_template_parameters で設定する必要があります。これにより、アプリケーションとデータベースは相互に干渉しあうことなく作成済みの PV で要求を実行できます。

[OSEv3:vars]
openshift_management_app_template=cfme-template
openshift_management_template_parameters={'APPLICATION_VOLUME_CAPACITY': '10Gi', 'DATABASE_VOLUME_CAPACITY': '25Gi'}

5.4.2.4. メモリー要件の上書き

テストまたは概念実証のインストールでは、アプリケーションとデータベースのメモリー要件を設定している容量内に収めるようにする必要がある場合があります。メモリーの上限を下げると、パフォーマンスが低下するか、またはアプリケーションの初期化に完全に失敗したりする可能性があることに注意してください。

[OSEv3:vars]
openshift_management_app_template=cfme-template
openshift_management_template_parameters={'APPLICATION_MEM_REQ': '3000Mi', 'POSTGRESQL_MEM_REQ': '1Gi', 'ANSIBLE_MEM_REQ': '512Mi'}

この例では、インストーラーに対し、パラメーター APPLICATION_MEM_REQ3000Mi に、POSTGRESQL_MEM_REQ1Gi に、さらに ANSIBLE_MEM_REQ512Miに設定してアプリケーションテンプレートを処理するように指示します。

これらのパラメーターは、前述の例 PV サイズの上書きに示されているパラメーターと組み合せることができます。

5.4.2.5. 外部 PostgreSQL データベース

外部データベースを使用するには、openshift_management_app_template パラメーターの値を cfme-template-ext-db に変更する必要があります。

さらに、データベース接続情報を openshift_management_template_parameters 変数を使って入力する必要があります。詳細は、「ロール変数の設定」を参照してください。

[OSEv3:vars]
openshift_management_app_template=cfme-template-ext-db
openshift_management_template_parameters={'DATABASE_USER': 'root', 'DATABASE_PASSWORD': 'mypassword', 'DATABASE_IP': '10.10.10.10', 'DATABASE_PORT': '5432', 'DATABASE_NAME': 'cfme'}
重要

PostgreSQL 9.5 が実行中であることを確認してください。実行されていないと、アプリケーションを正常にデプロイできない場合があります。

5.5. コンテナープロバイダー統合の有効化

5.5.1. 単一コンテナープロバイダーの追加

インストーラーの実行」で説明されているように Red Hat CloudForms を OpenShift Container Platform にデプロイした後にコンテナープロバイダーの統合を有効にする方法として 、OpenShift Container Platform をコンテナープロバイダーとして手動で追加する方法と、このロールに含まれている Playbook を試行する方法の 2 つの方法があります。

5.5.1.1. 手動の追加

OpenShift Container Platform クラスターをコンテナープロバイダーとして手動で追加する手順については、以下の Red Hat CloudForms ドキュメントを参照してください。

5.5.1.2. 自動の追加

コンテナープロバイダーの自動的な統合は、このロールに含まれている Playbook を使用して実行できます。

この Playbook は以下を実行します。

  1. 必要な認証シークレットを収集します。
  2. Red Hat CloudForms アプリケーションとクラスター API への公開ルートを検索します。
  3. REST の呼び出しを実行し、OpenShift Container Platform クラスターをコンテナープロバイダーとして追加します。

コンテナープロバイダーの Playbook を実行するには、以下を実行します。

# ansible-playbook -v [-i /path/to/inventory] \
    /usr/share/ansible/openshift-ansible/playbooks/openshift-management/add_container_provider.yml

5.5.2. 複数のコンテナープロバイダー

このロールには、最新の OpenShift Container Platform クラスターを Red Hat CloudForms デプロイメントに統合するための Playbook に加え、複数のコンテナープラットフォームを任意の Red Hat CloudForms サーバーに コンテナープロバイダーとして追加することを可能にするスクリプトが含まれています。コンテナープラットフォームは、OpenShift Container Platform または OpenShift Origin です。

複数のプロバイダースクリプトを使用する場合、Playbook の実行時に EXTRA_VARS パラメーターを CLI に手動で設定することが必要になります。

5.5.2.1. スクリプトの作成

複数のプロバイダースクリプトを作成するには、以下の手動の設定を実行します。

  1. /usr/share/ansible/openshift-ansible/roles/openshift_management/files/examples/container_providers.yml のサンプルを、/tmp/cp.yml など別の場所にコピーします。このファイルは後で変更します。
  2. Red Hat CloudForms の名前またはパスワードを変更している場合は、コピーしたcontainer_providers.yml ファイルの management_server キーにある hostnameuserpassword の各パラメーターを更新します。
  3. コンテナープロバイダーとして追加する必要のある各 Container Platform クラスターについて、container_providers キーの下にエントリーを入力します。

    1. 以下のパラメーターを設定する必要があります。

      • auth_key - cluster-admin 権限を持つサービスアカウントのトークンです。
      • hostname - クラスター API をポイントしているホスト名です。各コンテナープロバイダーは固有のホスト名を持っている必要があります。
      • name - Red Hat CloudForms サーバーのコンテナープロバイダーの概要ページに表示されるクラスター名です。この名前は固有でなければなりません。
      ヒント

      auth_key ベアラートークンをクラスターから取得するには、以下を実行します。

      $ oc serviceaccounts get-token -n management-infra management-admin
    2. 以下のパラメーターは任意で設定することができます。

      • port - Container Platform クラスターが API を 8443 以外のポートで実行している場合は、このキーを更新します。
      • endpoint - SSL 検証を有効にする (verify_ssl) か、または検証設定を ssl-with-validation に変更することができます。現時点では、カスタムの信頼される CA 証明書のサポートは利用できません。
5.5.2.1.1. 例

例として以下のシナリオを見てみましょう。

  • container_providers.yml ファイルを /tmp/cp.yml にコピーしている。
  • 2 つの OpenShift Container Platform クラスターを追加する必要がある。
  • Red Hat CloudForms サーバーが mgmt.example.com で実行されている。

このシナリオでは、/tmp/cp.yml を以下のようにカスタマイズします。

container_providers:
  - connection_configurations:
      - authentication: {auth_key: "<token>", authtype: bearer, type: AuthToken} 1
        endpoint: {role: default, security_protocol: ssl-without-validation, verify_ssl: 0}
    hostname: "<provider_hostname1>"
    name: <display_name1>
    port: 8443
    type: "ManageIQ::Providers::Openshift::ContainerManager"
  - connection_configurations:
      - authentication: {auth_key: "<token>", authtype: bearer, type: AuthToken} 2
        endpoint: {role: default, security_protocol: ssl-without-validation, verify_ssl: 0}
    hostname: "<provider_hostname2>"
    name: <display_name2>
    port: 8443
    type: "ManageIQ::Providers::Openshift::ContainerManager"
management_server:
  hostname: "<hostname>"
  user: <user_name>
  password: <password>
1 2
<token> をこのクラスターの管理トークンに置き換えます。

5.5.2.2. Playbook の実行

複数プロバイダー統合スクリプトを実行するには、コンテナープロバイダーの設定ファイルへのパスを EXTRA_VARS パラメーターとしてansible-playbook コマンドに指定する必要があります。container_providers_config を設定ファイルパスに設定するには、-e (または --extra-vars) パラメーターを使用します。

# ansible-playbook -v [-i /path/to/inventory] \
    -e container_providers_config=/tmp/cp.yml \
    /usr/share/ansible/openshift-ansible/playbooks/openshift-management/add_many_container_providers.yml

Playbook が完成すると、Red Hat CloudForms サービスに 2 つの新しいコンテナープロバイダーが見つかるはずです。コンピュート → コンテナー → プロバイダー の順にページを進んで概要を確認してください。

5.5.3. プロバイダーの更新

単一または複数のコンテナープロバイダーを追加したら、新規プロバイダーを Red Hat CloudForms で更新し、コンテナープロバイダーと管理されているコンテナーに関する最新データをすべて取得する必要があります。そのためには、Red Hat CloudForms Web コンソールの各プロバイダーに進み、それぞれについて更新ボタンをクリックします。

手順については、以下の Red Hat CloudForms ドキュメントを参照してください。

5.6. Red Hat CloudForms のアンインストール

5.6.1. アンインストール Playbook の実行

警告

Red Hat CloudForms をアンインストールする前に、クラスターを OpenShift Container Platform バージョン 3.9.16 以上にアップグレードする必要があります。それよりも前のバージョンを使用している場合、Red Hat CloudForms のアンインストールにより、クラスターのすべての PV が除去されます。

デプロイした Red Hat CloudForms インストールを OpenShift Container Platform からアンインストールして削除するには、以下の Playbook を実行します。

# ansible-playbook -v [-i /path/to/inventory] \
    /usr/share/ansible/openshift-ansible/playbooks/openshift-management/uninstall.yml
重要

NFS エクスポートの定義とNFS エクスポートに格納されているデータは自動的に削除されません。新規デプロイメントの初期化を試行する前に、古いアプリケーションまたはデータベースデプロイメントのデータを手動で消去することが推奨されます。

5.6.2. トラブルシューティング

古い PostgreSQL データの消去に失敗すると連鎖的なエラーが発生し、postgresql Pod が crashloopbackoff の状態になる可能性があります。この状態になると cfme Pod の起動が阻止されます。crashloopbackoff は、以前のデプロイ時に作成されたデータベース NFS エクスポートの不正なファイル権限に起因します。

次に進むには、PostgreSQL エクスポートからすべてのデータを削除し、Pod (デプロイヤー Pod ではない) を削除します。以下の Pod がある場合の例を示します。

$ oc get pods
NAME                 READY     STATUS             RESTARTS   AGE
httpd-1-cx7fk        1/1       Running            1          21h
cfme-0               0/1       Running            1          21h
memcached-1-vkc7p    1/1       Running            1          21h
postgresql-1-deploy  1/1       Running            1          21h
postgresql-1-6w2t4   0/1       CrashLoopBackOff   1          21h

この場合、以下を実行します。

  1. データベース NFS エクスポートのデータを消去します。
  2. 以下を実行します。

    $ oc delete postgresql-1-6w2t4

PostgreSQL デプロイヤー Pod は、削除した Pod を置き換えるために新規の postgresql Pod の拡張を試みます。 postgresql Pod が実行された後に、cfme Pod は阻止する操作を停止し、アプリケーションの初期化を開始します。