第19章 GCE の設定


19.1. 概要

OpenShift Container Platform は、Google Compute Engine (GCE) ボリュームをアプリケーションデータの永続ストレージとして使用するなど、GCE インフラストラクチャーにアクセスするように設定することが可能です。これを実行するには、GCE を適切に設定した後に OpenShift Container Platform ホストで追加の設定を行う必要があります。

19.2. パーミッション

OpenShift Container Platform に GCE を設定するには、以下のロールが必要です。

roles/owner

サービスアカウント、クラウドストレージ、インスタンス、イメージ、テンプレート、Cloud DNS エントリーを作成し、ロードバランサーとヘルスチェックをデプロイします。さらに delete パーミッションがあると、テスト中に環境を再デプロイすることができます。

19.3. マスターの設定

GCE は、OpenShift Container Platform のマスターホストに 2 通りの方法で設定できます。

19.3.1. Ansible を使用した GCE についての OpenShift Container Platform マスターの設定

GCE は、通常インストール (Advanced installation) の実行中に openshift_cloudprovider_kind パラメーターを使って設定することができます。このパラメーターはインベントリーファイルで設定できます。

重要
  • GCE を使用する際は、openshift_gcp_projectopenshift_gcp_prefix の各パラメーターを定義する必要があります。
  • Google Compute Platform を使用してロードバランサーサービスを実行する場合は、ノード (Compute Engine VM インスタンス) に <openshift_gcp_prefix>ocp タグを付ける必要があります (ocp サフィックスを追加する)。たとえば、openshift_gcp_prefix パラメーターの値が mycluster に設定される場合、ノードには myclusterocp のタグが付けられる必要があります。ネットワークタグを Compute Engine VM インスタンスに追加する方法についての詳細は、「Adding and Removing Network Tags」を参照してください。

Ansible を使用した GCE の設定例

# Cloud Provider Configuration
# openshift_cloudprovider_kind=gce
# openshift_gcp_project=<projectid> 1
# openshift_gcp_prefix=<uid> 2
# openshift_gcp_multizone=False 3

1
openshift_gcp_project はプロジェクト ID です。
2
openshift_gcp_prefix は各 OpenShift クラスターを特定する固有の文字列です。
3
GCE でマルチゾーンのデプロイメントをトリガーするには、openshift_gcp_multizone パラメーターを使用します。このデフォルト値は False です。
注記

Ansible が GCE を設定する際に、以下のファイルがユーザー用に作成されます。

  • /etc/origin/cloudprovider/gce.conf
  • /etc/origin/master/master-config.yaml
  • /etc/origin/node/node-config.yaml

通常インストール (Advanced installation) は、デフォルトでシングルゾーンのサポートを設定します。マルチゾーンのサポートが必要な場合は、「GCE デプロイメントにおけるマルチゾーンサポートの設定」で説明されているように /etc/origin/cloudprovider/gce.conf を編集します。

19.3.2. 手動による GCE についての OpenShift Container Platform マスターの設定

GCE について OpenShift Container Platform マスターを設定するには、以下を実行します。

  1. すべてのマスターでマスター設定ファイル (デフォルトは /etc/origin/master/master-config.yaml) を編集するか、または作成し、apiServerArgumentscontrollerArguments の各セクションの内容を更新します。

    kubernetesMasterConfig:
      ...
      apiServerArguments:
        cloud-provider:
          - "gce"
        cloud-config:
          - "/etc/origin/cloudprovider/gce.conf"
      controllerArguments:
        cloud-provider:
          - "gce"
        cloud-config:
          - "/etc/origin/cloudprovider/gce.conf"
    重要

    コンテナー化インストールをトリガーすると、/etc/origin/var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、master-config.yaml/etc/ ではなく /etc/origin/master になければなりません。

  2. OpenShift Container Platform サービスを起動または再起動します。

    # systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers

19.4. ノードの設定

GCE について OpenShift Container Platform ノードを設定するには、以下を実行します。

  1. すべてのノードでノード設定ファイル (デフォルトは /etc/origin/node/node-config.yaml) を編集するか、または作成し、kubeletArguments セクションの内容を更新します。

    kubeletArguments:
      cloud-provider:
        - "gce"
      cloud-config:
        - "/etc/origin/cloudprovider/gce.conf"

現時点では、クラウドプロバイダーの統合を正常に機能させるため、nodeName は GCE のインスタンス名と一致している必要があります。また、この名前は RFC1123 に準拠している必要もあります。

重要

コンテナー化インストールをトリガーすると、/etc/origin/var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、node-config.yaml/etc/ ではなく /etc/origin/node になければなりません。

  1. すべてのノードで OpenShift Container Platform サービスを起動または再起動します。

    # systemctl restart atomic-openshift-node

19.5. GCE デプロイメントにおけるマルチゾーンサポートの設定

GCE を手動で設定した場合、マルチゾーンのサポートはデフォルトでは設定されません。

注記

通常インストール (Advanced installation) ではシングルゾーンのサポートがデフォルトで設定されます。

マルチゾーンのサポートを使用するには、以下を実行します。

  1. OpenShift Container Platform のマスターとノード両方のすべてのホストで、/etc/origin/cloudprovider/gce.confファイルを編集するか、または作成します。
  2. 以下の内容を追加します。

    [Global]
    project-id = <project-id>
    network-name = <network-name>
    node-tags = <node-tags>
    node-instance-prefix = <instance-prefix>
    multizone = true

シングルゾーンのサポートに戻すには、multizone 値を false に設定します。

19.6. 設定変更の適用

マスターおよびノードのすべてのホストで OpenShift Container Platform サービスを起動または再起動し、設定の変更を適用します。「OpenShift Container Platform サービスの再起動」を参照してください。

# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
# systemctl restart atomic-openshift-node

クラウドプロバイダーを不使用から使用に切り替えるとエラーメッセージが表示されます。クラウドプロバイダーを追加すると、ノードが hostnameexternalID として使用する (クラウドプロバイダーが使用されていなかった場合のケース) 代わりに、クラウドプロバイダーの instance-id (クラウドプロバイダーによって指定される) の使用に切り替えるため、ノードの削除が試みられます。この問題を解決するには、以下を実行します。

  1. CLI にクラスター管理者としてログインします。
  2. 既存のノードラベルをチェックし、これらをバックアップします。

    $ oc describe node <node_name> | grep -Poz '(?s)Labels.*\n.*(?=Taints)'
  3. ノードを削除します。

    $ oc delete node <node_name>
  4. 各ノードホストで OpenShift Container Platform サービスを再起動します。

    # systemctl restart atomic-openshift-node
  5. 以前に使用していた各ノードのラベルを再度追加します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.